mirror of https://github.com/tailscale/tailscale/
envknob: add GOOS func
Centralize the fake GOOS stuff, start to use it more. To be used more in the future. Change-Id: Iabacfbeaf5fca0b53bf4d5dbcdc0367f05a205f9 Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>pull/6481/head
parent
6e6f27dd21
commit
4d3713f631
@ -0,0 +1,17 @@
|
||||
// Copyright (c) 2022 Tailscale Inc & AUTHORS All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
//go:build ts_not_in_tests
|
||||
|
||||
package envknob
|
||||
|
||||
import "runtime"
|
||||
|
||||
func GOOS() string {
|
||||
// When the "ts_not_in_tests" build tag is used, we define this func to just
|
||||
// return a simple constant so callers optimize just as if the knob were not
|
||||
// present. We can then build production/optimized builds with the
|
||||
// "ts_not_in_tests" build tag.
|
||||
return runtime.GOOS
|
||||
}
|
@ -0,0 +1,24 @@
|
||||
// Copyright (c) 2022 Tailscale Inc & AUTHORS All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
//go:build !ts_not_in_tests
|
||||
|
||||
package envknob
|
||||
|
||||
import "runtime"
|
||||
|
||||
// GOOS reports the effective runtime.GOOS to run as.
|
||||
//
|
||||
// In practice this returns just runtime.GOOS, unless overridden by
|
||||
// test TS_DEBUG_FAKE_GOOS.
|
||||
//
|
||||
// This allows changing OS-specific stuff like the IPN server behavior
|
||||
// for tests so we can e.g. test Windows-specific behaviors on Linux.
|
||||
// This isn't universally used.
|
||||
func GOOS() string {
|
||||
if v := String("TS_DEBUG_FAKE_GOOS"); v != "" {
|
||||
return v
|
||||
}
|
||||
return runtime.GOOS
|
||||
}
|
Loading…
Reference in New Issue