From d57675fc67455faf7c68d4003a1ce884779e2c7c Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Mon, 3 Apr 2023 10:17:38 +0200 Subject: Merging upstream version 2.4+really2.3. This reverts commit f42531334c05b7f49ae43c0a27e347a487fb2667. --- unit/test-suffix-si-parse.c | 53 +++++++++++++++++---------------------------- 1 file changed, 20 insertions(+), 33 deletions(-) (limited to 'unit/test-suffix-si-parse.c') diff --git a/unit/test-suffix-si-parse.c b/unit/test-suffix-si-parse.c index bc92455..879518b 100644 --- a/unit/test-suffix-si-parse.c +++ b/unit/test-suffix-si-parse.c @@ -3,8 +3,6 @@ #include #include #include -#include -#include #include "../util/suffix.h" #include "../util/types.h" @@ -13,54 +11,44 @@ static int test_rc; -static void check_num(const char *val, __u64 exp, __u64 num) +static void check_num(const char *val, int lbas, __u64 exp, __u64 num) { if (exp == num) return; - printf("ERROR: printing {%s}, got '%llu', expected '%llu'\n", - val, (unsigned long long)num, (unsigned long long)exp); + printf("ERROR: printing {%s} (lbas %d), got '%llu', expected '%llu'\n", + val, lbas, (unsigned long long)num, (unsigned long long)exp); test_rc = 1; } struct tonum_test { const char *val; - const uint64_t exp; - int ret; + int lbas; + const __u64 exp; }; static struct tonum_test tonum_tests[] = { - { "11995709440", 11995709440, 0 }, - { "1199570940", 1199570940, 0}, - { "234.567M", 234567000, 0 }, - { "1.2k", 1200, 0 }, - { "6.14T", 6140000000000, 0 }, - { "123.4567k", 123456, 0 }, - { "12345.6789101112M", 12345678910, 0}, - { "6.14", 6, 0 }, - { "6.14#", 0, -EINVAL }, - { "2,33", 0, -EINVAL }, - { "3..3", 0, -EINVAL }, - { "123.12MM", 0, -EINVAL }, + { "11995709440", 512, 11995709440 }, + { "1199570940", 512, 1199570940 }, + { "6.14T", 512, 11992187500 }, + { "6.14T", 520, 11807692307 }, + { "6.14T", 4096, 1499023437 }, + { "6.14", 512, 0 }, + { "6.14#", 512, 0 }, }; void tonum_test(struct tonum_test *test) { - char *endptr; - uint64_t num; - int ret; - - ret = suffix_si_parse(test->val, &endptr, &num); - if (ret != test->ret) { - printf("ERROR: converting {%s} failed\n", test->val); - test_rc = 1; - return; - } - if (ret) - return; + __u64 num; + bool suffixed; + + num = suffix_si_parse(test->val, &suffixed); + + if (suffixed) + num /= test->lbas; - check_num(test->val, test->exp, num); + check_num(test->val, test->lbas, test->exp, num); } int main(void) @@ -68,7 +56,6 @@ int main(void) unsigned int i; test_rc = 0; - setlocale(LC_NUMERIC, "C"); for (i = 0; i < ARRAY_SIZE(tonum_tests); i++) tonum_test(&tonum_tests[i]); -- cgit v1.2.3