apidiff: fix tests in module mode

Updates golang/go#30228

Change-Id: If138faaa001f557f82eb9d25812a0a89155f639d
Reviewed-on: https://go-review.googlesource.com/c/exp/+/167217
Run-TryBot: Bryan C. Mills <bcmills@google.com>
Reviewed-by: Jonathan Amsterdam <jba@google.com>
diff --git a/apidiff/apidiff_test.go b/apidiff/apidiff_test.go
index 5042ba0..4dcb4d8 100644
--- a/apidiff/apidiff_test.go
+++ b/apidiff/apidiff_test.go
@@ -26,11 +26,11 @@
 	sort.Strings(wanti)
 	sort.Strings(wantc)
 
-	oldpkg, err := load("old", dir)
+	oldpkg, err := load("apidiff/old", dir)
 	if err != nil {
 		t.Fatal(err)
 	}
-	newpkg, err := load("new", dir)
+	newpkg, err := load("apidiff/new", dir)
 	if err != nil {
 		t.Fatal(err)
 	}
@@ -56,8 +56,15 @@
 	}
 	defer f.Close()
 
-	oldd := filepath.Join(dir, "src/old")
-	newd := filepath.Join(dir, "src/new")
+	if err := os.MkdirAll(filepath.Join(dir, "src", "apidiff"), 0700); err != nil {
+		t.Fatal(err)
+	}
+	if err := ioutil.WriteFile(filepath.Join(dir, "src", "apidiff", "go.mod"), []byte("module apidiff\n"), 0666); err != nil {
+		t.Fatal(err)
+	}
+
+	oldd := filepath.Join(dir, "src/apidiff/old")
+	newd := filepath.Join(dir, "src/apidiff/new")
 	if err := os.MkdirAll(oldd, 0700); err != nil {
 		t.Fatal(err)
 	}
@@ -112,6 +119,7 @@
 	}
 	if goPath != "" {
 		cfg.Env = append(os.Environ(), "GOPATH="+goPath)
+		cfg.Dir = filepath.Join(goPath, "src", filepath.FromSlash(importPath))
 	}
 	pkgs, err := packages.Load(cfg, importPath)
 	if err != nil {