diff --git a/internal/testutil/env.go b/internal/testutil/env.go index e5eaddd..f2427f5 100644 --- a/internal/testutil/env.go +++ b/internal/testutil/env.go @@ -9,15 +9,6 @@ import ( // Licensed under the MIT license // Copyright (c) 2017 Canonical Ltd. -// Setenv sets an environment variable to a temporary value for the -// duration of the test. -// -// At the end of the test (see "Deferred execution" in the package docs), the -// environment variable is returned to its original value. -func Setenv(t *testing.T, name, val string) { - setenv(t, name, val, true) -} - // Unsetenv unsets an environment variable for the duration of a test. func Unsetenv(t *testing.T, name string) { setenv(t, name, "", false) diff --git a/internal/testutil/env_go1_16.go b/internal/testutil/env_go1_16.go new file mode 100644 index 0000000..5c1f7f9 --- /dev/null +++ b/internal/testutil/env_go1_16.go @@ -0,0 +1,22 @@ +//go:build !go1.17 +// +build !go1.17 + +package testutil + +import ( + "os" + "testing" +) + +// Based on https://github.com/frankban/quicktest/blob/577841610793d24f99e31cc2c0ef3a541fefd7c7/patch.go#L34-L64 +// Licensed under the MIT license +// Copyright (c) 2017 Canonical Ltd. + +// Setenv sets an environment variable to a temporary value for the +// duration of the test. +// +// At the end of the test (see "Deferred execution" in the package docs), the +// environment variable is returned to its original value. +func Setenv(t *testing.T, name, val string) { + setenv(t, name, val, true) +} diff --git a/internal/testutil/env_go1_17.go b/internal/testutil/env_go1_17.go new file mode 100644 index 0000000..c7bf1fe --- /dev/null +++ b/internal/testutil/env_go1_17.go @@ -0,0 +1,18 @@ +//go:build go1.17 +// +build go1.17 + +package testutil + +import ( + "testing" +) + +// Setenv sets an environment variable to a temporary value for the +// duration of the test. +// +// This shim can be removed once support for Go <1.17 is dropped. +func Setenv(t *testing.T, name, val string) { + t.Helper() + + t.Setenv(name, val) +}