[klibc] [klibc:master] tests: Fix sscanf integer tests

klibc-bot for maximilian attems max at stro.at
Wed Aug 21 02:54:05 PDT 2013


Commit-ID:  686f1931b7dc102c32b59db638a3082d5c2251e5
Gitweb:     http://git.kernel.org/?p=libs/klibc/klibc.git;a=commit;h=686f1931b7dc102c32b59db638a3082d5c2251e5
Author:     maximilian attems <max at stro.at>
AuthorDate: Mon, 10 Jun 2013 18:15:43 -0400
Committer:  maximilian attems <max at stro.at>
CommitDate: Wed, 21 Aug 2013 11:50:43 +0200

tests: Fix sscanf integer tests

Drop the double tests that klibc doesn't care about
and that where hence failing in the first place.

Check the returned integer values too.

Fixes Bug: https://bugs.gentoo.org/show_bug.cgi?id=464908

Reported-by: Mike Pagano <mpagano at gentoo.org>
Signed-off-by: maximilian attems <max at stro.at>

---
 usr/klibc/tests/sscanf.c | 31 ++++++++++++++-----------------
 1 file changed, 14 insertions(+), 17 deletions(-)

diff --git a/usr/klibc/tests/sscanf.c b/usr/klibc/tests/sscanf.c
index 0102ee3..c06aae4 100644
--- a/usr/klibc/tests/sscanf.c
+++ b/usr/klibc/tests/sscanf.c
@@ -3,35 +3,32 @@
 int main()
 {
 	int ret, err = 0, e1, e2;
-	double d1, d2;
-	const char j1[] = "3.0E+10", j2[] = "12E-01-0.1E-2";
 	const char a1[] = "3.0", a2[] = "-12,1000";
 
-	/* XXX: check sscanf returned values too */
-
-	/* double tests */
-	ret = sscanf(j1, "%11lf", &d1);
-	if (ret != 1) {
-		printf("Error wrong sscanf double return %d.\n", ret);
-		err++;
-	}
-	ret = sscanf(j2, "%11lf%11lf", &d1, &d2);
-	if (ret != 2) {
-		printf("Error wrong sscanf double return %d.\n", ret);
-		err++;
-	}
-
 	/* int tests */
 	ret = sscanf(a1, "%1d", &e1);
 	if (ret != 1) {
 		printf("Error wrong sscanf int return %d.\n", ret);
 		err++;
 	}
-	ret = sscanf(a2, "%1d%2d", &e1, &e2);
+	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;


More information about the klibc mailing list