aboutsummaryrefslogtreecommitdiff
path: root/tests/standard-version/driver.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'tests/standard-version/driver.cxx')
-rw-r--r--tests/standard-version/driver.cxx19
1 files changed, 13 insertions, 6 deletions
diff --git a/tests/standard-version/driver.cxx b/tests/standard-version/driver.cxx
index e6a21ef..86d9621 100644
--- a/tests/standard-version/driver.cxx
+++ b/tests/standard-version/driver.cxx
@@ -76,12 +76,14 @@ version (const string& s, bool allow_earliest = true)
// argv[0] -b <version>
// argv[0] -c <version> <version>
// argv[0] -r
+// argv[0] -s <version> <constraint>
// argv[0]
//
// -a output 'y' for alpha-version, 'n' otherwise
// -b output 'y' for beta-version, 'n' otherwise
// -c output 0 if versions are equal, -1 if the first one is less, 1 otherwise
// -r create version constraints from STDIN lines, and print them to STDOUT
+// -s output 'y' if version satisfies constraint, 'n' otherwise
//
// If no options are specified, then create versions from STDIN lines, and
// print them to STDOUT.
@@ -100,18 +102,14 @@ try
if (o == "-a")
{
assert (argc == 3);
- char r (version (argv[2]).alpha ()
- ? 'y'
- : 'n');
+ char r (version (argv[2]).alpha () ? 'y' : 'n');
cout << r << endl;
}
else if (o == "-b")
{
assert (argc == 3);
- char r (version (argv[2]).beta ()
- ? 'y'
- : 'n');
+ char r (version (argv[2]).beta () ? 'y' : 'n');
cout << r << endl;
}
@@ -130,6 +128,15 @@ try
while (getline (cin, s))
cout << standard_version_constraint (s) << endl;
}
+ else if (o == "-s")
+ {
+ assert (argc == 4);
+
+ char r (standard_version_constraint (argv[3]).satisfies (
+ version (argv[2])) ? 'y' : 'n');
+
+ cout << r << endl;
+ }
else
assert (false);