sh-quote tests: Make tests stricter.
authorBruno Haible <bruno@clisp.org>
Wed, 9 May 2012 01:23:29 +0000 (03:23 +0200)
committerBruno Haible <bruno@clisp.org>
Wed, 9 May 2012 01:23:29 +0000 (03:23 +0200)
* tests/test-sh-quote.c (check_one): Check the return value of
shell_quote_copy.
(main): Check a string with a CR character. Check a string that
contains UCHAR_MAX.

ChangeLog
tests/test-sh-quote.c

index 1e5871d..3e8ded4 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2012-05-08  Bruno Haible  <bruno@clisp.org>
+
+       sh-quote tests: Make tests stricter.
+       * tests/test-sh-quote.c (check_one): Check the return value of
+       shell_quote_copy.
+       (main): Check a string with a CR character. Check a string that
+       contains UCHAR_MAX.
+
 2012-05-08  Akim Demaille  <akim@lrde.epita.fr>
 
        warnings.m4: provide a means to specify the program to compile.
index 8ca1541..2b4657c 100644 (file)
@@ -43,6 +43,7 @@ check_one (const char *input, const char *expected)
   memset (buf, '\0', output_len + 1);
   buf[output_len + 1] = '%';
   bufend = shell_quote_copy (buf, input);
+  ASSERT (bufend == buf + output_len);
   ASSERT (memcmp (buf, output, output_len + 1) == 0);
   ASSERT (buf[output_len + 1] == '%');
 
@@ -68,6 +69,7 @@ main (void)
     /* Whitespace would be interpreted as argument separator by the shell.  */
     check_one ("foo\tbar", "'foo\tbar'");
     check_one ("foo\nbar", "'foo\nbar'");
+    check_one ("foo\rbar", "'foo\rbar'");
     check_one ("foo bar", "'foo bar'");
 
     /* '!' at the beginning of argv[0] would introduce a negated command.  */
@@ -154,7 +156,7 @@ main (void)
     check_one ("foo'bar\"baz", "'foo'\\''bar\"baz'"); /* or "\"foo'bar\\\"baz\"" */
 
     /* All other characters don't need quoting.  */
-    for (c = 1; c < UCHAR_MAX; c++)
+    for (c = 1; c <= UCHAR_MAX; c++)
       if (strchr ("\t\n\r !\"#$&'()*;<=>?^[\\]`{|}~", c) == NULL)
         {
           char s[5];