summaryrefslogtreecommitdiffstats
path: root/text_cmds/tests/sort_vers.c
diff options
context:
space:
mode:
Diffstat (limited to 'text_cmds/tests/sort_vers.c')
-rw-r--r--text_cmds/tests/sort_vers.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/text_cmds/tests/sort_vers.c b/text_cmds/tests/sort_vers.c
new file mode 100644
index 0000000..8a3fce8
--- /dev/null
+++ b/text_cmds/tests/sort_vers.c
@@ -0,0 +1,23 @@
+#include <darwintest.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <inttypes.h>
+#include <limits.h>
+
+T_DECL(versionstring, "Apple specific version string") {
+ char version[128];
+ FILE *sortfile = popen("/usr/bin/sort --version", "r");
+ T_ASSERT_NOTNULL(sortfile, "Getting version string");
+ T_ASSERT_NOTNULL(fgets(version, sizeof(version), sortfile), "Reading version string");
+ pclose(sortfile);
+ T_ASSERT_NOTNULL(strstr(version, "-Apple"), "Apple in version string");
+
+ char *num = strstr(version, "(");
+ char *endnum = strstr(version, ")");
+ T_ASSERT_NOTNULL(num, "Locating parens start");
+ T_ASSERT_NOTNULL(endnum, "Locating parens end");
+ T_ASSERT_GT(endnum, num, "end is after the start");
+ long applevers = strtol(num+1, &endnum, 10);
+ T_ASSERT_GT(applevers, 0, "Version greater than zero");
+ T_ASSERT_LT(applevers, LONG_MAX, "Version less than LONG_MAX");
+}