[ovs-dev] [PATCH] tests: Avoid nonportable \x escapes in printf(1) invocation.

Ben Pfaff blp at nicira.com
Wed May 26 16:53:46 UTC 2010


The \x escape is not part of POSIX, but it is a common extension.  The
dash shell's built-in "printf" implementation does not include this
extension, which caused the testsuite to be generated incorrectly if it
is used as the default shell (as it is on newer versions of Debian and
Ubuntu).

This commit fixes the problem by using standard octal escapes instead.

Reported-by: Joan Cirer <joan at ev0.net>
---
 tests/ovsdb-data.at |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/tests/ovsdb-data.at b/tests/ovsdb-data.at
index 4bfd909..af89e7f 100644
--- a/tests/ovsdb-data.at
+++ b/tests/ovsdb-data.at
@@ -160,11 +160,11 @@ dnl <C0> is not allowed anywhere in a UTF-8 string.
 dnl <ED A0 80> is a surrogate and not allowed in UTF-8.
 OVSDB_CHECK_POSITIVE([no invalid UTF-8 sequences in strings],
   [parse-atoms '[["string"]]' \
-     '@<:@"m4_esyscmd([printf "\xc0"])"@:>@' \
-     '@<:@"m4_esyscmd([printf "\xed\xa0\x80"])"@:>@' \
+     '@<:@"m4_esyscmd([printf "\300"])"@:>@' \
+     '@<:@"m4_esyscmd([printf "\355\240\200"])"@:>@' \
 ],
-  [constraint violation: "m4_esyscmd([printf "\xc0"])" is not a valid UTF-8 string: invalid UTF-8 sequence 0xc0
-constraint violation: "m4_esyscmd([printf "\xed\xa0\x80"])" is not a valid UTF-8 string: invalid UTF-8 sequence 0xed 0xa0])
+  [constraint violation: "m4_esyscmd([printf "\300"])" is not a valid UTF-8 string: invalid UTF-8 sequence 0xc0
+constraint violation: "m4_esyscmd([printf "\355\240\200"])" is not a valid UTF-8 string: invalid UTF-8 sequence 0xed 0xa0])
 
 OVSDB_CHECK_NEGATIVE([real not acceptable integer string atom],
   [[parse-atom-strings '["integer"]' '0.5' ]],
-- 
1.7.1





More information about the dev mailing list