From: Jim W. <jw...@dr...> - 2011-02-16 18:59:38
|
I'm seeing two of the dirent tests in sb-posix fail with a SB-INT:C-STRING-DECODING-ERROR on Solaris 10/x86 (32-bit). Neither the tests nor the underlying sb-posix code have changed since 1.0.45, when this worked, and I've tried backing out the few other changes in sb-posix to be sure. Before I dig deeper, did anything change in the handling of C strings since 1.0.45 that I should be aware of? The output for one of the two tests is below -- the other is similar. Thanks, Test SB-POSIX-TESTS::READDIR.1 failed Form: (LET ((SB-POSIX-TESTS::DIR (SB-POSIX:OPENDIR "/"))) (UNWIND-PROTECT (BLOCK SB-POSIX-TESTS::DIR-LOOP (LOOP SB-POSIX-TESTS::FOR SB-POSIX-TESTS::DIRENT = (SB-POSIX:READDIR SB-POSIX-TESTS::DIR) SB-POSIX-TESTS::UNTIL (NULL-ALIEN SB-POSIX-TESTS::DIRENT) WHEN (NOT (STRINGP (SB-POSIX:DIRENT-NAME SB-POSIX-TESTS::DIRENT))) DO (RETURN-FROM SB-POSIX-TESTS::DIR-LOOP NIL) SB-POSIX-TESTS::FINALLY (RETURN T))) (SB-POSIX:CLOSEDIR SB-POSIX-TESTS::DIR))) Expected value: T Actual value: #<SB-INT:C-STRING-DECODING-ERROR {4AA05769}>. Test SB-POSIX-TESTS::READDIR/DIRENT-NAME failed Form: (LET ((SB-POSIX-TESTS::DIR (SB-POSIX:OPENDIR SB-POSIX-TESTS::*CURRENT-DIRECTORY*))) (UNWIND-PROTECT (EQUAL (SORT (LOOP SB-POSIX-TESTS::FOR SB-POSIX-TESTS::ENTRY = (SB-POSIX:READDIR SB-POSIX-TESTS::DIR) SB-POSIX-TESTS::UNTIL (NULL-ALIEN SB-POSIX-TESTS::ENTRY) SB-POSIX-TESTS::COLLECT (SB-POSIX:DIRENT-NAME SB-POSIX-TESTS::ENTRY)) #'STRING<) (SORT (APPEND '("." "..") (MAPCAR (LAMBDA (SB-POSIX-TESTS::P) (LET ((STRING (ENOUGH-NAMESTRING SB-POSIX-TESTS::P SB-POSIX-TESTS::*CURRENT-DIRECTORY*))) (IF (PATHNAME-NAME SB-POSIX-TESTS::P) STRING (SUBSEQ STRING 0 (1- (LENGTH STRING)))))) (DIRECTORY (MAKE-PATHNAME :NAME :WILD :TYPE :WILD :DEFAULTS SB-POSIX-TESTS::*CURRENT-DIRECTORY*)))) #'STRING<)) (SB-POSIX:CLOSEDIR SB-POSIX-TESTS::DIR))) Expected value: T Actual value: #<SB-INT:C-STRING-DECODING-ERROR {4AC61DD1}>. Thanks for any pointers, -- Jim Wise jw...@dr... |