]> Cypherpunks.ru repositories - gostls13.git/commitdiff
misc/swig: move tests to cmd/cgo/internal
authorAustin Clements <austin@google.com>
Thu, 4 May 2023 16:13:27 +0000 (12:13 -0400)
committerAustin Clements <austin@google.com>
Fri, 12 May 2023 12:00:07 +0000 (12:00 +0000)
This moves the misc/swig test to cmd/cgo/internal.

This lets these tests access facilities in internal/testenv. It's also
now just a normal test that can run as part of the cmd tests.

For #37486.

Change-Id: Ibe5026219999d175aa0a310b9886bef3f6f9ed17
Reviewed-on: https://go-review.googlesource.com/c/go/+/492722
Run-TryBot: Austin Clements <austin@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: Bryan Mills <bcmills@google.com>
misc/swig/nocgo_test.go [deleted file]
src/cmd/cgo/internal/swig/swig_test.go [moved from misc/swig/swig_test.go with 90% similarity]
src/cmd/cgo/internal/swig/testdata/callback/main.cc [moved from misc/swig/testdata/callback/main.cc with 100% similarity]
src/cmd/cgo/internal/swig/testdata/callback/main.go [moved from misc/swig/testdata/callback/main.go with 100% similarity]
src/cmd/cgo/internal/swig/testdata/callback/main.h [moved from misc/swig/testdata/callback/main.h with 100% similarity]
src/cmd/cgo/internal/swig/testdata/callback/main.swigcxx [moved from misc/swig/testdata/callback/main.swigcxx with 100% similarity]
src/cmd/cgo/internal/swig/testdata/stdio/main.go [moved from misc/swig/testdata/stdio/main.go with 100% similarity]
src/cmd/cgo/internal/swig/testdata/stdio/main.swig [moved from misc/swig/testdata/stdio/main.swig with 100% similarity]
src/cmd/dist/test.go

diff --git a/misc/swig/nocgo_test.go b/misc/swig/nocgo_test.go
deleted file mode 100644 (file)
index c68b97d..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-// Copyright 2023 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.
-
-// This file is just to avoid build errors if there's no cgo.
-
-package swig
similarity index 90%
rename from misc/swig/swig_test.go
rename to src/cmd/cgo/internal/swig/swig_test.go
index cbe062ae4117ea4d9dc8f4a7916ebc1aae47e326..41563138a7b3d844dded9ef22515ac8e26b4325f 100644 (file)
@@ -2,12 +2,11 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-//go:build cgo
-
 package swig
 
 import (
-       "bytes"
+       "cmd/internal/quoted"
+       "internal/testenv"
        "os"
        "os/exec"
        "path/filepath"
@@ -19,11 +18,13 @@ import (
 )
 
 func TestStdio(t *testing.T) {
+       testenv.MustHaveCGO(t)
        mustHaveSwig(t)
        run(t, "testdata/stdio", false)
 }
 
 func TestCall(t *testing.T) {
+       testenv.MustHaveCGO(t)
        mustHaveSwig(t)
        mustHaveCxx(t)
        run(t, "testdata/callback", false, "Call")
@@ -31,6 +32,7 @@ func TestCall(t *testing.T) {
 }
 
 func TestCallback(t *testing.T) {
+       testenv.MustHaveCGO(t)
        mustHaveSwig(t)
        mustHaveCxx(t)
        run(t, "testdata/callback", false, "Callback")
@@ -63,12 +65,14 @@ func mustHaveCxx(t *testing.T) {
        if err != nil {
                t.Fatalf("go env CXX failed: %s", err)
        }
-       cxx = bytes.TrimSuffix(cxx, []byte("\n"))
-       // TODO(austin): "go env CXX" can return a quoted list. Use quoted.Split.
-       p, err := exec.LookPath(string(cxx))
-       if p == "" {
-               t.Skipf("test requires C++ compiler, but failed to find %s: %s", string(cxx), err)
+       args, err := quoted.Split(string(cxx))
+       if err != nil {
+               t.Skipf("could not parse 'go env CXX' output %q: %s", string(cxx), err)
+       }
+       if len(args) == 0 {
+               t.Skip("no C++ compiler")
        }
+       testenv.MustHaveExecPath(t, string(args[0]))
 }
 
 var (
index 95c27ce32757f4e7e3807a3806c09be2967abeb1..5a47b86bc681202f6098ec3f4920c9902a7c1859 100644 (file)
@@ -870,9 +870,6 @@ func (t *tester) registerTests() {
                if goos != "android" {
                        t.registerTest("cgo_testfortran", "", &goTest{dir: "cmd/cgo/internal/testfortran", timeout: 5 * time.Minute}, rtHostTest{})
                }
-               if goos != "android" {
-                       t.registerTest("swig", "", &goTest{dir: "../misc/swig"})
-               }
        }
        if t.cgoEnabled {
                t.registerCgoTests()