blob: 0d6d40912cd22ca2113df2e46f2553aa5903f610 [file]
// Copyright 2026 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 impl
import "testing"
func TestResetRestoresAllImplementations(t *testing.T) {
defer func(saved []implementation) { allImplementations = saved }(allImplementations)
first, second, unavailable := true, true, false
Register("testpkg", "First", &first)
Register("testpkg", "Second", &second)
Register("testpkg", "Unavailable", &unavailable)
if !Select("testpkg", "First") {
t.Fatal("Select reported an available implementation as unavailable")
}
if second {
t.Error("Select left another implementation enabled")
}
Select("testpkg", "")
Reset("testpkg")
for _, tc := range []struct {
name string
got bool
want bool
}{
{"First", first, true},
{"Second", second, true},
{"Unavailable", unavailable, false},
} {
if tc.got != tc.want {
t.Errorf("after Reset, %s is %v, want %v", tc.name, tc.got, tc.want)
}
}
}