Hi Florian, I had some time to explore this on my Linux machine. Although I was not able to reproduce the empty file problem, running the test cases through did snag very strangely the first couple of times; in different places!
In both cases, the whatever failure occurred was immediately invisible. For example, the first case was in MagmaCollectionTester>>#verifyOrder:against:. In there we have:
self assert: aMagmaCollectionReader size = aSortedCollection size.
which failed but when I immediately printed the sizes, they matched! I restarted that method, proceed the debugger and the tests finished through to completion.
Not satisfied, I ran them again. This time it failed in a similar way; the debugger appeared during a restore test because MaRecoveryRecord>>#hasValidCheckSum answered false. Upon immediately comparing "self calculatedCheckSum = self checkSum" they were equal! So I once again proceeded the test and they all ran through to completion.
In each case there was just the one failure and, in each case, my common "hunch" was something like: "Maybe with Linux a separate readStream (different file-handle) only gets the physical (unflushed) contents of the file. This reminded me that #flushAggressively is set to false by default. It really should be true but I was always afraid of poor performance.
Well, it doesn't hurt performance that much, taking my peak commit rate on that (slow) laptop from 19.9 per second to 19.8 per second. And, alas, by defaulting it to true all the test cases ran through, start to finish, without a single interruption on Linux.
So I've posted this update as r40gamma6 on Magma Tester. Please give it a try. Also, make sure you have some of those recent fixes from Andreas; the Delay and Semaphore fixes. I don't know whether they make a difference for what you're experiencing, but they could, and I have them and didn't experience what you did.
Thanks, Chris
On 9/10/07, Florian Minjat florian.minjat@emn.fr wrote:
Chris Muller wrote:
Hi Florian, thanks for trying the latest version. I just posted a new version, 1.0r40gamma4 which, along with the suggestions below, should address (hopefully all) of your issues.
- I wanted to run it under linux but it doesn't want to, looking for a
'squeak.exe' intead of 'squeak'.
I changed that to "SmalltalkImage current getSystemAttribute: 0". Does that work for you on your Linux?
No it didn't. I used this in MaNetworkTestCase class>>launchImageNamed: "(Smalltalk classNamed: #OSProcess) command: self executableName, ' ' , (SmalltalkImage current imagePath), FileDirectory slash , imageName"
And in MaNetworkTestCase class>>executableName : "OSProcess programName" It should be platform independent but I can't test under windows until tomorrow.
- I got an error EmptyStream during SecureHashAlgorithm>>hashStream:
with MultiByteFileStream: 'c:\temp\Magma\objects.5.idx' as argument on the _magmaTestServer. The _testConductor image shows 'remote performing captureFileChecksumsWithCopy: with arguments #(false) in server'. The file size is 0 octet so I don't know what the hash is suppose to answer on this one. I modified the MagmaTestCase>>fileChecksums method to put 0 in the answer if the file is empty (file atEnd).
Please expect the tests to run from start to finish without any problems. If they don't, there's a problem and what you are doing is simply trying to hide a problem with the test that shouldn't have occurred in the first place. When you have as many problems as you had getting this far, it's very likely this was caused by a previous problem. You should focus on getting a clean run before trying to "fix" potential non-problems.
Same error on the same empty file. And the test was fine from the start.
Florian _______________________________________________ Magma mailing list Magma@lists.squeakfoundation.org http://lists.squeakfoundation.org/mailman/listinfo/magma