| // Copyright 2025 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 fips140 |
| |
| import ( |
| "internal/godebug" |
| "os" |
| "testing" |
| ) |
| |
| func TestImmutableGODEBUG(t *testing.T) { |
| defer func(v string) { os.Setenv("GODEBUG", v) }(os.Getenv("GODEBUG")) |
| |
| fips140Enabled := Enabled() |
| fips140Setting := godebug.New("fips140") |
| fips140SettingValue := fips140Setting.Value() |
| |
| os.Setenv("GODEBUG", "fips140=off") |
| if Enabled() != fips140Enabled { |
| t.Errorf("Enabled() changed after setting GODEBUG=fips140=off") |
| } |
| if fips140Setting.Value() != fips140SettingValue { |
| t.Errorf("fips140Setting.Value() changed after setting GODEBUG=fips140=off") |
| } |
| |
| os.Setenv("GODEBUG", "fips140=on") |
| if Enabled() != fips140Enabled { |
| t.Errorf("Enabled() changed after setting GODEBUG=fips140=on") |
| } |
| if fips140Setting.Value() != fips140SettingValue { |
| t.Errorf("fips140Setting.Value() changed after setting GODEBUG=fips140=on") |
| } |
| |
| os.Setenv("GODEBUG", "fips140=") |
| if Enabled() != fips140Enabled { |
| t.Errorf("Enabled() changed after setting GODEBUG=fips140=") |
| } |
| if fips140Setting.Value() != fips140SettingValue { |
| t.Errorf("fips140Setting.Value() changed after setting GODEBUG=fips140=") |
| } |
| |
| os.Setenv("GODEBUG", "") |
| if Enabled() != fips140Enabled { |
| t.Errorf("Enabled() changed after setting GODEBUG=") |
| } |
| if fips140Setting.Value() != fips140SettingValue { |
| t.Errorf("fips140Setting.Value() changed after setting GODEBUG=") |
| } |
| } |