Skip to content

Commit

Permalink
interfaces/prompting/patterns: add unit test for conflicting patterns
Browse files Browse the repository at this point in the history
Add a specific unit for parting and then rendering a pattern which produces many
identical variants.

Signed-off-by: Maciej Borzecki <[email protected]>
  • Loading branch information
bboozzoo committed Aug 7, 2024
1 parent 5b2c519 commit 681a235
Showing 1 changed file with 22 additions and 0 deletions.
22 changes: 22 additions & 0 deletions interfaces/prompting/patterns/render_internal_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,28 @@ func (s *renderSuite) TestRenderAllVariants(c *C) {
c.Check(variants, HasLen, parsed.NumVariants())
}

func (s *renderSuite) TestRenderAllVariantsConflicts(c *C) {
// all variants are the exact same path
pattern := "/{fo{obar},foo{b{ar,ar},bar,{ba}r}}"
scanned, err := scan(pattern)
c.Assert(err, IsNil)
parsed, err := parse(scanned)
c.Assert(err, IsNil)

expectedVariants := []string{
"/foobar",
}

variants := make([]string, 0, len(expectedVariants))
renderAllVariants(parsed, func(index int, variant PatternVariant) {
variants = append(variants, variant.String())
})

c.Check(variants, DeepEquals, expectedVariants)
c.Check(variants, HasLen, parsed.NumVariants())
c.Check(variants, HasLen, 1)
}

func (s *renderSuite) TestNextVariant(c *C) {
pattern := "/{,usr/}lib{,32,64,x32}/{,@{multiarch}/{,atomics/}}ld{-*,64}.so*"
scanned, err := scan(pattern)
Expand Down

0 comments on commit 681a235

Please sign in to comment.