[squeak-dev] The Inbox: SUnitGUI-ct.85.mcz

mail at jaromir.net mail at jaromir.net
Sun Jan 23 16:21:07 UTC 2022


Hi,

#valueUnpreemptively is affected by the #priority bug reported in http://lists.squeakfoundation.org/pipermail/squeak-dev/2021-December/217473.html

I'm not sure the behavior you describe would be fixed by fixing #priority; just guessing there might be a connection though :)

best,
~~~
^[^    Jaromir

Sent from Squeak Inbox Talk

On 2022-01-23T15:44:45+00:00, commits at source.squeak.org wrote:

> A new version of SUnitGUI was added to project The Inbox:
> http://source.squeak.org/inbox/SUnitGUI-ct.85.mcz
> 
> ==================== Summary ====================
> 
> Name: SUnitGUI-ct.85
> Author: ct
> Time: 23 January 2022, 4:44:44.095219 pm
> UUID: c523a4d5-d9aa-7347-8e2f-66452a540c30
> Ancestors: SUnitGUI-ct.84
> 
> Proposal: Do not use #valueUnpreemptively for collecting coverage in the TestRunner. The former behavior made it impossible to interrupt a hanging test and also led to errors in all tests that try to schedule a process on a priority above the active priority.
> 
> I have been happily using this setting for a few months in multiple images. The downside is that any processes running with higher-than-normal priority could interfere the results, but this only applies to code in the Kernel packages which is often not OaM-safe anyway.
> 
> =============== Diff against SUnitGUI-ct.84 ===============
> 
> Item was changed:
>   ----- Method: TestRunner>>collectCoverageFor: (in category 'actions') -----
>   collectCoverageFor: methods
>   	| wrappers suite |
>   	wrappers := methods collect: [ :each | TestCoverage on: each ].
>   	suite := self
>   		reset;
>   		suiteAll.
>   	
> + 	wrappers do: [ :each | each install ].
> + 	[ self runSuite: suite ] ensure: [ wrappers do: [ :each | each uninstall ] ].
> - 	[ wrappers do: [ :each | each install ].
> - 	[ self runSuite: suite ] ensure: [ wrappers do: [ :each | each uninstall ] ] ] valueUnpreemptively.
>   	wrappers := wrappers reject: [ :each | each hasRun ].
>   	wrappers isEmpty 
>   		ifTrue: 
> + 			[ self inform: 'Congratulations. Your tests cover all code under analysis.' translated ]
> - 			[ UIManager default inform: 'Congratulations. Your tests cover all code under analysis.' ]
>   		ifFalse: 
>   			[ ToolSet 
>   				browseMessageSet: (wrappers collect: [ :each | each reference ])
> + 				name: ('Not Covered Code ({1}% Code Coverage)' translated format: {100 - (100 * wrappers size // methods size)})
> - 				name: 'Not Covered Code (' , (100 - (100 * wrappers size // methods size)) printString , '% Code Coverage)'
>   				autoSelect: nil ].
>   	self saveResultInHistory!
> 
> 


More information about the Squeak-dev mailing list