diff options
author | Martin Matuska <martin@matuska.org> | 2017-02-21 13:12:07 +0100 |
---|---|---|
committer | Martin Matuska <martin@matuska.org> | 2017-02-21 13:15:44 +0100 |
commit | 042dc9445a45ff789a2fac9dd6976ec2df8b6f98 (patch) | |
tree | 843c5d996707f60815f915c0b66bc667122d6802 /cat | |
parent | 481e97f6ab6cb909a31c39d1e4954db1a98cfdbb (diff) | |
parent | 47ac1b5306292bf17e7c5f15a1655578378411d6 (diff) | |
download | libarchive-042dc9445a45ff789a2fac9dd6976ec2df8b6f98.tar.gz |
Merge pull request #871 from praiskup/dev-in-version
Unify version test among tests and allow trailing "dev" in version.
Diffstat (limited to 'cat')
-rw-r--r-- | cat/test/CMakeLists.txt | 1 | ||||
-rw-r--r-- | cat/test/test_version.c | 67 |
2 files changed, 4 insertions, 64 deletions
diff --git a/cat/test/CMakeLists.txt b/cat/test/CMakeLists.txt index c4642aea..9dbf4b79 100644 --- a/cat/test/CMakeLists.txt +++ b/cat/test/CMakeLists.txt @@ -6,6 +6,7 @@ IF(ENABLE_CAT AND ENABLE_TEST) SET(bsdcat_test_SOURCES ../../test_utils/test_utils.c + ../../test_utils/lib/version.c main.c test.h test_0.c diff --git a/cat/test/test_version.c b/cat/test/test_version.c index e587b344..f582a13f 100644 --- a/cat/test/test_version.c +++ b/cat/test/test_version.c @@ -28,70 +28,9 @@ * Test that --version option works and generates reasonable output. */ +#include "lib/version.h" + DEFINE_TEST(test_version) { - int r; - char *p, *q; - size_t s; - - - r = systemf("%s --version >version.stdout 2>version.stderr", testprog); - failure("Unable to run %s --version", testprog); - if (!assert(r == 0)) - return; - - /* --version should generate nothing to stdout. */ - assertEmptyFile("version.stderr"); - /* Verify format of version message. */ - q = p = slurpfile(&s, "version.stdout"); - /* Version message should start with name of program, then space. */ - assert(s > 6); - failure("Version must start with 'bsdcat': ``%s''", p); - if (!assertEqualMem(q, "bsdcat ", 7)) - return; - q += 7; s -= 7; - /* Version number is a series of digits and periods. */ - while (s > 0 && (*q == '.' || (*q >= '0' && *q <= '9'))) { - ++q; - --s; - } - /* Version number terminated by space. */ - failure("No space after bsdcat version: ``%s''", p); - assert(s > 1); - /* Skip a single trailing a,b,c, or d. */ - if (*q == 'a' || *q == 'b' || *q == 'c' || *q == 'd') - ++q; - failure("No space after bsdcat version: ``%s''", p); - assert(*q == ' '); - ++q; --s; - /* Separator. */ - failure("No `-' between bsdcat and libarchive versions: ``%s''", p); - assertEqualMem(q, "- ", 2); - q += 2; s -= 2; - /* libarchive name and version number */ - failure("Not long enough for libarchive version: ``%s''", p); - assert(s > 11); - failure("Libarchive version must start with `libarchive': ``%s''", p); - assertEqualMem(q, "libarchive ", 11); - q += 11; s -= 11; - /* Version number is a series of digits and periods. */ - while (s > 0 && (*q == '.' || (*q >= '0' && *q <= '9'))) { - ++q; - --s; - } - /* Skip a single trailing a,b,c, or d. */ - if (*q == 'a' || *q == 'b' || *q == 'c' || *q == 'd') - ++q; - /* Skip arbitrary third-party version numbers. */ - while (s > 0 && (*q == ' ' || *q == '-' || *q == '/' || *q == '.' || isalnum(*q))) { - ++q; - --s; - } - /* All terminated by end-of-line. */ - assert(s >= 1); - /* Skip an optional CR character (e.g., Windows) */ - failure("Version output must end with \\n or \\r\\n"); - if (*q == '\r') { ++q; --s; } - assertEqualMem(q, "\n", 1); - free(p); + assertVersion(testprog, "bsdcat"); } |