]> Cypherpunks repositories - gostls13.git/commitdiff
net: move cgo-using darwin test to separate package
authorRuss Cox <rsc@golang.org>
Tue, 12 Dec 2023 17:53:32 +0000 (12:53 -0500)
committerGopher Robot <gobot@golang.org>
Tue, 23 Jan 2024 18:09:52 +0000 (18:09 +0000)
It is a goal / requirement that nothing in the standard library
on darwin require cgo, and this test-only file makes net use
cgo on darwin. Move it elsewhere.

Change-Id: I6c11a8391d3913f73ce0098ba63b29adf5864f93
Reviewed-on: https://go-review.googlesource.com/c/go/+/549255
Reviewed-by: Mauri de Souza Meneguzzo <mauri870@gmail.com>
Reviewed-by: Bryan Mills <bcmills@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Auto-Submit: Russ Cox <rsc@golang.org>

src/cmd/go/testdata/script/darwin_no_cgo.txt [new file with mode: 0644]
src/go/build/deps_test.go
src/net/internal/cgotest/empty_test.go [new file with mode: 0644]
src/net/internal/cgotest/resstate.go [moved from src/net/cgo_unix_cgo_darwin.go with 89% similarity]

diff --git a/src/cmd/go/testdata/script/darwin_no_cgo.txt b/src/cmd/go/testdata/script/darwin_no_cgo.txt
new file mode 100644 (file)
index 0000000..fa44592
--- /dev/null
@@ -0,0 +1,9 @@
+# For reproducibility and easier cross-compilation,
+# nothing in std is supposed to use cgo on macOS.
+# Check that cgo does not appear as a dependency
+# of cmd/go, which imports approximately everything
+# in std (certainly everything relevant).
+[!GOOS:darwin] skip
+go list -deps cmd/go
+! stdout runtime/cgo
+
index 7ce8d346b406ae66e0248b0ed74d1199d4a4b60d..47a0f3a0b409d4f464a5e856c5a7347b87d7067f 100644 (file)
@@ -672,7 +672,7 @@ var depsRules = `
        internal/coverage, crypto/sha256, FMT
        < cmd/internal/cov/covcmd;
 
-    encoding/json,
+       encoding/json,
        runtime/debug,
        internal/coverage/calloc,
        internal/coverage/cformat,
@@ -680,6 +680,11 @@ var depsRules = `
        internal/coverage/encodecounter, internal/coverage/encodemeta,
        internal/coverage/pods
        < runtime/coverage;
+
+       # Test-only packages can have anything they want
+       CGO, internal/syscall/unix < net/internal/cgotest;
+
+
 `
 
 // listStdPkgs returns the same list of packages as "go list std".
diff --git a/src/net/internal/cgotest/empty_test.go b/src/net/internal/cgotest/empty_test.go
new file mode 100644 (file)
index 0000000..c4f601d
--- /dev/null
@@ -0,0 +1,13 @@
+// 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.
+
+package cgotest
+
+import "testing"
+
+// Nothing to test here.
+// The test is that the package compiles at all.
+// See resstate.go.
+func Test(t *testing.T) {
+}
similarity index 89%
rename from src/net/cgo_unix_cgo_darwin.go
rename to src/net/internal/cgotest/resstate.go
index 40d5e426f25ce564d1d00ccdcbb23acc62cbe711..1b4871109eaa06269b2f9a2fe9d397d968774098 100644 (file)
@@ -2,9 +2,9 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-//go:build !netgo && cgo && darwin
+//go:build cgo && darwin
 
-package net
+package cgotest
 
 /*
 #include <resolv.h>