Hi Leo,

Thank you for the report.  I do my development on openSuSE 11.4, not having
upgraded yet.  I'll upgrade in a week or two.  Meanwhile,

On Wed, Nov 23, 2011 at 2:08 PM, Leo Davis <lda...@speechfxinc.com> wrote:
> Hello,
>
> I'm getting a failure on string.test with autogen-5.13.0pre4, autogen-5.12,
> and autogen-5.11.9 on openSUSE 12.1 x86_64.  I'm using the source RPM files
> to build the released versions, BTW.  I've attached the entire contents of
> the FAILURES directory for autogen-5.13.0pre4.

I dug into this.  It seems your version of Guile presumes that it is okay to
silently remove the high-order bit from a string of characters because
everybody knows that valid characters are in the range of 0x0a through 0x7E.
Guile is being "helpful".  When I started there was no notion of an
array of bytes,
now I must change all my string references to the array-of-bytes interfaces.

*sigh*.

Please apply the following patch to the agen5/test/string.test script.
If this also fails, then replace the "177" with "176" (the '~' character).
That *must* work.

Your result means that it is no longer possible to reliably generate arbitrary
arrays of bytes with autogen.  Not until I figure out how to use the Guile
array-of-bytes stuff anyway....

Regards, Bruce



diff --git a/agen5/test/string.test b/agen5/test/string.test
index 0439e6c..438dbd3 100755
--- a/agen5/test/string.test
+++ b/agen5/test/string.test
@@ -82,7 +82,8 @@ CASE (suffix)  =][=
 =]
 _EOF_

-test -z "$LINENO" && LINENO=85
+test -z "$LINENO" && LINENO=`
+    grep -n FIND-THIS-LINE-NUMBER $0 | sed 's/:.*//'` # close enough
 printf '\nchar zTestFile[] = "%s";\n#line %s\n' \
     ${testname}.raw `expr $LINENO + 4` >&4

@@ -94,13 +95,14 @@ char zExpect[] = "'\f\r\b\v\t\a\n\n"
        "\"Wow!\"  This'll be \\hard\\'\n"
        "#endif /* .\n"
        "and it'll be a \"hassle\"."
-       "\001\002\003\377\n'";
+       "\001\002\003\177\n'";
 #define expectSize ((int)(sizeof(zExpect) - 1))
 int checkStr( char* pz, char const* pzWhat );
 int checkStr( char* pz, char const* pzWhat )
 {
     static char const zNotMatch[] =
         "%s generated string mismatches at offset %d of %d\n"
+        "Expected char: 0x%02X  saw char: 0x%02X\n"
         "Expected string:\n==>%s<==\n\n"
         "Generated string:\n-->%s<--\n\n";

@@ -116,8 +118,8 @@ int checkStr( char* pz, char const* pzWhat )

     for (ix = 0; ix < expectSize; ix++) {
         if (*(pzE++) != *(pzR++)) {
-            fprintf( stderr, zNotMatch, pzWhat, ix, expectSize,
-                     zExpect, pz );
+            fprintf(stderr, zNotMatch, pzWhat, ix, expectSize,
+                    (unsigned char)pzE[-1], (unsigned char)pzR[-1],
zExpect, pz);
             return 1;
         }
     }
@@ -217,7 +219,7 @@ string =
 \#endif /* .
 '
     "and it'll be a \"hassle\"."
-    "\001\x02\X03\377\n'";
+    "\001\x02\X03\177\n'";

 _EOF_

------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure 
contains a definitive record of customers, application performance, 
security threats, fraudulent activity, and more. Splunk takes this 
data and makes sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-novd2d
_______________________________________________
Autogen-users mailing list
Autogen-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/autogen-users

Reply via email to