mirror of
https://github.com/anchore/syft.git
synced 2025-11-17 16:33:21 +01:00
fix: issue when matching format versions (#1585)
Signed-off-by: Keith Zantow <kzantow@gmail.com>
This commit is contained in:
parent
d339ffdcb5
commit
8f6a317fef
@ -85,14 +85,9 @@ func versionMatches(version string, match string) bool {
|
|||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
dots := strings.Count(match, ".")
|
|
||||||
if dots == 0 {
|
|
||||||
match += ".*"
|
|
||||||
}
|
|
||||||
match = strings.ReplaceAll(match, ".", "\\.")
|
match = strings.ReplaceAll(match, ".", "\\.")
|
||||||
match = strings.ReplaceAll(match, "*", ".*")
|
match = strings.ReplaceAll(match, "*", ".*")
|
||||||
match = strings.ReplaceAll(match, "\\..*", "(\\..*)*")
|
match = fmt.Sprintf("^%s(\\..*)*$", match)
|
||||||
match = fmt.Sprintf("^%s$", match)
|
|
||||||
matcher, err := regexp.Compile(match)
|
matcher, err := regexp.Compile(match)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return false
|
return false
|
||||||
|
|||||||
@ -227,12 +227,61 @@ func Test_versionMatches(t *testing.T) {
|
|||||||
match: "3.1",
|
match: "3.1",
|
||||||
matches: true,
|
matches: true,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: "wildcard-version matches minor",
|
||||||
|
version: "7.1.3",
|
||||||
|
match: "7.*",
|
||||||
|
matches: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "wildcard-version matches patch",
|
||||||
|
version: "7.4.8",
|
||||||
|
match: "7.4.*",
|
||||||
|
matches: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "sub-version matches major",
|
||||||
|
version: "7.19.11",
|
||||||
|
match: "7",
|
||||||
|
matches: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "sub-version matches minor",
|
||||||
|
version: "7.55.2",
|
||||||
|
match: "7.55",
|
||||||
|
matches: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "sub-version matches patch",
|
||||||
|
version: "7.32.6",
|
||||||
|
match: "7.32.6",
|
||||||
|
matches: true,
|
||||||
|
},
|
||||||
|
// negative tests
|
||||||
{
|
{
|
||||||
name: "different number does not match",
|
name: "different number does not match",
|
||||||
version: "3",
|
version: "3",
|
||||||
match: "4",
|
match: "4",
|
||||||
matches: false,
|
matches: false,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: "sub-version doesn't match major",
|
||||||
|
version: "7.2.5",
|
||||||
|
match: "8.2.5",
|
||||||
|
matches: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "sub-version doesn't match minor",
|
||||||
|
version: "7.2.9",
|
||||||
|
match: "7.1",
|
||||||
|
matches: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "sub-version doesn't match patch",
|
||||||
|
version: "7.32.6",
|
||||||
|
match: "7.32.5",
|
||||||
|
matches: false,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user