]> sigrok.org Git - libsigrok.git/blobdiff - tests/strutil.c
tests: add more cases for text to rational number conversion
[libsigrok.git] / tests / strutil.c
index e2a0a20a86e3444007aeb2e5c310671c26900546..82856f1dd4a4d8e719bc0c5b5b9326fa6334a2a7 100644 (file)
@@ -19,6 +19,7 @@
 
 #include <config.h>
 #include <check.h>
+#include <errno.h>
 #include <locale.h>
 #include <libsigrok/libsigrok.h>
 #include "lib.h"
@@ -117,7 +118,8 @@ static void test_rational(const char *input, struct sr_rational expected)
        struct sr_rational rational;
 
        ret = sr_parse_rational(input, &rational);
-       fail_unless(ret == SR_OK);
+       fail_unless(ret == SR_OK, "Unexpected rc for '%s': %d, errno %d.",
+               input, ret, errno);
        fail_unless((expected.p == rational.p) && (expected.q == rational.q),
                    "Invalid result for '%s': %ld/%ld'.",
                    input, rational.p, rational.q);
@@ -386,6 +388,13 @@ START_TEST(test_fractional)
        test_rational("+.1", (struct sr_rational){1, 10});
        test_rational("-0.1", (struct sr_rational){-1, 10});
        test_rational("-.1", (struct sr_rational){-1, 10});
+       test_rational(".1", (struct sr_rational){1, 10});
+       test_rational(".123", (struct sr_rational){123, 1000});
+       test_rational("1.", (struct sr_rational){1, 1});
+       test_rational("123.", (struct sr_rational){123, 1});
+       test_rational("-.1", (struct sr_rational){-1, 10});
+       test_rational(" .1", (struct sr_rational){1, 10});
+       test_rational("+.1", (struct sr_rational){1, 10});
 }
 END_TEST