]> Cypherpunks.ru repositories - gostls13.git/commitdiff
misc/cgo/test: simplify for module mode
authorAustin Clements <austin@google.com>
Fri, 21 Oct 2022 19:18:14 +0000 (15:18 -0400)
committerAustin Clements <austin@google.com>
Fri, 4 Nov 2022 20:47:59 +0000 (20:47 +0000)
When we were first introducing module mode, CL 163418 moved many of
the tests in misc/cgo/test into their own test binary under testdata
so misc/cgo/test continued to work in both GOPATH mode and module
mode. This introduce a somewhat complicated test driver into
misc/cgo/test. Since the misc/cgo/test test had to invoke "go test" as
a subprocess, this required care to thread any build flags down into
the subprocess. The output from any failures of the sub-process was
also less than ideal.

Now that we don't have to worry about running these in GOPATH mode any
more, this CL moves all of the tests back into misc/cgo/test and drops
the test driver.

There are two slight complications:

- Test41761 was added after this split and has a C type "S" that's
  also present in misc/cgo/test itself. We rename that to keep that
  test working.

- TestCgo in go/internal/srcimporter now fails to import misc/cgo/test
  because misc/cgo/test now contains imports of other "misc" module
  packages and the importer it sets up isn't configured to allow that.
  We fix this by setting up a build context that's configured for
  this.

Preparation for #37486.

Change-Id: I3c4f73540e0482bbd493823cca44b0ce7fac01f3
Reviewed-on: https://go-review.googlesource.com/c/go/+/447355
Reviewed-by: Bryan Mills <bcmills@google.com>
Run-TryBot: Austin Clements <austin@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>

75 files changed:
misc/cgo/test/cgo_linux_test.go
misc/cgo/test/cgo_test.go
misc/cgo/test/gcc68255.go [moved from misc/cgo/test/testdata/gcc68255.go with 92% similarity]
misc/cgo/test/gcc68255/a.go [moved from misc/cgo/test/testdata/gcc68255/a.go with 100% similarity]
misc/cgo/test/gcc68255/c.c [moved from misc/cgo/test/testdata/gcc68255/c.c with 100% similarity]
misc/cgo/test/gcc68255/c.h [moved from misc/cgo/test/testdata/gcc68255/c.h with 100% similarity]
misc/cgo/test/issue20266.go [moved from misc/cgo/test/testdata/issue20266.go with 100% similarity]
misc/cgo/test/issue20266/issue20266.h [moved from misc/cgo/test/testdata/issue20266/issue20266.h with 100% similarity]
misc/cgo/test/issue23555.go [moved from misc/cgo/test/testdata/issue23555.go with 80% similarity]
misc/cgo/test/issue23555a/a.go [moved from misc/cgo/test/testdata/issue23555a/a.go with 100% similarity]
misc/cgo/test/issue23555b/a.go [moved from misc/cgo/test/testdata/issue23555b/a.go with 100% similarity]
misc/cgo/test/issue24161_darwin_test.go [moved from misc/cgo/test/testdata/issue24161_darwin_test.go with 76% similarity]
misc/cgo/test/issue24161arg/def.go [moved from misc/cgo/test/testdata/issue24161arg/def.go with 100% similarity]
misc/cgo/test/issue24161arg/use.go [moved from misc/cgo/test/testdata/issue24161arg/use.go with 100% similarity]
misc/cgo/test/issue24161e0/main.go [moved from misc/cgo/test/testdata/issue24161e0/main.go with 100% similarity]
misc/cgo/test/issue24161e1/main.go [moved from misc/cgo/test/testdata/issue24161e1/main.go with 100% similarity]
misc/cgo/test/issue24161e2/main.go [moved from misc/cgo/test/testdata/issue24161e2/main.go with 100% similarity]
misc/cgo/test/issue24161res/restype.go [moved from misc/cgo/test/testdata/issue24161res/restype.go with 100% similarity]
misc/cgo/test/issue26213/jni.h [moved from misc/cgo/test/testdata/issue26213/jni.h with 100% similarity]
misc/cgo/test/issue26213/test26213.go [moved from misc/cgo/test/testdata/issue26213/test26213.go with 100% similarity]
misc/cgo/test/issue26430.go [moved from misc/cgo/test/testdata/issue26430.go with 89% similarity]
misc/cgo/test/issue26430/a.go [moved from misc/cgo/test/testdata/issue26430/a.go with 100% similarity]
misc/cgo/test/issue26430/b.go [moved from misc/cgo/test/testdata/issue26430/b.go with 100% similarity]
misc/cgo/test/issue26743.go [moved from misc/cgo/test/testdata/issue26743.go with 89% similarity]
misc/cgo/test/issue26743/a.go [moved from misc/cgo/test/testdata/issue26743/a.go with 100% similarity]
misc/cgo/test/issue26743/b.go [moved from misc/cgo/test/testdata/issue26743/b.go with 100% similarity]
misc/cgo/test/issue27054/egl.h [moved from misc/cgo/test/testdata/issue27054/egl.h with 100% similarity]
misc/cgo/test/issue27054/test27054.go [moved from misc/cgo/test/testdata/issue27054/test27054.go with 100% similarity]
misc/cgo/test/issue27340.go [moved from misc/cgo/test/testdata/issue27340.go with 90% similarity]
misc/cgo/test/issue27340/a.go [moved from misc/cgo/test/testdata/issue27340/a.go with 100% similarity]
misc/cgo/test/issue29563.go [moved from misc/cgo/test/testdata/issue29563.go with 84% similarity]
misc/cgo/test/issue29563/weak.go [moved from misc/cgo/test/testdata/issue29563/weak.go with 100% similarity]
misc/cgo/test/issue29563/weak1.c [moved from misc/cgo/test/testdata/issue29563/weak1.c with 100% similarity]
misc/cgo/test/issue29563/weak2.c [moved from misc/cgo/test/testdata/issue29563/weak2.c with 100% similarity]
misc/cgo/test/issue30527.go [moved from misc/cgo/test/testdata/issue30527.go with 90% similarity]
misc/cgo/test/issue30527/a.go [moved from misc/cgo/test/testdata/issue30527/a.go with 100% similarity]
misc/cgo/test/issue30527/b.go [moved from misc/cgo/test/testdata/issue30527/b.go with 100% similarity]
misc/cgo/test/issue41761.go [moved from misc/cgo/test/testdata/issue41761.go with 74% similarity]
misc/cgo/test/issue41761a/a.go [moved from misc/cgo/test/testdata/issue41761a/a.go with 82% similarity]
misc/cgo/test/issue43639.go [moved from misc/cgo/test/testdata/issue43639.go with 57% similarity]
misc/cgo/test/issue43639/a.go [moved from misc/cgo/test/testdata/issue43639/a.go with 100% similarity]
misc/cgo/test/issue52611.go [moved from misc/cgo/test/testdata/issue52611.go with 83% similarity]
misc/cgo/test/issue52611a/a.go [moved from misc/cgo/test/testdata/issue52611a/a.go with 100% similarity]
misc/cgo/test/issue52611a/b.go [moved from misc/cgo/test/testdata/issue52611a/b.go with 100% similarity]
misc/cgo/test/issue52611b/a.go [moved from misc/cgo/test/testdata/issue52611b/a.go with 100% similarity]
misc/cgo/test/issue52611b/b.go [moved from misc/cgo/test/testdata/issue52611b/b.go with 100% similarity]
misc/cgo/test/issue8756.go [moved from misc/cgo/test/testdata/issue8756.go with 85% similarity]
misc/cgo/test/issue8756/issue8756.go [moved from misc/cgo/test/testdata/issue8756/issue8756.go with 100% similarity]
misc/cgo/test/issue8828.go [moved from misc/cgo/test/testdata/issue8828.go with 91% similarity]
misc/cgo/test/issue8828/issue8828.c [moved from misc/cgo/test/testdata/issue8828/issue8828.c with 100% similarity]
misc/cgo/test/issue8828/trivial.go [moved from misc/cgo/test/testdata/issue8828/trivial.go with 100% similarity]
misc/cgo/test/issue9026.go [moved from misc/cgo/test/testdata/issue9026.go with 77% similarity]
misc/cgo/test/issue9026/issue9026.go [moved from misc/cgo/test/testdata/issue9026/issue9026.go with 100% similarity]
misc/cgo/test/issue9400/asm_386.s [moved from misc/cgo/test/testdata/issue9400/asm_386.s with 100% similarity]
misc/cgo/test/issue9400/asm_amd64x.s [moved from misc/cgo/test/testdata/issue9400/asm_amd64x.s with 100% similarity]
misc/cgo/test/issue9400/asm_arm.s [moved from misc/cgo/test/testdata/issue9400/asm_arm.s with 100% similarity]
misc/cgo/test/issue9400/asm_arm64.s [moved from misc/cgo/test/testdata/issue9400/asm_arm64.s with 100% similarity]
misc/cgo/test/issue9400/asm_loong64.s [moved from misc/cgo/test/testdata/issue9400/asm_loong64.s with 100% similarity]
misc/cgo/test/issue9400/asm_mips64x.s [moved from misc/cgo/test/testdata/issue9400/asm_mips64x.s with 100% similarity]
misc/cgo/test/issue9400/asm_mipsx.s [moved from misc/cgo/test/testdata/issue9400/asm_mipsx.s with 100% similarity]
misc/cgo/test/issue9400/asm_ppc64x.s [moved from misc/cgo/test/testdata/issue9400/asm_ppc64x.s with 100% similarity]
misc/cgo/test/issue9400/asm_riscv64.s [moved from misc/cgo/test/testdata/issue9400/asm_riscv64.s with 100% similarity]
misc/cgo/test/issue9400/asm_s390x.s [moved from misc/cgo/test/testdata/issue9400/asm_s390x.s with 100% similarity]
misc/cgo/test/issue9400/gccgo.go [moved from misc/cgo/test/testdata/issue9400/gccgo.go with 100% similarity]
misc/cgo/test/issue9400/stubs.go [moved from misc/cgo/test/testdata/issue9400/stubs.go with 100% similarity]
misc/cgo/test/issue9400_linux.go [moved from misc/cgo/test/testdata/issue9400_linux.go with 98% similarity]
misc/cgo/test/issue9510.go [moved from misc/cgo/test/testdata/issue9510.go with 89% similarity]
misc/cgo/test/issue9510a/a.go [moved from misc/cgo/test/testdata/issue9510a/a.go with 100% similarity]
misc/cgo/test/issue9510b/b.go [moved from misc/cgo/test/testdata/issue9510b/b.go with 100% similarity]
misc/cgo/test/overlaydir_test.go [deleted file]
misc/cgo/test/pkg_test.go [deleted file]
misc/cgo/test/test26213.go [moved from misc/cgo/test/testdata/test26213.go with 90% similarity]
misc/cgo/test/testdata/cgo_linux_test.go [deleted file]
misc/cgo/test/testdata/cgo_test.go [deleted file]
src/go/internal/srcimporter/srcimporter_test.go

index f7c07582a4d432958d5e15618d7598bc54913039..2b6fe558d58ebe1cd230fcf10fad306820fc093f 100644 (file)
@@ -32,4 +32,5 @@ func TestSetgidStress(t *testing.T) {
 
 func Test1435(t *testing.T)    { test1435(t) }
 func Test6997(t *testing.T)    { test6997(t) }
+func Test9400(t *testing.T)    { test9400(t) }
 func TestBuildID(t *testing.T) { testBuildID(t) }
index dee61643544fdc6d0946e7bacd622a12ea9db1b5..5b298954f59e592699bd0ba7c3bce0af8da8d6f9 100644 (file)
@@ -34,7 +34,10 @@ func Test7978(t *testing.T)                  { test7978(t) }
 func Test8092(t *testing.T)                  { test8092(t) }
 func Test8517(t *testing.T)                  { test8517(t) }
 func Test8694(t *testing.T)                  { test8694(t) }
+func Test8756(t *testing.T)                  { test8756(t) }
 func Test8811(t *testing.T)                  { test8811(t) }
+func Test9026(t *testing.T)                  { test9026(t) }
+func Test9510(t *testing.T)                  { test9510(t) }
 func Test9557(t *testing.T)                  { test9557(t) }
 func Test10303(t *testing.T)                 { test10303(t, 10) }
 func Test11925(t *testing.T)                 { test11925(t) }
@@ -45,6 +48,7 @@ func Test17537(t *testing.T)                 { test17537(t) }
 func Test18126(t *testing.T)                 { test18126(t) }
 func Test18720(t *testing.T)                 { test18720(t) }
 func Test20129(t *testing.T)                 { test20129(t) }
+func Test20266(t *testing.T)                 { test20266(t) }
 func Test20369(t *testing.T)                 { test20369(t) }
 func Test20910(t *testing.T)                 { test20910(t) }
 func Test21708(t *testing.T)                 { test21708(t) }
@@ -55,6 +59,7 @@ func Test23356(t *testing.T)                 { test23356(t) }
 func Test24206(t *testing.T)                 { test24206(t) }
 func Test25143(t *testing.T)                 { test25143(t) }
 func Test26066(t *testing.T)                 { test26066(t) }
+func Test26213(t *testing.T)                 { test26213(t) }
 func Test27660(t *testing.T)                 { test27660(t) }
 func Test28896(t *testing.T)                 { test28896(t) }
 func Test30065(t *testing.T)                 { test30065(t) }
@@ -84,6 +89,7 @@ func TestNamedEnum(t *testing.T)             { testNamedEnum(t) }
 func TestCastToEnum(t *testing.T)            { testCastToEnum(t) }
 func TestErrno(t *testing.T)                 { testErrno(t) }
 func TestFpVar(t *testing.T)                 { testFpVar(t) }
+func TestGCC68255(t *testing.T)              { testGCC68255(t) }
 func TestHandle(t *testing.T)                { testHandle(t) }
 func TestHelpers(t *testing.T)               { testHelpers(t) }
 func TestLibgcc(t *testing.T)                { testLibgcc(t) }
similarity index 92%
rename from misc/cgo/test/testdata/gcc68255.go
rename to misc/cgo/test/gcc68255.go
index b431462349c1d0e72abdc4fae0943abadcc46086..7b25e02ad8903ba03b331896b956e84f1590c2f6 100644 (file)
@@ -7,7 +7,7 @@ package cgotest
 import (
        "testing"
 
-       "cgotest/gcc68255"
+       "misc/cgo/test/gcc68255"
 )
 
 func testGCC68255(t *testing.T) {
similarity index 80%
rename from misc/cgo/test/testdata/issue23555.go
rename to misc/cgo/test/issue23555.go
index 4e944b5acd49ad6638609322fff5b73145a7c702..e84c23cfd43dca90086ad822de21f1c869c4b8a3 100644 (file)
@@ -7,5 +7,7 @@
 
 package cgotest
 
-import _ "cgotest/issue23555a"
-import _ "cgotest/issue23555b"
+import (
+       _ "misc/cgo/test/issue23555a"
+       _ "misc/cgo/test/issue23555b"
+)
similarity index 76%
rename from misc/cgo/test/testdata/issue24161_darwin_test.go
rename to misc/cgo/test/issue24161_darwin_test.go
index e60eb4e9178c3a8ba0430089837928a37eb684cf..7bb2af69a5dcd1115e9e5471e252d2dd1060f2bc 100644 (file)
@@ -7,11 +7,11 @@ package cgotest
 import (
        "testing"
 
-       "cgotest/issue24161arg"
-       "cgotest/issue24161e0"
-       "cgotest/issue24161e1"
-       "cgotest/issue24161e2"
-       "cgotest/issue24161res"
+       "misc/cgo/test/issue24161arg"
+       "misc/cgo/test/issue24161e0"
+       "misc/cgo/test/issue24161e1"
+       "misc/cgo/test/issue24161e2"
+       "misc/cgo/test/issue24161res"
 )
 
 func Test24161Arg(t *testing.T) {
similarity index 89%
rename from misc/cgo/test/testdata/issue26430.go
rename to misc/cgo/test/issue26430.go
index 14c7a7c3077efa5fd689a4d08a64673b4e3dd10d..b55193973d8cbd870e166b138c81f0275c0ea9d2 100644 (file)
@@ -7,4 +7,4 @@
 
 package cgotest
 
-import _ "cgotest/issue26430"
+import _ "misc/cgo/test/issue26430"
similarity index 89%
rename from misc/cgo/test/testdata/issue26743.go
rename to misc/cgo/test/issue26743.go
index 000fb2bfdf06ac90279f743aeb09acf0cb9ceeb5..716f2e48d9ed1d0c75392b65c619b80b3222f10f 100644 (file)
@@ -7,4 +7,4 @@
 
 package cgotest
 
-import _ "cgotest/issue26743"
+import _ "misc/cgo/test/issue26743"
similarity index 90%
rename from misc/cgo/test/testdata/issue27340.go
rename to misc/cgo/test/issue27340.go
index 337550f60896eb2d014ad59e36d65db4e7b15da8..2c51088363263d388543de1c72e4383ef5b44c5f 100644 (file)
@@ -7,6 +7,6 @@
 
 package cgotest
 
-import "cgotest/issue27340"
+import "misc/cgo/test/issue27340"
 
 var issue27340Var = issue27340.Issue27340GoFunc
similarity index 84%
rename from misc/cgo/test/testdata/issue29563.go
rename to misc/cgo/test/issue29563.go
index 84def3ca4448382349430808b24a8855980082e4..9f29da4c751ecbcfc3f8fc695ac1b195338a10a5 100644 (file)
@@ -2,6 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+//go:build !windows
 // +build !windows
 
 // Issue 29563: internal linker fails on duplicate weak symbols.
@@ -9,4 +10,4 @@
 
 package cgotest
 
-import _ "cgotest/issue29563"
+import _ "misc/cgo/test/issue29563"
similarity index 90%
rename from misc/cgo/test/testdata/issue30527.go
rename to misc/cgo/test/issue30527.go
index 4ea7d3177a5dd9984265538a438fce18c9c593bf..e0e18bebdfcde6beffb7bc50588c2f10a35d9312 100644 (file)
@@ -7,7 +7,7 @@
 
 package cgotest
 
-import "cgotest/issue30527"
+import "misc/cgo/test/issue30527"
 
 func issue30527G() {
        issue30527.G(nil)
similarity index 74%
rename from misc/cgo/test/testdata/issue41761.go
rename to misc/cgo/test/issue41761.go
index 919c7492510096d6b245002a86618a055a56e422..ed45b46c4606e01da91a9518696c7956418dfb50 100644 (file)
@@ -5,16 +5,16 @@
 package cgotest
 
 /*
-   typedef struct S S;
+   typedef struct S41761 S41761;
 */
 import "C"
 
 import (
-       "cgotest/issue41761a"
+       "misc/cgo/test/issue41761a"
        "testing"
 )
 
 func test41761(t *testing.T) {
        var x issue41761a.T
-       _ = (*C.struct_S)(x.X)
+       _ = (*C.struct_S41761)(x.X)
 }
similarity index 82%
rename from misc/cgo/test/testdata/issue41761a/a.go
rename to misc/cgo/test/issue41761a/a.go
index ca5c18191eb31de331d99da51e51fe692ec4f209..1c52782e05e3d5be0d0e9be596528cb46e7e2bed 100644 (file)
@@ -5,10 +5,10 @@
 package issue41761a
 
 /*
-   typedef struct S S;
+   typedef struct S41761 S41761;
 */
 import "C"
 
 type T struct {
-       X *C.S
+       X *C.S41761
 }
similarity index 57%
rename from misc/cgo/test/testdata/issue43639.go
rename to misc/cgo/test/issue43639.go
index e755fbd4bc005f4f8289bfa726559f2cb4d8c07f..41e14710591b214a4472492b696939614c707168 100644 (file)
@@ -4,6 +4,6 @@
 
 package cgotest
 
-// Issue 43639: No runtime test needed, make sure package cgotest/issue43639 compiles well.
+// Issue 43639: No runtime test needed, make sure package misc/cgo/test/issue43639 compiles well.
 
-import _ "cgotest/issue43639"
+import _ "misc/cgo/test/issue43639"
similarity index 83%
rename from misc/cgo/test/testdata/issue52611.go
rename to misc/cgo/test/issue52611.go
index 32d22403abab0f3108f60b1c77e27e68f46deccd..2b59d521f70ba331ba30c0d076d32c635cef7507 100644 (file)
@@ -8,6 +8,6 @@
 package cgotest
 
 import (
-       _ "cgotest/issue52611a"
-       _ "cgotest/issue52611b"
+       _ "misc/cgo/test/issue52611a"
+       _ "misc/cgo/test/issue52611b"
 )
similarity index 85%
rename from misc/cgo/test/testdata/issue8756.go
rename to misc/cgo/test/issue8756.go
index 406c64c0f39808ce710aed4b6b2aadd30754e846..08099dc1530985c91e08ec0689056059776eb0da 100644 (file)
@@ -8,7 +8,7 @@ import "C"
 import (
        "testing"
 
-       "cgotest/issue8756"
+       "misc/cgo/test/issue8756"
 )
 
 func test8756(t *testing.T) {
similarity index 91%
rename from misc/cgo/test/testdata/issue8828.go
rename to misc/cgo/test/issue8828.go
index 0bca0f25cf8ad62cd6f0415b794555b2d6095220..3b5765d3068a7ec66668000791bd266248c66810 100644 (file)
@@ -9,7 +9,7 @@
 
 package cgotest
 
-import "cgotest/issue8828"
+import "misc/cgo/test/issue8828"
 
 func p() {
        issue8828.Bar()
similarity index 77%
rename from misc/cgo/test/testdata/issue9026.go
rename to misc/cgo/test/issue9026.go
index 3f488816550b5719ff51ec8849344dc581f1d46b..a30196c99f084c9313766534d65786d2b5ebc70d 100644 (file)
@@ -3,7 +3,7 @@ package cgotest
 import (
        "testing"
 
-       "cgotest/issue9026"
+       "misc/cgo/test/issue9026"
 )
 
 func test9026(t *testing.T) { issue9026.Test(t) }
similarity index 98%
rename from misc/cgo/test/testdata/issue9400_linux.go
rename to misc/cgo/test/issue9400_linux.go
index 051b9ab0bbe526baf56dab936680434d4eb740e0..38fa9dd1773959d93344c53122e702485ee50e24 100644 (file)
@@ -19,7 +19,7 @@ import (
        "sync/atomic"
        "testing"
 
-       "cgotest/issue9400"
+       "misc/cgo/test/issue9400"
 )
 
 func test9400(t *testing.T) {
similarity index 89%
rename from misc/cgo/test/testdata/issue9510.go
rename to misc/cgo/test/issue9510.go
index 2c79fab97f35930e58a08ed6b582b78defa37b8e..325b0cfb4aa38d360523f497872f0e01c306144b 100644 (file)
@@ -11,8 +11,8 @@ import (
        "runtime"
        "testing"
 
-       "cgotest/issue9510a"
-       "cgotest/issue9510b"
+       "misc/cgo/test/issue9510a"
+       "misc/cgo/test/issue9510b"
 )
 
 func test9510(t *testing.T) {
diff --git a/misc/cgo/test/overlaydir_test.go b/misc/cgo/test/overlaydir_test.go
deleted file mode 100644 (file)
index f651979..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-// Copyright 2019 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package cgotest
-
-import (
-       "io"
-       "os"
-       "path/filepath"
-       "strings"
-)
-
-// overlayDir makes a minimal-overhead copy of srcRoot in which new files may be added.
-//
-// TODO: Once we no longer need to support the misc module in GOPATH mode,
-// factor this function out into a package to reduce duplication.
-func overlayDir(dstRoot, srcRoot string) error {
-       dstRoot = filepath.Clean(dstRoot)
-       if err := os.MkdirAll(dstRoot, 0777); err != nil {
-               return err
-       }
-
-       srcRoot, err := filepath.Abs(srcRoot)
-       if err != nil {
-               return err
-       }
-
-       return filepath.Walk(srcRoot, func(srcPath string, info os.FileInfo, err error) error {
-               if err != nil || srcPath == srcRoot {
-                       return err
-               }
-
-               suffix := strings.TrimPrefix(srcPath, srcRoot)
-               for len(suffix) > 0 && suffix[0] == filepath.Separator {
-                       suffix = suffix[1:]
-               }
-               dstPath := filepath.Join(dstRoot, suffix)
-
-               perm := info.Mode() & os.ModePerm
-               if info.Mode()&os.ModeSymlink != 0 {
-                       info, err = os.Stat(srcPath)
-                       if err != nil {
-                               return err
-                       }
-                       perm = info.Mode() & os.ModePerm
-               }
-
-               // Always copy directories (don't symlink them).
-               // If we add a file in the overlay, we don't want to add it in the original.
-               if info.IsDir() {
-                       return os.MkdirAll(dstPath, perm|0200)
-               }
-
-               // If the OS supports symlinks, use them instead of copying bytes.
-               if err := os.Symlink(srcPath, dstPath); err == nil {
-                       return nil
-               }
-
-               // Otherwise, copy the bytes.
-               src, err := os.Open(srcPath)
-               if err != nil {
-                       return err
-               }
-               defer src.Close()
-
-               dst, err := os.OpenFile(dstPath, os.O_WRONLY|os.O_CREATE|os.O_EXCL, perm)
-               if err != nil {
-                       return err
-               }
-
-               _, err = io.Copy(dst, src)
-               if closeErr := dst.Close(); err == nil {
-                       err = closeErr
-               }
-               return err
-       })
-}
diff --git a/misc/cgo/test/pkg_test.go b/misc/cgo/test/pkg_test.go
deleted file mode 100644 (file)
index cbc80ee..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-// Copyright 2019 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package cgotest
-
-import (
-       "os"
-       "os/exec"
-       "path/filepath"
-       "runtime"
-       "strings"
-       "testing"
-)
-
-// TestCrossPackageTests compiles and runs tests that depend on imports of other
-// local packages, using source code stored in the testdata directory.
-//
-// The tests in the misc directory tree do not have a valid import path in
-// GOPATH mode, so they previously used relative imports. However, relative
-// imports do not work in module mode. In order to make the test work in both
-// modes, we synthesize a GOPATH in which the module paths are equivalent, and
-// run the tests as a subprocess.
-//
-// If and when we no longer support these tests in GOPATH mode, we can remove
-// this shim and move the tests currently located in testdata back into the
-// parent directory.
-func TestCrossPackageTests(t *testing.T) {
-       switch runtime.GOOS {
-       case "android":
-               t.Skip("Can't exec cmd/go subprocess on Android.")
-       case "ios":
-               switch runtime.GOARCH {
-               case "arm64":
-                       t.Skip("Can't exec cmd/go subprocess on iOS.")
-               }
-       case "linux":
-               if _, err := os.Stat("/etc/alpine-release"); err == nil {
-                       t.Skip("skipping failing test on alpine - go.dev/issue/39857")
-               }
-       }
-
-       GOPATH, err := os.MkdirTemp("", "cgotest")
-       if err != nil {
-               t.Fatal(err)
-       }
-       defer os.RemoveAll(GOPATH)
-
-       modRoot := filepath.Join(GOPATH, "src", "cgotest")
-       if err := overlayDir(modRoot, "testdata"); err != nil {
-               t.Fatal(err)
-       }
-       if err := os.WriteFile(filepath.Join(modRoot, "go.mod"), []byte("module cgotest\n"), 0666); err != nil {
-               t.Fatal(err)
-       }
-
-       cmd := exec.Command("go", "test")
-       if testing.Verbose() {
-               cmd.Args = append(cmd.Args, "-v")
-       }
-       if testing.Short() {
-               cmd.Args = append(cmd.Args, "-short")
-       }
-       cmd.Dir = modRoot
-       cmd.Env = append(os.Environ(), "GOPATH="+GOPATH, "PWD="+cmd.Dir)
-       out, err := cmd.CombinedOutput()
-       if err == nil {
-               t.Logf("%s:\n%s", strings.Join(cmd.Args, " "), out)
-       } else {
-               t.Fatalf("%s: %s\n%s", strings.Join(cmd.Args, " "), err, out)
-       }
-}
similarity index 90%
rename from misc/cgo/test/testdata/test26213.go
rename to misc/cgo/test/test26213.go
index c80032cb3b963705b3d8e4393c32e16e3d6d76d7..f8149cd7c80767c4b6dd59eafa16e17d032f51bf 100644 (file)
@@ -7,7 +7,7 @@ package cgotest
 import (
        "testing"
 
-       "cgotest/issue26213"
+       "misc/cgo/test/issue26213"
 )
 
 func test26213(t *testing.T) {
diff --git a/misc/cgo/test/testdata/cgo_linux_test.go b/misc/cgo/test/testdata/cgo_linux_test.go
deleted file mode 100644 (file)
index 5cef09f..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package cgotest
-
-import "testing"
-
-func Test9400(t *testing.T) { test9400(t) }
diff --git a/misc/cgo/test/testdata/cgo_test.go b/misc/cgo/test/testdata/cgo_test.go
deleted file mode 100644 (file)
index ffa076f..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package cgotest
-
-import "testing"
-
-// The actual test functions are in non-_test.go files
-// so that they can use cgo (import "C").
-// These wrappers are here for gotest to find.
-
-func Test8756(t *testing.T)     { test8756(t) }
-func Test9026(t *testing.T)     { test9026(t) }
-func Test9510(t *testing.T)     { test9510(t) }
-func Test20266(t *testing.T)    { test20266(t) }
-func Test26213(t *testing.T)    { test26213(t) }
-func TestGCC68255(t *testing.T) { testGCC68255(t) }
index af394665fa2984f4718b86c455dbb44cf48b89aa..e87745822ba76da85797f11732a714223bf42e4c 100644 (file)
@@ -243,8 +243,10 @@ func TestCgo(t *testing.T) {
        testenv.MustHaveGoBuild(t)
        testenv.MustHaveCGO(t)
 
-       importer := New(&build.Default, token.NewFileSet(), make(map[string]*types.Package))
-       _, err := importer.ImportFrom("./misc/cgo/test", testenv.GOROOT(t), 0)
+       buildCtx := build.Default
+       buildCtx.Dir = filepath.Join(testenv.GOROOT(t), "misc")
+       importer := New(&buildCtx, token.NewFileSet(), make(map[string]*types.Package))
+       _, err := importer.ImportFrom("./cgo/test", buildCtx.Dir, 0)
        if err != nil {
                t.Fatalf("Import failed: %v", err)
        }