Atlas › Test

TestWildCardStringToRegexp

Exact test identity: go.temporal.io/server/common/util/TestWildCardStringToRegexp

Package
go.temporal.io/server/common/util
Suite / test hierarchy
TestWildCardStringToRegexp
Test
TestWildCardStringToRegexp
Introduced at
wildcard.go ×1 Frontier kind: Joint frontier
Covered ranges
6
Covered lines
22
Covered files
1

Covered source

Expand a file to inspect source; the > gutter marks covered lines.

go.temporal.io/server/common/util/wildcard.go 22 covered LOC · 6 ranges

Open complete file

9 // WildCardStringToRegexp converts a given string pattern to a regular expression matching wildcards (*) with any
10 // substring.
11 > func WildCardStringToRegexp(pattern string) (*regexp.Regexp, error) { wildcard.go
12 > if pattern == "" {
13 > return nil, errors.New("pattern cannot be empty")
14 > }
15 > return WildCardStringsToRegexp([]string{pattern})
16 }
17
18 // WildCardStringToRegexps converts a given slices of string patterns to a slice of regular expressions matching
19 // wildcards (*) with any substring.
20 > func WildCardStringsToRegexp(patterns []string) (*regexp.Regexp, error) { wildcard.go
21 > var result strings.Builder
22 > result.WriteRune('^')
23 > for i, pattern := range patterns {
24 > result.WriteRune('(')
25 > first := true
26 > for literal := range strings.SplitSeq(pattern, "*") {
27 > if !first {
28 > // Replace * with .* wildcard.go
29 > result.WriteString(".*")
30 > }
31 > result.WriteString(regexp.QuoteMeta(literal)) wildcard.go
32 > first = false
33 }
34 > result.WriteRune(')') wildcard.go
35 > if i < len(patterns)-1 {
36 result.WriteRune('|')
37 }
38 }
39 > result.WriteRune('$') wildcard.go
40 > return regexp.Compile(result.String())
41 }
42