summaryrefslogtreecommitdiff
path: root/src/test/test-parse-util.c
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2023-02-08 10:54:49 +0100
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2023-02-08 12:01:16 +0100
commit8eb491f4993c6080e9724c0359a87c64c460605e (patch)
treeebb0d7984c32e4c06aa8724760d9e24fb0f54bac /src/test/test-parse-util.c
parent502096b56593919fc947415f6e32bcb680728dac (diff)
downloadsystemd-8eb491f4993c6080e9724c0359a87c64c460605e.tar.gz
test-parse-util: add tests with explicit plus character
I expected this to work, but our tests did not cover this explicitly.
Diffstat (limited to 'src/test/test-parse-util.c')
-rw-r--r--src/test/test-parse-util.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/test/test-parse-util.c b/src/test/test-parse-util.c
index 388d0fe3f7..c83e8fc630 100644
--- a/src/test/test-parse-util.c
+++ b/src/test/test-parse-util.c
@@ -480,6 +480,14 @@ TEST(safe_atou16) {
assert_se(r == 0);
assert_se(l == 12345);
+ r = safe_atou16("+12345", &l);
+ assert_se(r == 0);
+ assert_se(l == 12345);
+
+ r = safe_atou16(" +12345", &l);
+ assert_se(r == 0);
+ assert_se(l == 12345);
+
r = safe_atou16("123456", &l);
assert_se(r == -ERANGE);
@@ -514,6 +522,14 @@ TEST(safe_atoi16) {
assert_se(r == 0);
assert_se(l == -12345);
+ r = safe_atoi16("+12345", &l);
+ assert_se(r == 0);
+ assert_se(l == 12345);
+
+ r = safe_atoi16(" +12345", &l);
+ assert_se(r == 0);
+ assert_se(l == 12345);
+
r = safe_atoi16("32767", &l);
assert_se(r == 0);
assert_se(l == 32767);
@@ -703,6 +719,22 @@ TEST(safe_atoux64) {
assert_se(r == 0);
assert_se(l == 11603985);
+ r = safe_atoux64("+12345", &l);
+ assert_se(r == 0);
+ assert_se(l == 0x12345);
+
+ r = safe_atoux64(" +12345", &l);
+ assert_se(r == 0);
+ assert_se(l == 0x12345);
+
+ r = safe_atoux64("+0x12345", &l);
+ assert_se(r == 0);
+ assert_se(l == 0x12345);
+
+ r = safe_atoux64("+0b11011", &l);
+ assert_se(r == 0);
+ assert_se(l == 11603985);
+
r = safe_atoux64("0o11011", &l);
assert_se(r == -EINVAL);