// we must not being doing special things like AllowBinary or IgnoreVendor,
// and all the file system callbacks must be nil (we're meant to use the local file system).
if mode&AllowBinary != 0 || mode&IgnoreVendor != 0 ||
- ctxt.JoinPath != nil || ctxt.SplitPathList != nil || ctxt.IsAbsPath != nil || ctxt.IsDir != nil || ctxt.HasSubdir != nil || ctxt.ReadDir != nil || ctxt.OpenFile != nil || !slices.Equal(ctxt.ToolTags, defaultToolTags) || !slices.Equal(ctxt.ReleaseTags, defaultReleaseTags) {
+ ctxt.JoinPath != nil || ctxt.SplitPathList != nil || ctxt.IsAbsPath != nil || ctxt.IsDir != nil || ctxt.HasSubdir != nil || ctxt.ReadDir != nil || ctxt.OpenFile != nil || !slices.Equal(ctxt.ToolTags, defaultToolTags) || !slices.Equal(ctxt.ReleaseTags, defaultReleaseTags) || ctxt.UseAllFiles {
return errNoModules
}
check("XTestDirectives", p.XTestDirectives,
`[{"//go:xtest1" "testdata/directives/c_test.go:1:1"} {"//go:xtest2" "testdata/directives/d_test.go:1:1"} {"//go:xtest3" "testdata/directives/d_test.go:2:1"}]`)
}
+
+// TestContextImportGoWithUseAllFiles ensures that when Context.UseAllFiles is set,
+// that the Go command is not invoked
+func TestContextImportGoWithUseAllFiles(t *testing.T) {
+ ctxt := &Context{UseAllFiles: true}
+ p := &Package{}
+ got := ctxt.importGo(p, "some/package", ".", 0)
+ if got != errNoModules {
+ t.Fatalf("Error mismatch:\n\tGot: %v\n\tWant: %v", got, errNoModules)
+ }
+}