mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-19 00:31:00 +00:00
Replace os.Setenv with testing.T.Setenv in tests
T.Setenv ensures that the environment is returned to its prior state when the test ends. It also panics when called from a parallel test to prevent racy test interdependencies. Similarly, T.Cleanup ensures the environment is restored after a test or any of its parallel sub-tests call os.Unsetenv.
This commit is contained in:
parent
53cccbe4f9
commit
f3b9e0ddc9
@ -23,13 +23,13 @@ import (
|
||||
|
||||
func setEnvVar(t *testing.T, env, val string, exists bool) {
|
||||
if exists {
|
||||
if err := os.Setenv(env, val); err != nil {
|
||||
t.Errorf("could't set env %s: %v", env, err)
|
||||
t.Setenv(env, val)
|
||||
} else if prev, ok := os.LookupEnv(env); ok {
|
||||
t.Cleanup(func() { os.Setenv(env, prev) })
|
||||
|
||||
if err := os.Unsetenv(env); err != nil {
|
||||
t.Errorf("couldn't unset env %s: %v", env, err)
|
||||
}
|
||||
return
|
||||
}
|
||||
if err := os.Unsetenv(env); err != nil {
|
||||
t.Errorf("couldn't unset env %s: %v", env, err)
|
||||
}
|
||||
}
|
||||
|
||||
@ -69,12 +69,6 @@ func TestFallbackToEnv(t *testing.T) {
|
||||
|
||||
for _, test := range testCases {
|
||||
t.Run(test.desc, func(t *testing.T) {
|
||||
prevVal, prevOk := os.LookupEnv(test.env)
|
||||
defer func() {
|
||||
// preserve the original behavior
|
||||
setEnvVar(t, test.env, prevVal, prevOk)
|
||||
}()
|
||||
|
||||
setEnvVar(t, test.env, test.value, test.valueSet)
|
||||
value, err := fallbackToEnv("some-flag", test.env)
|
||||
if test.expectedError {
|
||||
@ -130,12 +124,6 @@ func TestFallbackToEnvWithDefault(t *testing.T) {
|
||||
|
||||
for _, test := range testCases {
|
||||
t.Run(test.desc, func(t *testing.T) {
|
||||
prevVal, prevOk := os.LookupEnv(test.env)
|
||||
defer func() {
|
||||
// preserve the original behavior
|
||||
setEnvVar(t, test.env, prevVal, prevOk)
|
||||
}()
|
||||
|
||||
setEnvVar(t, test.env, test.value, test.valueSet)
|
||||
value := fallbackToEnvWithDefault("some-flag", test.env, test.defaultValue)
|
||||
if value != test.expectedValue {
|
||||
|
Loading…
Reference in New Issue
Block a user