google.golang.org/grpc@v1.72.2/internal/testutils/envconfig.go (about) 1 package testutils 2 3 /* 4 * 5 * Copyright 2025 gRPC authors. 6 * 7 * Licensed under the Apache License, Version 2.0 (the "License"); 8 * you may not use this file except in compliance with the License. 9 * You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, software 14 * distributed under the License is distributed on an "AS IS" BASIS, 15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 * See the License for the specific language governing permissions and 17 * limitations under the License. 18 */ 19 20 import ( 21 "testing" 22 ) 23 24 // SetEnvConfig sets the value of the given variable to the specified value, 25 // taking care of restoring the original value after the test completes. 26 func SetEnvConfig[T any](t *testing.T, variable *T, value T) { 27 t.Helper() 28 old := *variable 29 t.Cleanup(func() { 30 *variable = old 31 }) 32 *variable = value 33 }