From e28bc49e5f46c35704ac313ba17a11fae878c25f Mon Sep 17 00:00:00 2001 From: Denton Gentry Date: Sat, 10 Jul 2021 07:22:08 -0700 Subject: [PATCH] netns_linux: remove special handling for tests. With netns handling localhost now, existing tests no longer need special handling. The tests set up their connections to localhost, and the connections work without fuss. Remove the special handling for tests. Also remove the hostinfo.TestCase support, since this was the only use of it. It can be added back later if really needed, but it would be better to try to make tests work without special cases. Signed-off-by: Denton Gentry --- cmd/tailscale/depaware.txt | 2 +- hostinfo/hostinfo.go | 14 -------------- net/netns/netns_linux.go | 12 ------------ 3 files changed, 1 insertion(+), 27 deletions(-) diff --git a/cmd/tailscale/depaware.txt b/cmd/tailscale/depaware.txt index 3adfe7c62..dfc160e37 100644 --- a/cmd/tailscale/depaware.txt +++ b/cmd/tailscale/depaware.txt @@ -22,7 +22,7 @@ tailscale.com/cmd/tailscale dependencies: (generated by github.com/tailscale/dep tailscale.com/derp from tailscale.com/derp/derphttp tailscale.com/derp/derphttp from tailscale.com/net/netcheck tailscale.com/disco from tailscale.com/derp - tailscale.com/hostinfo from tailscale.com/net/interfaces+ + tailscale.com/hostinfo from tailscale.com/net/interfaces tailscale.com/ipn from tailscale.com/cmd/tailscale/cli+ tailscale.com/ipn/ipnstate from tailscale.com/cmd/tailscale/cli+ tailscale.com/metrics from tailscale.com/derp diff --git a/hostinfo/hostinfo.go b/hostinfo/hostinfo.go index 791da939c..58c8e9de3 100644 --- a/hostinfo/hostinfo.go +++ b/hostinfo/hostinfo.go @@ -9,7 +9,6 @@ package hostinfo import ( - "flag" "io" "os" "runtime" @@ -29,7 +28,6 @@ const ( Heroku = EnvType("hr") AzureAppService = EnvType("az") AWSFargate = EnvType("fg") - TestCase = EnvType("tc") ) var envType atomic.Value // of EnvType @@ -44,11 +42,6 @@ func GetEnvType() EnvType { } func getEnvType() EnvType { - // inTestCase needs to go first. If running tests in a container, we want - // the environment to be TestCase not the type of container. - if inTestCase() { - return TestCase - } if inKnative() { return KNative } @@ -91,13 +84,6 @@ func InContainer() bool { return ret } -func inTestCase() bool { - if flag.CommandLine.Lookup("test.v") != nil { - return true - } - return false -} - func inKnative() bool { // https://cloud.google.com/run/docs/reference/container-contract#env-vars if os.Getenv("K_REVISION") != "" && os.Getenv("K_CONFIGURATION") != "" && diff --git a/net/netns/netns_linux.go b/net/netns/netns_linux.go index 42834338c..c12d000e8 100644 --- a/net/netns/netns_linux.go +++ b/net/netns/netns_linux.go @@ -15,7 +15,6 @@ import ( "syscall" "golang.org/x/sys/unix" - "tailscale.com/hostinfo" "tailscale.com/net/interfaces" ) @@ -75,14 +74,6 @@ func useSocketMark() bool { // ignoreErrors returns true if we should ignore setsocketopt errors in // this instance. func ignoreErrors() bool { - // If we're in a test, ignore errors. Assume the test knows - // what it's doing and will do its own skips or permission - // checks if it's setting up a world that needs netns to work. - // But by default, assume that tests don't need netns and it's - // harmless to ignore the sockopts failing. - if hostinfo.GetEnvType() == hostinfo.TestCase { - return true - } if os.Getuid() != 0 { // only root can manipulate these socket flags return true @@ -95,9 +86,6 @@ func ignoreErrors() bool { // It's intentionally the same signature as net.Dialer.Control // and net.ListenConfig.Control. func control(network, address string, c syscall.RawConn) error { - if hostinfo.GetEnvType() == hostinfo.TestCase { - return nil - } if isLocalhost(address) { // Don't bind to an interface for localhost connections. return nil