summaryrefslogtreecommitdiffstats
path: root/usr/klibc/tests/sscanf.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/klibc/tests/sscanf.c')
-rw-r--r--usr/klibc/tests/sscanf.c36
1 files changed, 36 insertions, 0 deletions
diff --git a/usr/klibc/tests/sscanf.c b/usr/klibc/tests/sscanf.c
new file mode 100644
index 0000000..c06aae4
--- /dev/null
+++ b/usr/klibc/tests/sscanf.c
@@ -0,0 +1,36 @@
+#include <stdio.h>
+
+int main()
+{
+ int ret, err = 0, e1, e2;
+ const char a1[] = "3.0", a2[] = "-12,1000";
+
+ /* int tests */
+ ret = sscanf(a1, "%1d", &e1);
+ if (ret != 1) {
+ printf("Error wrong sscanf int return %d.\n", ret);
+ err++;
+ }
+ if (e1 != 3) {
+ printf("Error wrong sscanf int reading %d.\n", e1);
+ err++;
+ }
+ ret = sscanf(a2, "%3d,%4d", &e1, &e2);
+ if (ret != 2) {
+ printf("Error wrong sscanf int return %d.\n", ret);
+ err++;
+ }
+ if (e1 != -12) {
+ printf("Error wrong sscanf int reading %d.\n", e1);
+ err++;
+ }
+ if (e2 != 1000) {
+ printf("Error wrong sscanf int reading %d.\n", e2);
+ err++;
+ }
+ /* XXX: add more int tests */
+
+ if (err)
+ return err;
+ return 0;
+}