From eb26bf0b874231f7929f58bf3b26858fea769612 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Niels=20M=C3=B6ller?= <nisse@lysator.liu.se>
Date: Fri, 15 Nov 2002 09:12:55 +0100
Subject: [PATCH] (test_main): Check that %i and %b generate leading zeroes
 when needed. Check that %b handles negative numbers.

Rev: src/nettle/testsuite/sexp-format-test.c:1.3
---
 testsuite/sexp-format-test.c | 38 ++++++++++++++++++++----------------
 1 file changed, 21 insertions(+), 17 deletions(-)

diff --git a/testsuite/sexp-format-test.c b/testsuite/sexp-format-test.c
index 65039859..e0715346 100644
--- a/testsuite/sexp-format-test.c
+++ b/testsuite/sexp-format-test.c
@@ -40,14 +40,14 @@ test_main(void)
     ASSERT(MEMEQ(buffer.size, buffer.contents, e));
   }
   {
-    const uint8_t e[] = "1:a2:bc3:def4:ghij";
+    const uint8_t e[] = "1:\0""1:a2:bc3:def4:ghij5:\x00\xDE\xAD\xBE\xEF";
 
     nettle_buffer_init(&buffer);  
-    ASSERT(sexp_format(&buffer, "%i%i%i%i",
-		       0x61, 0x6263, 0x646566, 0x6768696a)
-	   == strlen(e));
+    ASSERT(sexp_format(&buffer, "%i%i%i%i%i%i",
+		       0, 0x61, 0x6263, 0x646566, 0x6768696a, 0xDEADBEEF)
+	   == LLENGTH(e));
     
-    ASSERT(buffer.size == strlen(e));
+    ASSERT(buffer.size == LLENGTH(e));
     ASSERT(MEMEQ(buffer.size, buffer.contents, e));
   }
 
@@ -66,22 +66,28 @@ test_main(void)
 #if HAVE_LIBGMP
   {
     mpz_t x;
-    const uint8_t e[] = "(3:foo(3:bar11:abcdefghijk))";
+    mpz_t y;
+    mpz_t z;
+    
+    const uint8_t e[] =
+      "(3:foo(3:bar1:\xff""11:abcdefghijk13:\0\x81""abcdefghijk))";
 
     nettle_buffer_clear(&buffer);
-    
-    nettle_mpz_init_set_str_256(x, 11, "abcdefghijk");
+
+    mpz_init_set_si(x, -1);
+    nettle_mpz_init_set_str_256_u(y, 11, "abcdefghijk");
+    nettle_mpz_init_set_str_256_u(z, 12, "\x81""abcdefghijk");
     nettle_buffer_init(&buffer);
 
-    ASSERT(sexp_format(&buffer, "(%z(%z%b))",
-		     "foo", "bar", x)
-	   == strlen(e));
+    ASSERT(sexp_format(&buffer, "(%z(%z%b%b%b))",
+		     "foo", "bar", x, y, z)
+	   == LLENGTH(e));
 
-    ASSERT(sexp_format(NULL, "(%z(%z%b))",
-		     "foo", "bar", x)
-	   == strlen(e));
+    ASSERT(sexp_format(NULL, "(%z(%z%b%b%b))",
+		     "foo", "bar", x, y, z)
+	   == LLENGTH(e));
     
-    ASSERT(buffer.size == strlen(e));
+    ASSERT(buffer.size == LLENGTH(e));
     ASSERT(MEMEQ(buffer.size, buffer.contents, e));
 
     nettle_buffer_clear(&buffer);
@@ -91,5 +97,3 @@ test_main(void)
 
   SUCCESS();
 }
-
-  
-- 
GitLab