Fix base/misc/version.bro version parsing

Turns out that base/misc/version.bro did not parse Bro versions
correctly in case the version is just 2.5-12 or similar. This commit
fixes this oversight and adds a few more small testcases.
This commit is contained in:
Johanna Amann 2018-08-24 17:22:33 -07:00
parent 1eeecf5fcc
commit 82cefd23c4
5 changed files with 11 additions and 3 deletions

View file

@ -1,4 +1,8 @@
2.5-907 | 2018-08-24 17:23:46 -0700
* Fix base/misc/version.bro version parsing. (Johanna Amann)
2.5-906 | 2018-08-24 14:57:55 -0500 2.5-906 | 2018-08-24 14:57:55 -0500
* Stabilize a cluster logging unit test (Jon Siwek, Corelight) * Stabilize a cluster logging unit test (Jon Siwek, Corelight)

View file

@ -1 +1 @@
2.5-906 2.5-907

View file

@ -66,7 +66,7 @@ function parse(version_string: string): VersionDescription
local commit = 0; local commit = 0;
if ( |components| > 1 ) if ( |components| > 1 )
{ {
local commitpart = find_last(components[1], /\-[[:digit:]]+/); local commitpart = find_last(cat("-", components[1]), /\-[[:digit:]]+/);
commit = ( |commitpart| > 0 ) ? to_count(sub_bytes(commitpart, 2, 999)) : 0; commit = ( |commitpart| > 0 ) ? to_count(sub_bytes(commitpart, 2, 999)) : 0;
} }

View file

@ -1,12 +1,14 @@
[version_number=10500, major=1, minor=5, patch=0, commit=0, beta=F, debug=F, version_string=1.5] [version_number=10500, major=1, minor=5, patch=0, commit=0, beta=F, debug=F, version_string=1.5]
[version_number=20000, major=2, minor=0, patch=0, commit=0, beta=F, debug=F, version_string=2.0] [version_number=20000, major=2, minor=0, patch=0, commit=0, beta=F, debug=F, version_string=2.0]
[version_number=20600, major=2, minor=6, patch=0, commit=0, beta=F, debug=F, version_string=2.6]
[version_number=20500, major=2, minor=5, patch=0, commit=0, beta=T, debug=F, version_string=2.5-beta] [version_number=20500, major=2, minor=5, patch=0, commit=0, beta=T, debug=F, version_string=2.5-beta]
[version_number=20501, major=2, minor=5, patch=1, commit=0, beta=F, debug=T, version_string=2.5.1-debug] [version_number=20501, major=2, minor=5, patch=1, commit=0, beta=F, debug=T, version_string=2.5.1-debug]
[version_number=20500, major=2, minor=5, patch=0, commit=12, beta=T, debug=F, version_string=2.5-beta-12] [version_number=20500, major=2, minor=5, patch=0, commit=12, beta=T, debug=F, version_string=2.5-beta-12]
[version_number=20500, major=2, minor=5, patch=0, commit=0, beta=F, debug=T, version_string=2.5-12-debug] [version_number=20500, major=2, minor=5, patch=0, commit=12, beta=F, debug=T, version_string=2.5-12-debug]
[version_number=20502, major=2, minor=5, patch=2, commit=12, beta=T, debug=T, version_string=2.5.2-beta-12-debug] [version_number=20502, major=2, minor=5, patch=2, commit=12, beta=T, debug=T, version_string=2.5.2-beta-12-debug]
[version_number=20502, major=2, minor=5, patch=2, commit=12, beta=T, debug=T, version_string=2.5.2-beta5-12-debug] [version_number=20502, major=2, minor=5, patch=2, commit=12, beta=T, debug=T, version_string=2.5.2-beta5-12-debug]
[version_number=11220, major=1, minor=12, patch=20, commit=2562, beta=T, debug=T, version_string=1.12.20-beta-2562-debug] [version_number=11220, major=1, minor=12, patch=20, commit=2562, beta=T, debug=T, version_string=1.12.20-beta-2562-debug]
[version_number=20600, major=2, minor=6, patch=0, commit=936, beta=F, debug=F, version_string=2.6-936]
[version_number=0, major=0, minor=0, patch=0, commit=0, beta=F, debug=F, version_string=1] [version_number=0, major=0, minor=0, patch=0, commit=0, beta=F, debug=F, version_string=1]
[version_number=0, major=0, minor=0, patch=0, commit=0, beta=F, debug=F, version_string=12.5] [version_number=0, major=0, minor=0, patch=0, commit=0, beta=F, debug=F, version_string=12.5]
[version_number=0, major=0, minor=0, patch=0, commit=0, beta=F, debug=F, version_string=1.12-beta-drunk] [version_number=0, major=0, minor=0, patch=0, commit=0, beta=F, debug=F, version_string=1.12-beta-drunk]

View file

@ -5,6 +5,7 @@
# good versions # good versions
print Version::parse("1.5"); print Version::parse("1.5");
print Version::parse("2.0"); print Version::parse("2.0");
print Version::parse("2.6");
print Version::parse("2.5-beta"); print Version::parse("2.5-beta");
print Version::parse("2.5.1-debug"); print Version::parse("2.5.1-debug");
print Version::parse("2.5-beta-12"); print Version::parse("2.5-beta-12");
@ -12,6 +13,7 @@ print Version::parse("2.5-12-debug");
print Version::parse("2.5.2-beta-12-debug"); print Version::parse("2.5.2-beta-12-debug");
print Version::parse("2.5.2-beta5-12-debug"); print Version::parse("2.5.2-beta5-12-debug");
print Version::parse("1.12.20-beta-2562-debug"); print Version::parse("1.12.20-beta-2562-debug");
print Version::parse("2.6-936");
# bad versions # bad versions
print Version::parse("1"); print Version::parse("1");