mirror of
https://github.com/restic/restic.git
synced 2025-12-04 00:11:47 +00:00
features: add basic feature flag implementation
This commit is contained in:
29
internal/feature/testing.go
Normal file
29
internal/feature/testing.go
Normal file
@@ -0,0 +1,29 @@
|
||||
package feature
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"testing"
|
||||
)
|
||||
|
||||
// TestSetFlag temporarily sets a feature flag to the given value until the
|
||||
// returned function is called.
|
||||
//
|
||||
// Usage
|
||||
// ```
|
||||
// defer TestSetFlag(t, features.Flags, features.ExampleFlag, true)()
|
||||
// ```
|
||||
func TestSetFlag(t *testing.T, f *FlagSet, flag FlagName, value bool) func() {
|
||||
current := f.Enabled(flag)
|
||||
|
||||
if err := f.Apply(fmt.Sprintf("%s=%v", flag, value)); err != nil {
|
||||
// not reachable
|
||||
panic(err)
|
||||
}
|
||||
|
||||
return func() {
|
||||
if err := f.Apply(fmt.Sprintf("%s=%v", flag, current)); err != nil {
|
||||
// not reachable
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user