tests: add (negative) "." test case for rational conversion

A naive implementation of the parse rational conversion helper could
have accepted invalid input. Check for the expected conversion failure.
This commit is contained in:
Gerhard Sittig 2018-07-19 21:45:10 +02:00 committed by Uwe Hermann
parent 74d915331a
commit 081aaebfc7
1 changed files with 12 additions and 0 deletions

View File

@ -125,6 +125,15 @@ static void test_rational(const char *input, struct sr_rational expected)
input, rational.p, rational.q);
}
static void test_rational_fail(const char *input)
{
int ret;
struct sr_rational rational;
ret = sr_parse_rational(input, &rational);
fail_unless(ret != SR_OK, "Unexpected success for '%s'.", input);
}
static void test_voltage(uint64_t v_p, uint64_t v_q, const char *expected)
{
char *s;
@ -395,6 +404,9 @@ START_TEST(test_fractional)
test_rational("-.1", (struct sr_rational){-1, 10});
test_rational(" .1", (struct sr_rational){1, 10});
test_rational("+.1", (struct sr_rational){1, 10});
test_rational_fail(".");
test_rational_fail(".e");
test_rational_fail(".e1");
}
END_TEST