package pruning import ( "testing" "github.com/stretchr/testify/assert" ) func TestKeepRegexNegation(t *testing.T) { noneg := MustKeepRegex("^zrepl_", false) neg := MustKeepRegex("^zrepl_", true) snaps := []Snapshot{ stubSnap{name: "zrepl_foobar"}, stubSnap{name: "zrepl"}, stubSnap{name: "barfoo"}, } destroyNonNeg := snapshotList(noneg.KeepRule(snaps)) t.Logf("non-negated rule destroys: %#v", destroyNonNeg.NameList()) assert.True(t, destroyNonNeg.ContainsName("zrepl")) assert.True(t, destroyNonNeg.ContainsName("barfoo")) assert.False(t, destroyNonNeg.ContainsName("zrepl_foobar")) destroyNeg := snapshotList(neg.KeepRule(snaps)) t.Logf("negated rule destroys: %#v", destroyNeg.NameList()) assert.False(t, destroyNeg.ContainsName("zrepl")) assert.False(t, destroyNeg.ContainsName("barfoo")) assert.True(t, destroyNeg.ContainsName("zrepl_foobar")) }