diff options
Diffstat (limited to 'common/t-stringhelp.c')
-rw-r--r-- | common/t-stringhelp.c | 65 |
1 files changed, 42 insertions, 23 deletions
diff --git a/common/t-stringhelp.c b/common/t-stringhelp.c index ccadf0222..93b014ae1 100644 --- a/common/t-stringhelp.c +++ b/common/t-stringhelp.c @@ -40,6 +40,7 @@ #endif #include <unistd.h> #include <sys/types.h> +#include <limits.h> #include "t-support.h" #include "stringhelp.h" @@ -903,45 +904,63 @@ static void test_compare_version_strings (void) { struct { const char *a; const char *b; int okay; } tests[] = { - { "1.0.0", "1.0.0", 1 }, + { "1.0.0", "1.0.0", 0 }, { "1.0.0-", "1.0.0", 1 }, { "1.0.0-1", "1.0.0", 1 }, { "1.0.0.1", "1.0.0", 1 }, - { "1.0.0", "1.0.1", 0 }, - { "1.0.0-", "1.0.1", 0 }, - { "1.0.0-1", "1.0.1", 0 }, - { "1.0.0.1", "1.0.1", 0 }, - { "1.0.0", "1.1.0", 0 }, - { "1.0.0-", "1.1.0", 0 }, - { "1.0.0-1", "1.1.0", 0 }, - { "1.0.0.1", "1.1.0", 0 }, - - { "1.0.0", "1.0.0-", 1 }, - { "1.0.0", "1.0.0-1", 1 }, - { "1.0.0", "1.0.0.1", 1 }, + { "1.0.0", "1.0.1", -1 }, + { "1.0.0-", "1.0.1", -1 }, + { "1.0.0-1", "1.0.1", -1 }, + { "1.0.0.1", "1.0.1", -1 }, + { "1.0.0", "1.1.0", -1 }, + { "1.0.0-", "1.1.0", -1 }, + { "1.0.0-1", "1.1.0", -1 }, + { "1.0.0.1", "1.1.0", -1 }, + + { "1.0.0", "1.0.0-", -1 }, + { "1.0.0", "1.0.0-1", -1 }, + { "1.0.0", "1.0.0.1", -1 }, { "1.1.0", "1.0.0", 1 }, { "1.1.1", "1.1.0", 1 }, - { "1.1.2", "1.1.2", 1 }, + { "1.1.2", "1.1.2", 0 }, { "1.1.2", "1.0.2", 1 }, { "1.1.2", "0.0.2", 1 }, - { "1.1.2", "1.1.3", 0 }, + { "1.1.2", "1.1.3", -1 }, { "0.99.1", "0.9.9", 1 }, - { "0.9.1", "0.91.0", 0 }, + { "0.9.1", "0.91.0", -1 }, { "1.5.3", "1.5", 1 }, - { "1.5.0", "1.5", 1 }, - { "1.4.99", "1.5", 0 }, + { "1.5.0", "1.5", 0 }, + { "1.4.99", "1.5", -1 }, { "1.5", "1.4.99", 1 }, - { "1.5", "1.5.0", 1 }, - { "1.5", "1.5.1", 0 }, + { "1.5", "1.5.0", 0 }, + { "1.5", "1.5.1", -1 }, { "1.5.3-x17", "1.5-23", 1 }, { "1.5.3a", "1.5.3", 1 }, - { "1.5.3a", "1.5.3b", 1 }, - - { NULL, NULL, 0 } + { "1.5.3a", "1.5.3b", -1 }, + + { "3.1.4-ab", "3.1.4-ab", 0 }, + { "3.1.4-ab", "3.1.4-ac", -1 }, + { "3.1.4-ac", "3.1.4-ab", 1 }, + { "3.1.4-ab", "3.1.4-abb", -1 }, + { "3.1.4-abb", "3.1.4-ab", 1 }, + + { "", "", INT_MIN }, + { NULL, "", INT_MIN }, + { "1.2.3", "", INT_MIN }, + { "1.2.3", "2", INT_MIN }, + + /* Test cases for validity of A. */ + { "", NULL, INT_MIN }, + { "1", NULL, INT_MIN }, + { "1.", NULL, 0 }, + { "1.0", NULL, 0 }, + { "1.0.", NULL, 0 }, + { "a1.2", NULL, INT_MIN }, + { NULL, NULL, INT_MIN } }; int idx; int res; |