[squeak-dev] TestRunner not assigning strings/remembering old
values of temp vars.
Rob Withers
reefedjib at yahoo.com
Sun Jul 25 07:54:27 UTC 2010
Thanks, that makes sense. Isn't that a bug since Strings are mutable?
--------------------------------------------------
From: "Nicolas Cellier" <nicolas.cellier.aka.nice at gmail.com>
Sent: Sunday, July 25, 2010 3:51 AM
To: "The general-purpose Squeak developers list"
<squeak-dev at lists.squeakfoundation.org>
Subject: Re: [squeak-dev] TestRunner not assigning strings/remembering old
values of temp vars.
> Of course, 'squeaker' is a literal stored in the CompiledMethod.
> If you write over it, then you break the literal for next method
> execution.
>
> Each time you evaluate in a workspace, you create a new CompiledMethod
> and a new literal.
> When you compile in a class, that's different because you compiled
> only once and execute many.
>
> Nicolas
>
> 2010/7/25 Rob Withers <reefedjib at yahoo.com>:
>> I am testing the CryptoDESTest. I am getting some strange behavior.
>> When I
>> run the following code in a Workspace, repeatably, I get the same
>> results:
>>
>> code:
>>
>> | plain key d |
>> plain := 'squeaker'.
>> key := 'hacking!'.
>> Transcript cr; show: 'plain: ', plain printString.
>> d := DES key: key.
>> d encryptBlock: plain.
>> Transcript cr; show: 'plain: ', plain printString.
>> self assert: plain asByteArray = #[64 222 70 13 59 145 76 186].
>> plain destroy.
>>
>> output:
>>
>> plain: 'squeaker'
>> plain: '@ÞF
>> ;‘Lº'
>> plain: 'squeaker'
>> plain: '@ÞF
>> ;‘Lº'
>> plain: 'squeaker'
>> plain: '@ÞF
>> ;‘Lº'
>>
>> However, when I run this as a test method:
>>
>> testDES3
>> | plain key d |
>> plain := 'squeaker'.
>> key := 'hacking!'.
>> Transcript cr; show: 'plain: ', plain printString.
>> d := DES key: key.
>> d encryptBlock: plain.
>> Transcript cr; show: 'plain: ', plain printString.
>> self assert: plain asByteArray = #[64 222 70 13 59 145 76 186].
>> plain destroy.
>>
>> I get the following output and the test fails:
>>
>> plain: 'squeaker'
>> plain: '@ÞF
>> ;‘Lº'
>> plain: ' '
>> plain: '£ƒ¼ïùmÞ$'
>> plain: '£ƒ¼ïùmÞ$'
>> plain: '§,}ºé¨öú'
>> plain: '§,}ºé¨öú'
>> plain: '3qX¦wRË|'
>> plain: '3qX¦wRË|'
>> plain: 'Ê0ê^ó{ì '
>> plain: 'Ê0ê^ó{ì '
>> plain: 'çî³›,ίw'
>>
>> Why is test runner remembering the old value and not setting it with:
>> plain
>> := 'squeaker'.?
>>
>> TIA,
>> Rob
>>
>>
>
More information about the Squeak-dev
mailing list
|