<body><div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000;text-align: left" dir="ltr">
                                        Hi Christoph --<div><br></div><div>-1</div><div><br></div><div>#<span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">valueUnpreemptively is the only mechanism we have at this point to collect somewhat reliable coverage statistics. If you have a better idea, okay. But let's not break this existing facility here. It would modify the statistics being collected.</span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px"><br></span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">Best,</span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">Marcel</span></div><div class="mb_sig"></div><blockquote class='history_container' type='cite' style='border-left-style:solid;border-width:1px; margin-top:20px; margin-left:0px;padding-left:10px;'>
                        <p style='color: #AAAAAA; margin-top: 10px;'>Am 23.01.2022 16:44:54 schrieb commits@source.squeak.org <commits@source.squeak.org>:</p><div style='font-family:Arial,Helvetica,sans-serif'>A new version of SUnitGUI was added to project The Inbox:<br>http://source.squeak.org/inbox/SUnitGUI-ct.85.mcz<br><br>==================== Summary ====================<br><br>Name: SUnitGUI-ct.85<br>Author: ct<br>Time: 23 January 2022, 4:44:44.095219 pm<br>UUID: c523a4d5-d9aa-7347-8e2f-66452a540c30<br>Ancestors: SUnitGUI-ct.84<br><br>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.<br><br>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.<br><br>=============== Diff against SUnitGUI-ct.84 ===============<br><br>Item was changed:<br>  ----- Method: TestRunner>>collectCoverageFor: (in category 'actions') -----<br>  collectCoverageFor: methods<br>      | wrappers suite |<br>    wrappers := methods collect: [ :each | TestCoverage on: each ].<br>       suite := self<br>                 reset;<br>                suiteAll.<br>     <br>+     wrappers do: [ :each | each install ].<br>+       [ self runSuite: suite ] ensure: [ wrappers do: [ :each | each uninstall ] ].<br>-        [ wrappers do: [ :each | each install ].<br>-     [ self runSuite: suite ] ensure: [ wrappers do: [ :each | each uninstall ] ] ] valueUnpreemptively.<br>   wrappers := wrappers reject: [ :each | each hasRun ].<br>         wrappers isEmpty <br>             ifTrue: <br>+                     [ self inform: 'Congratulations. Your tests cover all code under analysis.' translated ]<br>-                     [ UIManager default inform: 'Congratulations. Your tests cover all code under analysis.' ]<br>            ifFalse: <br>                     [ ToolSet <br>                            browseMessageSet: (wrappers collect: [ :each | each reference ])<br>+                             name: ('Not Covered Code ({1}% Code Coverage)' translated format: {100 - (100 * wrappers size // methods size)})<br>-                             name: 'Not Covered Code (' , (100 - (100 * wrappers size // methods size)) printString , '% Code Coverage)'<br>                           autoSelect: nil ].<br>    self saveResultInHistory!<br><br><br></div></blockquote>
                                        </div></body>