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
* 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;
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;
}

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=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=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=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-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=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=12.5]
[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
print Version::parse("1.5");
print Version::parse("2.0");
print Version::parse("2.6");
print Version::parse("2.5-beta");
print Version::parse("2.5.1-debug");
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-beta5-12-debug");
print Version::parse("1.12.20-beta-2562-debug");
print Version::parse("2.6-936");
# bad versions
print Version::parse("1");