|
|
|
@ -187,6 +187,55 @@ static void test_parse_integer(void) {
|
|
|
|
|
assert(!ok); // out-of-range
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void test_parse_integers(void) {
|
|
|
|
|
long values[5];
|
|
|
|
|
|
|
|
|
|
size_t count = parse_integers("1234", ':', 5, values);
|
|
|
|
|
assert(count == 1);
|
|
|
|
|
assert(values[0] == 1234);
|
|
|
|
|
|
|
|
|
|
count = parse_integers("1234:5678", ':', 5, values);
|
|
|
|
|
assert(count == 2);
|
|
|
|
|
assert(values[0] == 1234);
|
|
|
|
|
assert(values[1] == 5678);
|
|
|
|
|
|
|
|
|
|
count = parse_integers("1234:5678", ':', 2, values);
|
|
|
|
|
assert(count == 2);
|
|
|
|
|
assert(values[0] == 1234);
|
|
|
|
|
assert(values[1] == 5678);
|
|
|
|
|
|
|
|
|
|
count = parse_integers("1234:-5678", ':', 2, values);
|
|
|
|
|
assert(count == 2);
|
|
|
|
|
assert(values[0] == 1234);
|
|
|
|
|
assert(values[1] == -5678);
|
|
|
|
|
|
|
|
|
|
count = parse_integers("1:2:3:4:5", ':', 5, values);
|
|
|
|
|
assert(count == 5);
|
|
|
|
|
assert(values[0] == 1);
|
|
|
|
|
assert(values[1] == 2);
|
|
|
|
|
assert(values[2] == 3);
|
|
|
|
|
assert(values[3] == 4);
|
|
|
|
|
assert(values[4] == 5);
|
|
|
|
|
|
|
|
|
|
count = parse_integers("1234:5678", ':', 1, values);
|
|
|
|
|
assert(count == 0); // max_items == 1
|
|
|
|
|
|
|
|
|
|
count = parse_integers("1:2:3:4:5", ':', 3, values);
|
|
|
|
|
assert(count == 0); // max_items == 3
|
|
|
|
|
|
|
|
|
|
count = parse_integers(":1234", ':', 5, values);
|
|
|
|
|
assert(count == 0); // invalid
|
|
|
|
|
|
|
|
|
|
count = parse_integers("1234:", ':', 5, values);
|
|
|
|
|
assert(count == 0); // invalid
|
|
|
|
|
|
|
|
|
|
count = parse_integers("1234:", ':', 1, values);
|
|
|
|
|
assert(count == 0); // invalid, even when max_items == 1
|
|
|
|
|
|
|
|
|
|
count = parse_integers("1234::5678", ':', 5, values);
|
|
|
|
|
assert(count == 0); // invalid
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void test_parse_integer_with_suffix(void) {
|
|
|
|
|
long value;
|
|
|
|
|
bool ok = parse_integer_with_suffix("1234", &value);
|
|
|
|
@ -249,6 +298,7 @@ int main(void) {
|
|
|
|
|
test_strquote();
|
|
|
|
|
test_utf8_truncate();
|
|
|
|
|
test_parse_integer();
|
|
|
|
|
test_parse_integers();
|
|
|
|
|
test_parse_integer_with_suffix();
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|