]> sigrok.org Git - libsigrok.git/commitdiff
tests: relax the "version text" length check, accept longer strings
authorGerhard Sittig <redacted>
Sun, 16 Oct 2016 16:25:22 +0000 (18:25 +0200)
committerUwe Hermann <redacted>
Mon, 17 Oct 2016 00:08:44 +0000 (02:08 +0200)
The version text length check fails for git setups that use more digits
in abbreviated hashes, as is recommended by e.g. the Linux kernel project.

Raise the upper limit for acceptable version strings, and add comments
on how the limits were determined. The test still might fail in setups
of slightly different configuration, but now it's easier to see why the
test failed, and how to adjust the test.

Signed-off-by: Gerhard Sittig <redacted>
tests/version.c

index 62806809f8634f57e69a5363b0bfc21d53fc0c6a..ba91ddee4684e51bcbf8ad07b23cf6570f76538b 100644 (file)
@@ -60,21 +60,38 @@ END_TEST
 /*
  * Check the version number API calls and macros.
  *
- * The string representations of the package/lib version must match the
- * version numbers, the string lengths must be >= 5 (e.g. "0.1.0"), and
- * the strings length must be <= 20 characters, otherwise something is
- * probably wrong.
+ * The string representations of the package/lib version must neither be
+ * NULL nor empty, and the length shall be within an expected range.
+ *
+ * The lower limit assumes:
+ * - A version text consists of three parts (major, minor, micro),
+ *   like "0.1.0".
+ * - Three numbers with at least one digit, and their separators,
+ *   result in a minimum length of 5.
+ *
+ * The upper limit assumes:
+ * - The major, minor, and micro parts won't contain more than two
+ *   digits each (this is an arbitrary choice).
+ * - An optional "-git-<hash>" suffix might follow. While git(1)
+ *   defaults to 7 hex digits for abbreviated hashes, projects of
+ *   larger scale might recommend to use more digits to avoid
+ *   potential ambiguity (e.g. Linux recommends core.abbrev=12).
+ *   Again, this is an arbitrary choice.
  */
 START_TEST(test_version_strings)
 {
        const char *str;
+       const size_t len_min = 5;
+       const size_t len_max = 2 + 1 + 2 + 1 + 2 + 5 + 12;
 
        str = sr_package_version_string_get();
        fail_unless(str != NULL);
-       fail_unless(strlen(str) >= 5 && strlen(str) <= 20);
+       fail_unless(strlen(str) >= len_min);
+       fail_unless(strlen(str) <= len_max);
        str = sr_lib_version_string_get();
        fail_unless(str != NULL);
-       fail_unless(strlen(str) >= 5 && strlen(str) <= 20);
+       fail_unless(strlen(str) >= len_min);
+       fail_unless(strlen(str) <= len_max);
 }
 END_TEST