]> git.gag.com Git - fw/sdcc/blobdiff - support/regression/tests/bug1057979.c
* support/regression/ports/mcs51-xstack-auto/spec.mk: forgot -I(...)/mcs51
[fw/sdcc] / support / regression / tests / bug1057979.c
index 202149f59acaf42c93d4daf53caf5a25d09a374c..68882498fd037a604ed1fdfaec5fdc74b4001ab6 100644 (file)
@@ -14,8 +14,6 @@ test_sprintf(void)
 {
   s[12] = 0x12;
 
-#if defined(SDCC_mcs51) || defined(SDCC_ds390) || defined(PORT_HOST)
-//This still fails dramatically for hc08 and z80
   sprintf( s, "%d", 99 );
   ASSERT( 0 == strcmp( s, "99" ) );
   sprintf( s, "%d", 100 );
@@ -24,6 +22,35 @@ test_sprintf(void)
   ASSERT( 0 == strcmp( s, "2004" ) );
   sprintf( s, "%ld", 2147483647L );
   ASSERT( 0 == strcmp( s, "2147483647" ) );
+
+  //and from bug 1073386
+  sprintf( s, "%04X", 0x8765u );
+  ASSERT( 0 == strcmp( s, "8765" ) );
+
+  //and from bug 1193299
+  sprintf( s, "%3.3s", "abcd" );
+  LOG((s));
+  ASSERT( 0 == strcmp( s, "abc" ) );
+  sprintf( s, "%-3.3s", "abcd" );
+  ASSERT( 0 == strcmp( s, "abc" ) );
+  sprintf( s, "%3.3s", "ab" );
+  ASSERT( 0 == strcmp( s, " ab" ) );
+  sprintf( s, "%-3.3s", "ab" );
+  ASSERT( 0 == strcmp( s, "ab " ) );
+
+#if defined(SDCC__ds390) || defined(PORT_HOST)
+  //and from bug 1358192
+  sprintf( s, "%f", 10.1 );
+  LOG((s));
+  ASSERT( 0 == strcmp( s, "10.100000" ) );
+
+  //and from bug 1388703
+  sprintf( s, "%4.1f", 1.36 );
+  LOG((s));
+  ASSERT( 0 == strcmp( s, " 1.4" ) );
+  sprintf( s, "%4.1f", -1.37 );
+  LOG((s));
+  ASSERT( 0 == strcmp( s, "-1.4" ) );
 #endif
 
   ASSERT( s[12]==0x12 );