[squeak-dev] The Trunk: SUnit-mt.117.mcz

Chris Muller asqueaker at gmail.com
Fri Sep 6 23:18:53 UTC 2019


Woops, I misread the + Timestamp line, and in context of these new timings,
thought you had added it.  Sorry Marcel.  :)

Even without knowing, you were still kind to offer to begin that clean up.
No expectations, but if you have time next time, thank you.  :)

Best,
  Chris

On Fri, Sep 6, 2019 at 12:53 AM Marcel Taeumel <marcel.taeumel at hpi.de>
wrote:

> Hi Chris,
>
> sure. I didn't touch that part yet, but I can clean that up in SUnit. :-)
> For the measurements, I use plain milliseconds and Duration.
>
> Best,
> Marcel
>
> Am 05.09.2019 22:17:40 schrieb Chris Muller <asqueaker at gmail.com>:
> Hey Marcel, I think we're trying to get to a place where we can deprecate
> TimeStamp.  Would you mind using DateAndTime instead?
>
> Best,
>   Chris
>
> On Wed, Sep 4, 2019 at 10:27 AM <commits at source.squeak.org> wrote:
>
>> Marcel Taeumel uploaded a new version of SUnit to project The Trunk:
>> http://source.squeak.org/trunk/SUnit-mt.117.mcz
>>
>> ==================== Summary ====================
>>
>> Name: SUnit-mt.117
>> Author: mt
>> Time: 4 September 2019, 5:27:53.689072 pm
>> UUID: ca737f98-f12d-48c1-bb86-028b96fe0cf4
>> Ancestors: SUnit-mt.116
>>
>> Measure the time to run a test and store it into the test-case history.
>>
>> =============== Diff against SUnit-mt.116 ===============
>>
>> Item was changed:
>>   ----- Method: TestCase>>run: (in category 'running') -----
>>   run: aResult
>> +       aResult runCaseMeasured: self.
>> -       aResult runCase: self.
>>   !
>>
>> Item was changed:
>>   Object subclass: #TestResult
>> +       instanceVariableNames: 'timeStamp failures errors passed
>> durations'
>> -       instanceVariableNames: 'timeStamp failures errors passed'
>>         classVariableNames: ''
>>         poolDictionaries: ''
>>         category: 'SUnit-Kernel'!
>>
>>   !TestResult commentStamp: '<historical>' prior: 0!
>>   This is a Collecting Parameter for the running of a bunch of tests.
>> TestResult is an interesting object to subclass or substitute. #runCase: is
>> the external protocol you need to reproduce. Kent has seen TestResults that
>> recorded coverage information and that sent email when they were done.!
>>
>> Item was added:
>> + ----- Method: TestResult>>duration (in category 'accessing') -----
>> + duration
>> +
>> +       ^ self durations inject: 0 into: [:sum :each | sum + each]!
>>
>> Item was added:
>> + ----- Method: TestResult>>durations (in category 'accessing') -----
>> + durations
>> +       ^ durations!
>>
>> Item was changed:
>>   ----- Method: TestResult>>initialize (in category 'initialization')
>> -----
>>   initialize
>>         super initialize.
>>         passed := OrderedCollection new.
>>         failures := Set new.
>>         errors := OrderedCollection new.
>> +       timeStamp := TimeStamp now.
>> +       durations := Dictionary new.!
>> -       timeStamp := TimeStamp now!
>>
>> Item was changed:
>>   ----- Method: TestResult>>printOn: (in category 'printing') -----
>>   printOn: aStream
>>         aStream
>>                 nextPutAll: self runCount printString;
>> +               nextPutAll: ' run in ';
>> +               nextPutAll: (Duration milliSeconds: self duration)
>> printString;
>> +               nextPutAll: ', ';
>> -               nextPutAll: ' run, ';
>>                 nextPutAll: self expectedPassCount printString;
>>                 nextPutAll: ' passes, ';
>>                 nextPutAll: self expectedDefectCount printString;
>>                 nextPutAll:' expected failures, ';
>>                 nextPutAll: self unexpectedFailureCount printString;
>>                 nextPutAll: ' failures, ';
>>                 nextPutAll: self unexpectedErrorCount printString;
>>                 nextPutAll:' errors, ';
>>                 nextPutAll: self unexpectedPassCount printString;
>>                 nextPutAll:' unexpected passes'.!
>>
>> Item was added:
>> + ----- Method: TestResult>>runCaseMeasured: (in category 'running') -----
>> + runCaseMeasured: aTestCase
>> +
>> +       self durations
>> +               at: aTestCase
>> +               put: [self runCase: aTestCase] timeToRunWithoutGC.!
>>
>> Item was changed:
>>   ----- Method: TestResult>>selectResultsForTestCase: (in category
>> 'history') -----
>>   selectResultsForTestCase: aTestCaseClass
>> +       | passedSelectors errorsSelectors failuresSelectors
>> testCaseDurations |
>> +
>> -       | passedSelectors errorsSelectors failuresSelectors |
>>         passedSelectors := self passed
>>                                                 select: [:testCase |
>> testCase class == aTestCaseClass ] thenCollect: [:testCase | testCase
>> selector].
>>         errorsSelectors := self errors
>>                                                 select: [:testCase |
>> testCase class == aTestCaseClass ] thenCollect:  [:testCase | testCase
>> selector].
>>         failuresSelectors := self failures
>>                                                 select: [:testCase |
>> testCase class == aTestCaseClass ] thenCollect:  [:testCase | testCase
>> selector].
>> +
>> +       testCaseDurations := Dictionary new.
>> +       self durations keysAndValuesDo: [:testCase :milliseconds |
>> +               testCase class == aTestCaseClass ifTrue:
>> [testCaseDurations at: testCase selector put: milliseconds]].
>> +
>> +       ^ self class newTestDictionary
>> +               at: #timeStamp put: self timeStamp; "Keep this result's
>> time stamp."
>> -
>> -       ^ self class newTestDictionary
>>                 at: #passed put: passedSelectors asSet;
>>                 at: #failures put: failuresSelectors asSet;
>>                 at: #errors put: errorsSelectors asSet;
>> +               at: #durations put: testCaseDurations;
>> +               at: #duration put: (testCaseDurations inject: 0 into:
>> [:sum :each | sum + each]);
>>                 yourself
>>                 !
>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20190906/1fc98963/attachment.html>


More information about the Squeak-dev mailing list