c65gm/internal/optimizer/config_test.go

54 lines
1.3 KiB
Go

package optimizer
import (
"testing"
"c65gm/internal/preproc"
)
func TestNewConfigWithAll(t *testing.T) {
ps := preproc.NewPragmaSet(map[string]string{
"_P_OPT_ALL": "1",
"_P_OPT_DEBUG": "1",
})
cfg := NewConfig(ps)
if !cfg.Any() {
t.Error("expected Any()=true")
}
if !cfg.EnableLoad {
t.Error("expected EnableLoad=true from _P_OPT_ALL")
}
if !cfg.EnableImm {
t.Error("expected EnableImm=true from _P_OPT_ALL")
}
if !cfg.Debug {
t.Error("expected Debug=true")
}
}
func TestNewConfigPragmasAccumulate(t *testing.T) {
// Pragma sets COPY previous values — so last set has ALL pragmas
p := preproc.NewPragma()
p.AddPragma("_P_OPT_ALL", "1")
p.AddPragma("_P_OPT_DEBUG", "1")
p.AddPragma("_P_SOMETHING_ELSE", "1")
// Last set should have all three
ps := p.GetPragmaSetByIndex(p.GetCurrentPragmaSetIndex())
if v := ps.GetPragma("_P_OPT_ALL"); v != "1" {
t.Errorf("expected _P_OPT_ALL=1, got %q", v)
}
if v := ps.GetPragma("_P_OPT_DEBUG"); v != "1" {
t.Errorf("expected _P_OPT_DEBUG=1, got %q", v)
}
if v := ps.GetPragma("_P_SOMETHING_ELSE"); v != "1" {
t.Errorf("expected _P_SOMETHING_ELSE=1, got %q", v)
}
cfg := NewConfig(ps)
if !cfg.Any() {
t.Error("expected Any()=true")
}
if !cfg.Debug {
t.Error("expected Debug=true")
}
}