func TestLoad_ParseError_AllowErrors(t *testing.T) { var conf loader.Config conf.AllowErrors = true conf.CreateFromFilenames("badpkg", "testdata/badpkgdecl.go") prog, err := conf.Load() if err != nil { t.Errorf("Load failed unexpectedly: %v", err) } if prog == nil { t.Fatalf("Load returned a nil Program") } if got, want := created(prog), "badpkg"; got != want { t.Errorf("Created = %s, want %s", got, want) } badpkg := prog.Created[0] if len(badpkg.Files) != 1 { t.Errorf("badpkg has %d files, want 1", len(badpkg.Files)) } wantErr := "testdata/badpkgdecl.go:1:34: expected 'package', found 'EOF'" if !hasError(badpkg.Errors, wantErr) { t.Errorf("badpkg.Errors = %v, want %s", badpkg.Errors, wantErr) } }
func TestCreateUnnamedPackage(t *testing.T) { var conf loader.Config conf.CreateFromFilenames("") prog, err := conf.Load() if err != nil { t.Fatalf("Load failed: %v", err) } if got, want := fmt.Sprint(prog.InitialPackages()), "[(unnamed)]"; got != want { t.Errorf("InitialPackages = %s, want %s", got, want) } }
func TestLoad_MissingFileInCreatedPackage_AllowErrors(t *testing.T) { conf := loader.Config{AllowErrors: true} conf.CreateFromFilenames("", "missing.go") prog, err := conf.Load() if err != nil { t.Errorf("Load failed: %v", err) } if got, want := fmt.Sprint(prog.InitialPackages()), "[(unnamed)]"; got != want { t.Fatalf("InitialPackages = %s, want %s", got, want) } }
func TestLoad_FromSource_Success(t *testing.T) { var conf loader.Config conf.CreateFromFilenames("P", "testdata/a.go", "testdata/b.go") prog, err := conf.Load() if err != nil { t.Errorf("Load failed unexpectedly: %v", err) } if prog == nil { t.Fatalf("Load returned a nil Program") } if got, want := created(prog), "P"; got != want { t.Errorf("Created = %s, want %s", got, want) } }
// CreateTestMainPackage should return nil if there were no tests. func TestNullTestmainPackage(t *testing.T) { var conf loader.Config conf.CreateFromFilenames("", "testdata/b_test.go") iprog, err := conf.Load() if err != nil { t.Fatalf("CreatePackages failed: %s", err) } prog := ssa.Create(iprog, ssa.SanityCheckFunctions) mainPkg := prog.Package(iprog.Created[0].Pkg) if mainPkg.Func("main") != nil { t.Fatalf("unexpected main function") } if prog.CreateTestMainPackage(mainPkg) != nil { t.Fatalf("CreateTestMainPackage returned non-nil") } }
func TestLoad_ParseError(t *testing.T) { var conf loader.Config conf.CreateFromFilenames("badpkg", "testdata/badpkgdecl.go") const wantErr = "couldn't load packages due to errors: badpkg" prog, err := conf.Load() if prog != nil { t.Errorf("Load unexpectedly returned a Program") } if err == nil { t.Fatalf("Load succeeded unexpectedly, want %q", wantErr) } if err.Error() != wantErr { t.Fatalf("Load failed with wrong error %q, want %q", err, wantErr) } }
func TestLoad_MissingFileInCreatedPackage(t *testing.T) { var conf loader.Config conf.CreateFromFilenames("", "missing.go") const wantErr = "couldn't load packages due to errors: (unnamed)" prog, err := conf.Load() if prog != nil { t.Errorf("Load unexpectedly returned a Program") } if err == nil { t.Fatalf("Load succeeded unexpectedly, want %q", wantErr) } if err.Error() != wantErr { t.Fatalf("Load failed with wrong error %q, want %q", err, wantErr) } }