From: Techentin, R. W. <tec...@ma...> - 2005-10-07 16:03:44
|
> Please give them a whirl. I downloaded the preview, unpacked, configured, and ran "make test." Everything passes on Fedora Core 3, ActiveTcl 8.4.6. But I got failures doing the same thing on HP-UX, WinXP/MingW/Msys, and Red Hat Enterprise Linux (RHEL) 3. I've gotten to the point of expecting something strange from HP-UX, but several of the errors are common. ActiveTcl 8.4.6 was installed everywhere. Just a nit, but wouldn't it be nice if a "clean" test results log file was less than 500 lines long? I personally like the "no news is good news" style, where passing tests print nothing. If the official Tcllib "style" prints name and version for each module, then I guess that is OK. But many tests just print stuff. Does that bother anybody other than me? Many RHEL errors stemmed from the fact that 'configure' picked up /usr/bin/tclsh8.3 in preference to /usr/bin/tclsh, which is linked to ActiveTcl 8.4.6. This same behavior occurs on Fedora, but it gets tclsh8.4 there. Is the configure supposed to prefer a numbered tclsh, if available? Modules with "Error: No test files remain after applying your match and skip patterns!" were ftp, ftpd, grammer_peg, http, irc, javascript, jpeg, ldap, nntp, page, pluginmgr, smtpd, tar. So I'm not testing these on unix, but they appeared to run tests on WinXP. Is anybody testing these on Unix? Many aes and blowfish tests failed with "integer value too large to represent" on HP-UX and "integer value too large to represent as non-long integer" on RHEL with tclsh8.3. For example, I include just one test, but there were 27 others. The fileutil install errors occurred only on WinXP. A couple of fumagic tests actually succeed on HP-UX where they are expected to fail. The same tests failed in a different way on WinXP. I have always had a couple of discrepancies with the Tcl test suite when it came to directory/file tests. Might be related to our network file server. Perhaps this isn't a serious problem. And I'm not sure how to interpret the logger/appender failures on both HP-UX, and WinXP. Perhaps someone else could shed some light on those. Same thing for ripemd on all of HP-UX, RHEL and WinXP. I don't know what that package is supposed to do. I modified pop3-3.5 to capture the error string, and it returns "POP3 TOP ERROR:" without additional information, but I don't know how to debug that. Uri has a couple of canonicalization failures on WinXP that I didn't see elsewhere. They all fail the same way, with an extra ":", so I appended only the first failure. If anybody has any suggestions, I'd be happy to run tests on an HP box. Bob -- Bob Techentin tec...@ma... Mayo Foundation (507) 538-5495 200 First St. SW FAX (507) 284-9171 Rochester MN, 55901 USA http://www.mayo.edu/sppdg/ ==== aes-fips-C.1e Test vector for AES-128 from FIPS-197 Appendix C.1 FAILED ==== Contents of test case: list [catch { set txt [binary format H* 00112233445566778899aabbccddeeff] set key [binary format H* 000102030405060708090a0b0c0d0e0f] set enc [aes::aes -mode ecb -dir enc -key $key $txt] binary scan $enc H* r set r } msg] $msg ---- Result was: 1 {integer value too large to represent} ---- Result should have been (exact matching): 0 69c4e0d86a7b0430d8cdb78070b4c55a ==== aes-fips-C.1e FAILED ==== install-2.1 install a directory FAILED ==== Contents of test case: fileutil::install [file join installSrc subdir] installDst set result [lsort [glob -tails -directory [file join installDst subdir] [file join . / *]]] file delete -force installDst set result ---- Test generated error; Return code was: 1 ---- Return code should have been one of: 0 2 ---- errorInfo: no files matched glob pattern "/*" while executing "glob -tails -directory [file join installDst subdir] [file join . / *]" invoked from within "lsort [glob -tails -directory [file join installDst subdir] [file join . / *]]" invoked from within "set result [lsort [glob -tails -directory [file join installDst subdir] [file join . / *]]]" ("uplevel" body line 3) invoked from within "uplevel 1 $script" ---- errorCode: NONE ==== install-2.1 FAILED ==== install-2.2 install a directory FAILED ==== Contents of test case: fileutil::install [file join installSrc subdir] installDst set result [lsort [glob -directory [file join installDst subdir] [file join . / *]]] file delete -force installDst set result ---- Test generated error; Return code was: 1 ---- Return code should have been one of: 0 2 ---- errorInfo: error copying "installSrc/subdir" to "installDst/subdir": file already exists while executing "file copy -force $src $dst" (procedure "fileutil::install" line 13) invoked from within "fileutil::install [file join installSrc subdir] installDst" ("uplevel" body line 2) invoked from within "uplevel 1 $script" ---- errorCode: POSIX EEXIST {file already exists} ==== install-2.2 FAILED ==== fumagic.filetype-1.2 test file directory FAILED ==== Contents of test case: set f [file join $dir fileTypeTest] set res [catch {fileutil::magic::filetype $f} msg] regsub {file[0-9]+} $msg {fileXXX} msg list $res $msg ---- Result was: 0 {DBase 3 index file} ---- Result should have been (exact matching): 1 {error reading "fileXXX": illegal operation on a directory} ==== fumagic.filetype-1.2 FAILED ==== fumagic.mimetype-1.2 test file directory FAILED ==== Contents of test case: set f [file join $dir fileTypeTest] set res [catch {fileutil::magic::mimetype $f} msg] regsub {file[0-9]+} $msg {fileXXX} msg list $res $msg ---- Result was: 0 {} ---- Result should have been (exact matching): 1 {error reading "fileXXX": illegal operation on a directory} ==== fumagic.mimetype-1.2 FAILED -- and on WinXP with MingW/Msys, we get a different failure -- ==== fumagic.filetype-1.2 test file directory FAILED ==== Contents of test case: set f [file join $dir fileTypeTest] set res [catch {fileutil::magic::filetype $f} msg] regsub {file[0-9]+} $msg {fileXXX} msg list $res $msg ---- Result was: 1 {couldn't open "C:/Temp/tcllib-1.8/fileTypeTest": permission denied} ---- Result should have been (exact matching): 1 {error reading "fileXXX": illegal operation on a directory} ==== fumagic.filetype-1.2 FAILED modules/fumagic/mimetypes.test - tcltest 2.2.5 - fileutil::magic::mimetype 1.0 - fileutil::magic::rt 1.0 ==== fumagic.mimetype-1.2 test file directory FAILED ==== Contents of test case: set f [file join $dir fileTypeTest] set res [catch {fileutil::magic::mimetype $f} msg] regsub {file[0-9]+} $msg {fileXXX} msg list $res $msg ---- Result was: 1 {couldn't open "C:/Temp/tcllib-1.8/fileTypeTest": permission denied} ---- Result should have been (exact matching): 1 {error reading "fileXXX": illegal operation on a directory} ==== fumagic.mimetype-1.2 FAILED ==== fumagic.mimetype-1.13 test binary graphic gif FAILED ==== Contents of test case: set f [file join $dir fileTypeTest gifFile] set res [catch {fileutil::magic::mimetype $f} msg] list $res $msg ---- Result was: 1 {file not found: "C:/Temp/tcllib-1.8/fileTypeTest/gifFile"} ---- Result should have been (exact matching): 0 image/gif ==== fumagic.mimetype-1.13 FAILED ==== createFormatCmd-1 check for %d FAILED ==== Contents of test case: set a [logger::utils::createFormatCmd %d] set b [subst $a] regexp {\d\d\d\d/\d\d/\d\d \d\d:\d\d:\d\d} $b ---- Result was: 0 ---- Result should have been (exact matching): 1 ==== createFormatCmd-1 FAILED ==== createLogProc-1 create a proc and test it FAILED ==== Contents of test case: set a [logger::utils::createLogProc -category catTest -priority critical -procName ::bobo -conversionPattern {\[%d\] \[%c\] \[%M\] \[%p\] %m}] eval $a ::bobo test ---- Output was: [G/10/07 07:40:13] [catTest] [namespace] [critical] test ---- Output should have been (regexp matching): \[[\d:\/ ]+\] \[catTest\] \[namespace\] \[critical\] test ==== createLogProc-1 FAILED ==== applyAppender-1 apply an appender FAILED ==== Contents of test case: set log [logger::init testLog] logger::utils::applyAppender -appender console -serviceCmd $log ${log}::error "this is error" ---- Output was: [G/10/07 07:40:13] [testLog] [namespace] [error] this is error ---- Output should have been (regexp matching): \[[\d:\/ ]+\] \[testLog\] \[namespace\] \[error\] this is error ==== applyAppender-1 FAILED ==== applyAppender-2 apply an appender, to 2 loggers FAILED ==== Contents of test case: set log1 [logger::init testLog1] set log2 [logger::init testLog2] logger::utils::applyAppender -appender console -serviceCmd [list $log1 $log2] ${log1}::error "this is error1" ${log2}::error "this is error2" ---- Output was: [G/10/07 07:40:13] [testLog1] [namespace] [error] this is error1 [G/10/07 07:40:13] [testLog2] [namespace] [error] this is error2 ---- Output should have been (regexp matching): \[[\d:\/ ]+\] \[testLog1\] \[namespace\] \[error\] this is error1\n\[[\d:\/ ]+\] \[testLog2\] \[namespace\] \[error\] this is error2 ==== applyAppender-2 FAILED ==== applyAppender-3 auto apply FAILED ==== Contents of test case: logger::utils::applyAppender -appender console set log [logger::init applyAppender-3] ${log}::error "this is error" ---- Output was: [G/10/07 07:40:13] [applyAppender-3] [namespace] [error] this is error ---- Output should have been (regexp matching): \[[\d:\/ ]+\] \[applyAppender-3\] \[namespace\] \[error\] this is error ==== applyAppender-3 FAILED ==== applyAppender-4 auto apply FAILED ==== Contents of test case: logger::utils::applyAppender -appender colorConsole set log [logger::init applyAppender-4] ${log}::error "this is error" ---- Output was: [31m[G/10/07 07:40:13] [applyAppender-4] [namespace] [error] this is error[0m ---- Output should have been (regexp matching): \[[\d:\/ ]+\] \[applyAppender-4\] \[namespace\] \[error\] this is error ==== applyAppender-4 FAILED ==== pop3-3.5 top FAILED ==== Contents of test case: dialog::dialog_set {topMessage $__messageA} set psock [pop3::open localhost ak smash [dialog::listener]] set res [pop3::top $psock 1 1] pop3::close $psock dialog::waitdone set res ---- Test generated error; Return code was: 1 ---- Return code should have been one of: 0 2 ---- errorInfo: POP3 TOP ERROR: while executing "error "POP3 TOP ERROR: $errorStr"" (procedure "pop3::top" line 5) invoked from within "pop3::top $psock 1 1" invoked from within "set res [pop3::top $psock 1 1]" ("uplevel" body line 4) invoked from within "uplevel 1 $script" ---- errorCode: NONE ==== pop3-3.5 FAILED ==== ripemd128-trf-1.20 RIPEMD-128 test strings (trf impl) FAILED ==== Contents of test case: ::ripemd::ripemd128 -hex -- $msg ---- Result was: d12cd5e9e6222c9acfb7e6f55d237b5f ---- Result should have been (exact matching): 4eb9e2f034b961f464647021b99291ef ==== ripemd128-trf-1.20 FAILED ==== ripemd128-trf-2.1 HMAC RIPEMD-128 test vectors (trf impl) FAILED ==== Contents of test case: ::ripemd::hmac128 -hex -key $key -- $msg ---- Result was: 25359443edb0c092eb54a15ccb954146 ---- Result should have been (exact matching): ad9db2c1e22af9ab5ca9dbe5a86f67dc ==== ripemd128-trf-2.1 FAILED ==== ripemd128-trf-3.1 HMAC RIPEMD-128 test vectors (trf) FAILED ==== Contents of test case: ::ripemd::hmac128 -hex -key $key -- $msg ---- Result was: 948ec12cbc6ae1c35b972b690f084598 ---- Result should have been (exact matching): 8931eeee56a6b257fd1ab5418183d826 ==== ripemd128-trf-3.1 FAILED modules/ripemd/ripemd160.test - ripemd160 1.0.3 (Trf based) - ripemd160 1.0.3 (pure Tcl) ==== ripemd160-trf-1.20 RIPEMD-160 test strings (trf impl) FAILED ==== Contents of test case: list [catch {::ripemd::ripemd160 -hex -- $msg} r] $r ---- Result was: 0 d50ec733b28b84b96a7a625140a1e1c83b6825a1 ---- Result should have been (exact matching): 0 5cc1e0793bad0c5208f3903a8230a712887fcabd ==== ripemd160-trf-1.20 FAILED ==== ripemd160-trf-2.1 HMAC RIPEMD-160 test vectors (trf) FAILED ==== Contents of test case: ::ripemd::hmac160 -hex -key $key -- $msg ---- Result was: ac0bf50168c60b84bb492d18c10edba08b46f152 ---- Result should have been (exact matching): cf387677bfda8483e63b57e06c3b5ecd8b7fc055 ==== ripemd160-trf-2.1 FAILED ==== ripemd160-trf-3.1 HMAC RIPEMD-160 test vectors (trf) FAILED ==== Contents of test case: list [catch {::ripemd::hmac160 -hex -key $key $msg} r] $r ---- Result was: 0 a4eb34bf539c7f33ece5684febb214b2d126013f ---- Result should have been (exact matching): 0 fe69a66c7423eea9c8fa2eff8d9dafb4f17a62f5 ==== ripemd160-trf-3.1 FAILED Module: sasl modules/sasl/ntlm.test - SASL::NTLM 1.0.0 ==== SASL-NTLM-1.1 NTLM client response FAILED ==== Contents of test case: list [catch { set ctx [SASL::new -mechanism NTLM -callback NTLMCallback] SASL::step $ctx "" SASL::step $ctx [base64::decode $Chk(2)] set response [SASL::response $ctx] SASL::cleanup $ctx base64::encode -maxlen 0 $response } res] $res ---- Result was: 0 TlRMTVNTUAADAAAAGAAYAGoAAAAYABgAggAAAAwADABAAAAACAAIAEwAAAAWABYAVAAAAJoAAAAB AgAAAAAAAABEAE8ATQBBAEkATgB1AHMAZQByAFcATwBSAEsAUwBUAEEAVABJAE8ATsM3zVy9RPyX gqZnr21CfG3mfCDC0+d8VoLTftHx9ZaM2NlnEeJBCjvPm4ryx3aR4A== ---- Result should have been (exact matching): 0 TlRMTVNTUAADAAAAGAAYAGoAAAAYABgAggAAAAwADABAAAAACAAIAEwAAAAWABYAVAAAAJoAAAAB AgAAAAAAAEQATwBNAEEASQBOAHUAcwBlAHIAVwBPAFIASwBTAFQAQQBUAEkATwBOAMM3zVy9RPyX gqZnr21CfG3mfCDC0+d8ViWpjBwx6BhHRmspst9GgPOZWPuMITqcxg== ==== SASL-NTLM-1.1 FAILED ==== uri-5.1-2 uri::canonicalize FAILED ==== Contents of test case: uri::canonicalize file://goo.test.net/path1/./remove/../path2/resource ---- Result was: file://goo.test.net:/path1/path2/resource ---- Result should have been (exact matching): file://goo.test.net/path1/path2/resource ==== uri-5.1-2 FAILED |
From: Techentin, R. W. <tec...@ma...> - 2005-10-07 18:35:43
|
Thanks for the analysis, Andreas. > > I downloaded the preview, unpacked, configured, and ran "make > > test." Everything passes on Fedora Core 3, ActiveTcl 8.4.6. But > > I got failures doing the same thing on HP-UX, WinXP/MingW/Msys, > > and Red Hat Enterprise Linux (RHEL) 3. > > I wish that you had done that when I posted the 'testenv', it > is for easy testing of a Tcllib checkout using Tcl 8.2 to > 8.5. Ok, water under bridge ... My bad. I was really concerned with the bugs that appeared with the units package and Tcl 8.5. I spent a lot of time trying to build Tcl HEAD, and not much focusing on Tcllib. :-( > > ActiveTcl 8.4.6 was > > installed everywhere. > > What is the situation if you are using ActiveTcl 8.4.11 ? I don't know. Its getting about time to upgrade. But the Sysadmins have to be fed. :-) > How about filing bugs against the modules and packages which > are in your opinion to chatty in the test output ? OK. I will do so. I see unnecessary log messages from calendar, comm, counter, docstrip, grammar_fa, htmlparse, log, math, ncgi, png, pop3, pop3d, struct, and tie. > Do we have commands in tcltest for our own log > output, which can then be controlled through its -verbose option ? No, not really. Tcltest's -verbose option controls when the test suite prints messages. The default is to print the body when a test fails, and error information if there is an uncaught error. You could also ask for a message when tests are passed or skipped. But there isn't an associated general logging facility. > > Modules with "Error: No test files remain ... > > This is the message generated by tcltest when there are > either no .test files or they are empty, i.e. when there is > no testsuite. > > > So I'm not testing these on unix, but they appeared to run tests > > on WinXP. > > How did you come to the conclusion that they have tests on WinXP ? I didn't get "Error: No test files remain..." My misinterpretation. > > Many aes and blowfish tests failed with "integer value too large > > to represent" on HP-UX and "integer value too large to represent > > as non-long integer" on RHEL with tclsh8.3. For example, I > > include just one test, but there were 27 others. > > This could be a problem with Tcl 8.3. Do the same error occur > with Tcl 8.4 ? Is your machine 64 bit ? These fail on HP-UX with ActiveTcl 8.4.6, and also on RHEL with its stock tclsh8.3. So it doesn't work on HP-UX. Might be something to do with wide ints. Perhaps we need to ugrade. :-) Bob -- Bob Techentin tec...@ma... Mayo Foundation (507) 538-5495 200 First St. SW FAX (507) 284-9171 Rochester MN, 55901 USA http://www.mayo.edu/sppdg/ |
From: Andreas K. <and...@Ac...> - 2005-10-07 19:09:19
|
> > Thanks for the analysis, Andreas. > > > > I downloaded the preview, unpacked, configured, and ran "make > > > test." Everything passes on Fedora Core 3, ActiveTcl 8.4.6. But > > > I got failures doing the same thing on HP-UX, WinXP/MingW/Msys, > > > and Red Hat Enterprise Linux (RHEL) 3. > > > > I wish that you had done that when I posted the 'testenv', it > > is for easy testing of a Tcllib checkout using Tcl 8.2 to > > 8.5. Ok, water under bridge ... > > My bad. I was really concerned with the bugs that appeared with the units > package and Tcl 8.5. I spent a lot of time trying to build Tcl HEAD, and > not much focusing on Tcllib. :-( Can happen. > > > ActiveTcl 8.4.6 was > > > installed everywhere. > > > > What is the situation if you are using ActiveTcl 8.4.11 ? > > I don't know. Its getting about time to upgrade. But the > Sysadmins have to be fed. :-) > > > > How about filing bugs against the modules and packages which > > are in your opinion to chatty in the test output ? > > OK. I will do so. I see unnecessary log messages from calendar, comm, > counter, docstrip, grammar_fa, htmlparse, log, math, ncgi, png, > pop3, pop3d, > struct, and tie. Ok. And I see the notifications coming. > > Do we have commands in tcltest for our own log > > output, which can then be controlled through its -verbose option ? > > No, not really. Tcltest's -verbose option controls when the test suite > prints messages. The default is to print the body when a test fails, and > error information if there is an uncaught error. You could also ask for a > message when tests are passed or skipped. But there isn't an associated > general logging facility. Yes, I had hoped that we had tcltest::log commands or some such we could use instead of 'puts'. > > > Modules with "Error: No test files remain ... > > > > This is the message generated by tcltest when there are > > either no .test files or they are empty, i.e. when there is > > no testsuite. > > > > > So I'm not testing these on unix, but they appeared to run tests > > > on WinXP. > > > > How did you come to the conclusion that they have tests on WinXP ? > > I didn't get "Error: No test files remain..." My misinterpretation. Ah. Likely Windows redirected them (the std channels) into /dev/null or something like that. > > > Many aes and blowfish tests failed with "integer value too large > > > to represent" on HP-UX and "integer value too large to represent > > > as non-long integer" on RHEL with tclsh8.3. For example, I > > > include just one test, but there were 27 others. > > > > This could be a problem with Tcl 8.3. Do the same error occur > > with Tcl 8.4 ? Is your machine 64 bit ? > > These fail on HP-UX with ActiveTcl 8.4.6, and also on RHEL with its stock > tclsh8.3. So it doesn't work on HP-UX. Might be something to do > with wide > ints. Perhaps we need to ugrade. :-) Taked with Pat/Dgp on the chat about this: 11:46] patthoyts I see HPUX blowfish and aes problems mentioned by Bob Techentin on tcllib-devel [11:49] patthoyts Hmm. I should try a sparc 64bit build. [11:51] aku Yep. Note that he used Tcl 8.3 [11:52] aku I know that this is spotty on a 64bit system [11:52] aku I believe Tcl 8.3 was only halfway there with regard to wide integers. [11:52] dgp wide integers arrived in 8.4 [11:53] patthoyts My 64bit sparc build handles the aes and blowfish tests ok. [11:53] dgp the 32- and 64-bit inconsistencies were probably different in 8.3 days though. [11:53] aku dgp - something like that [11:53] dgp Reasonable position to me: anyone using a 64-bit platform needs at least Tcl 8.4. [11:54] dgp Tcl just wasn't tested well enough on such systems before that. [11:54] aku That is why I usually ignore such failures for 8.3. 8.4 is definitely better in that regard. And 8.5 should be really good Notes: I accepted Pat's sasl/mime changes after chatting with him. I will now do a bit of bug-hunting in struct::tree again. Independent of that I will regenerate the archives and put a -2 pre-release out. After I have concluded any bug-hunting. -- Andreas Kupries <and...@Ac...> Developer @ http://www.ActiveState.com, a division of Sophos Tel: +1 604 484 6491 |
From: Techentin, R. W. <tec...@ma...> - 2005-10-07 20:52:29
|
> 11:46] patthoyts I see HPUX blowfish and aes > problems mentioned by Bob Techentin on tcllib-devel > [11:49] patthoyts Hmm. I should try a sparc 64bit build. > [11:51] aku Yep. Note that he used Tcl 8.3 No No No. I got the aes/blowfish errors on HP-UX 11.0 with ActiveTcl 8.4.6. (the Tcl 8.3 business was on Red Hat on X86_64) Bob -- Bob Techentin tec...@ma... Mayo Foundation (507) 538-5495 200 First St. SW FAX (507) 284-9171 Rochester MN, 55901 USA http://www.mayo.edu/sppdg/ |
From: Aamer A. <aa...@gm...> - 2005-10-08 07:09:29
|
Robert, inline: On 10/7/05, Techentin, Robert W. <tec...@ma...> wrote: > > > Please give them a whirl. > > =3D=3D=3D=3D createLogProc-1 create a proc and test it FAILED > =3D=3D=3D=3D Contents of test case: > > set a [logger::utils::createLogProc -category catTest -priority > critical -procName ::bobo -conversionPattern {\[%d\] \[%c\] \[%M\] \[%p\] > %m}] > eval $a > ::bobo test > > ---- Output was: > [G/10/07 07:40:13] [catTest] [namespace] [critical] test > > ---- Output should have been (regexp matching): > \[[\d:\/ ]+\] \[catTest\] \[namespace\] \[critical\] test > =3D=3D=3D=3D createLogProc-1 FAILED > This seems to be stemming from this line: {[*clock* *format* [*clock* seconds] -*format* {%G/%m/%d %H:%M:%S}]} For some reason %G is not being translated into four digit year. I check th= e 8.4 manaul and it does seem to be there... if this is being caused by running under 8.3, perhaps %Y instead of %G would be better. -- Aamer Akhter / aa...@gm... |