Skip to content

Commit 0f3d30b

Browse files
committed
Added tests for os version minor
Signed-off-by: Victor Moene <[email protected]>
1 parent 474fcce commit 0f3d30b

File tree

1 file changed

+70
-0
lines changed

1 file changed

+70
-0
lines changed
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
body common control
2+
{
3+
bundlesequence => { "test", "check" };
4+
}
5+
6+
bundle agent test
7+
{
8+
9+
vars:
10+
# Platforms to test
11+
12+
"platforms"
13+
slist => { "debian", "ubuntu", "redhat", "rhel", "centos", "fedora",
14+
"aix", "hpux", "suse", "opensuse", "opensuse_leap", "sles",
15+
"solaris", "sunos", "windows", "freebsd", "macos" };
16+
17+
18+
# Regex matching current platforms OS-class with version numbers
19+
"class_regex"
20+
string => format("^(%s)_[0-9]+_[0-9]+$", join("|", "platforms"));
21+
# Find OS-class with version numbers using regex
22+
"os_classes"
23+
slist => classesmatching("$(class_regex)");
24+
25+
# Regex to extract minor version number from OS-class
26+
# Edge cases:
27+
# - On Solaris/SunOS minor version comes second
28+
# E.g. Solaris 11 has class "solaris_5_11"
29+
30+
"extract_regex"
31+
string => ifelse("solaris|sunos", "^[a-z]+_([0-9]+)_[0-9]+$",
32+
"opensuse_leap", "^[a-z_]+_[0-9]+_([0-9]+$)",
33+
"^[a-z]+_[0-9]+_([0-9]+$)");
34+
35+
# Get extracted minor version number
36+
"version_number"
37+
data => data_regextract("$(extract_regex)", "$(os_classes)");
38+
39+
"expected"
40+
string => nth("@(version_number)", "1");
41+
}
42+
43+
bundle agent check
44+
{
45+
vars:
46+
"defined_classes"
47+
slist => classesmatching(".*");
48+
49+
classes:
50+
"exists"
51+
expression => isvariable("test.expected");
52+
53+
exists::
54+
"passed"
55+
expression => strcmp("$(test.expected)", "$(sys.os_version_minor)");
56+
!exists::
57+
"passed"
58+
expression => strcmp("Unknown", "$(sys.os_version_minor)");
59+
60+
reports:
61+
DEBUG::
62+
"Version number extracted from class: $(test.os_classes)";
63+
"Defined classes: $(defined_classes)";
64+
"$(this.promise_filename) Expected: $(test.expected)";
65+
"$(this.promise_filename) Found: $(sys.os_version_minor)";
66+
passed::
67+
"$(this.promise_filename) Pass";
68+
!passed::
69+
"$(this.promise_filename) FAIL";
70+
}

0 commit comments

Comments
 (0)