=============================================================================== Notice: Cannot read stored value of #notExistingClassStoredSettingSTONString. Exception: KeyNotFound: key #MockNotExistingClass not found in SystemDictionary =============================================================================== =============================================================================== Notice: There are references to, 'RPackageNewStubClass' from Undeclared. Check them after this change. =============================================================================== =============================================================================== Notice: There are references to, 'RPackageNewStubClass' from Undeclared. Check them after this change. =============================================================================== =============================================================================== Notice: There are references to, 'RPackageNewStubClass' from Undeclared. Check them after this change. =============================================================================== =============================================================================== Notice: There are references to, 'RPackageNewStubClass' from Undeclared. Check them after this change. =============================================================================== =============================================================================== Notice: There are references to, 'RPackageNewStubClass' from Undeclared. Check them after this change. =============================================================================== =============================================================================== Notice: There are references to, 'RPackageNewStubClass' from Undeclared. Check them after this change. =============================================================================== =============================================================================== Notice: There are references to, #ClassForTestToBeDeleted11 from Undeclared. Check them after this change. =============================================================================== =============================================================================== Notice: There are references to, #TraitForTestToBeDeleted1 from Undeclared. Check them after this change. =============================================================================== =============================================================================== Notice: There are references to, #ClassForTestToBeDeleted44 from Undeclared. Check them after this change. =============================================================================== =============================================================================== Notice: There are references to, #TraitForTestToBeDeleted1 from Undeclared. Check them after this change. =============================================================================== =============================================================================== Notice: There are references to, #ClassForTestToBeDeleted78 from Undeclared. Check them after this change. =============================================================================== =============================================================================== Notice: There are references to, #TraitForTestToBeDeleted1 from Undeclared. Check them after this change. =============================================================================== =============================================================================== Notice: Filed out to: /builds/workspace/pharo-vm_pharo-9/runTests/Traits-Tests-FileOut.st Click to open location =============================================================================== =============================================================================== Notice: Filed out to: /builds/workspace/pharo-vm_pharo-9/runTests/T6.st Click to open location =============================================================================== =============================================================================== Notice: 2 occurrences were found and changed. =============================================================================== =============================================================================== Notice: 1 occurrences were found and changed. =============================================================================== =============================================================================== Notice: 7 occurrences were found and changed. =============================================================================== =============================================================================== Notice: 2 occurrences were found and changed. =============================================================================== =============================================================================== Notice: 3 occurrences were found and changed. =============================================================================== =============================================================================== Notice: 6 occurrences were found and changed. =============================================================================== =============================================================================== Notice: 8 occurrences were found and changed. =============================================================================== =============================================================================== Notice: 1 occurrences were found and changed. =============================================================================== =============================================================================== Notice: **Debugger opening error** Original error: test session. Debugger error: a UndefinedObject =============================================================================== THERE_BE_DRAGONS_HERE Original error: test session. Debugger error: a UndefinedObject 30 March 2023 2:38:47.301263 pm VM: unix - x86_64 - linux-gnu - CoInterpreter VMMaker-tonel.1 uuid: 630a0ead-7db4-0d00-9d99-2f3a068a2fce Mar 30 2023 StackToRegisterMappingCogit VMMaker-tonel.1 uuid: 630a0ead-7db4-0d00-9d99-2f3a068a2fce Mar 30 2023 v9.0.22 - Commit: 421845e - Date: 2023-03-30 09:49:26 +0200 Image: Pharo9.0.0 [Build information: Pharo-9.0.0+build.1580.sha.e1bb0fb7b6c4aaadd5106d19b58633c94dff1b69 (64 Bit)] [ Set new ] in OupsDummyDebugger class>>dummySession Receiver: OupsDummyDebugger Arguments and temporary variables: context: nil process: nil session: nil Receiver's instance variables: superclass: Object methodDict: a MethodDictionary(#beError->OupsDummyDebugger>>#beError #beUnusabl...etc... format: 65541 layout: a FixedLayout organization: a ClassOrganization subclasses: nil name: #OupsDummyDebugger classPool: a Dictionary() sharedPools: an OrderedCollection() environment: a SystemDictionary(lots of globals) category: #'Debugger-Oups-Tests-Utils' --- The full stack --- [ Set new ] in OupsDummyDebugger class>>dummySession ------------------------------------------------------------------------------- THERE_BE_DRAGONS_HERE Exception ------------------------------------------------------------------------------- THERE_BE_DRAGONS_HERE Exception ------------------------------------------------------------------------------- =============================================================================== Notice: **Debugger opening error** Original error: test session. Debugger error: Error =============================================================================== THERE_BE_DRAGONS_HERE Original error: test session. Debugger error: Error 30 March 2023 2:38:47.319287 pm VM: unix - x86_64 - linux-gnu - CoInterpreter VMMaker-tonel.1 uuid: 630a0ead-7db4-0d00-9d99-2f3a068a2fce Mar 30 2023 StackToRegisterMappingCogit VMMaker-tonel.1 uuid: 630a0ead-7db4-0d00-9d99-2f3a068a2fce Mar 30 2023 v9.0.22 - Commit: 421845e - Date: 2023-03-30 09:49:26 +0200 Image: Pharo9.0.0 [Build information: Pharo-9.0.0+build.1580.sha.e1bb0fb7b6c4aaadd5106d19b58633c94dff1b69 (64 Bit)] [ Set new ] in OupsDummyDebugger class>>dummySession Receiver: OupsDummyDebugger Arguments and temporary variables: context: nil process: nil session: nil Receiver's instance variables: superclass: Object methodDict: a MethodDictionary(#beError->OupsDummyDebugger>>#beError #beUnusabl...etc... format: 65541 layout: a FixedLayout organization: a ClassOrganization subclasses: nil name: #OupsDummyDebugger classPool: a Dictionary() sharedPools: an OrderedCollection() environment: a SystemDictionary(lots of globals) category: #'Debugger-Oups-Tests-Utils' --- The full stack --- [ Set new ] in OupsDummyDebugger class>>dummySession ------------------------------------------------------------------------------- =============================================================================== Notice: **Debugger opening error** Original error: test session. Debugger error: Error =============================================================================== THERE_BE_DRAGONS_HERE Original error: test session. Debugger error: Error 30 March 2023 2:38:47.321389 pm VM: unix - x86_64 - linux-gnu - CoInterpreter VMMaker-tonel.1 uuid: 630a0ead-7db4-0d00-9d99-2f3a068a2fce Mar 30 2023 StackToRegisterMappingCogit VMMaker-tonel.1 uuid: 630a0ead-7db4-0d00-9d99-2f3a068a2fce Mar 30 2023 v9.0.22 - Commit: 421845e - Date: 2023-03-30 09:49:26 +0200 Image: Pharo9.0.0 [Build information: Pharo-9.0.0+build.1580.sha.e1bb0fb7b6c4aaadd5106d19b58633c94dff1b69 (64 Bit)] [ Set new ] in OupsDummyDebugger class>>dummySession Receiver: OupsDummyDebugger Arguments and temporary variables: context: nil process: nil session: nil Receiver's instance variables: superclass: Object methodDict: a MethodDictionary(#beError->OupsDummyDebugger>>#beError #beUnusabl...etc... format: 65541 layout: a FixedLayout organization: a ClassOrganization subclasses: nil name: #OupsDummyDebugger classPool: a Dictionary() sharedPools: an OrderedCollection() environment: a SystemDictionary(lots of globals) category: #'Debugger-Oups-Tests-Utils' --- The full stack --- [ Set new ] in OupsDummyDebugger class>>dummySession ------------------------------------------------------------------------------- THERE_BE_DRAGONS_HERE 30 March 2023 2:40:37.568358 pm VM: unix - x86_64 - linux-gnu - CoInterpreter VMMaker-tonel.1 uuid: 630a0ead-7db4-0d00-9d99-2f3a068a2fce Mar 30 2023 StackToRegisterMappingCogit VMMaker-tonel.1 uuid: 630a0ead-7db4-0d00-9d99-2f3a068a2fce Mar 30 2023 v9.0.22 - Commit: 421845e - Date: 2023-03-30 09:49:26 +0200 Image: Pharo9.0.0 [Build information: Pharo-9.0.0+build.1580.sha.e1bb0fb7b6c4aaadd5106d19b58633c94dff1b69 (64 Bit)] [ Halt now ] in SessionErrorHandlingTest>>testErrorCaughtAndDefferedIfExceptionSignaledAtStartupWhenStartupUiManagerActive Receiver: SessionErrorHandlingTest>>#testErrorCaughtAndDefferedIfExceptionSignaledAtStartupWhenStart...etc... Arguments and temporary variables: x Receiver's instance variables: testSelector: #testErrorCaughtAndDefferedIfExceptionSignaledAtStartupWhenStartu...etc... expectedFails: nil manager: a SessionManager session: a TestWorkingSession TestSessionHandler>>startup: Receiver: a TestSessionHandler Arguments and temporary variables: isImageStarting: false Receiver's instance variables: startupHandler: [ Halt now ] shutdownHandler: nil [ :each | each startup: isImageStarting ] in TestWorkingSession(WorkingSession)>>runStartup: Receiver: a TestWorkingSession Arguments and temporary variables: isImageStarting: false each: a TestSessionHandler Receiver's instance variables: manager: a SessionManager deferredStartupActions: an OrderedCollection() id: nil creationTime: 2023-03-30T14:40:37.546928+02:00 properties: a Dictionary() errors: an OrderedCollection() errorHandler: a TestStartupUIManager [aBlock value: each] in [ :each | [aBlock value: each] on: Exception do: [ :error | self errorHandler handleError: error] ] in TestWorkingSession(WorkingSession)>>runList:do: Receiver: a TestWorkingSession Arguments and temporary variables: aList: an Array(a TestSessionHandler) aBlock: [ :each | each startup: isImageStarting ] each: a TestSessionHandler Receiver's instance variables: manager: a SessionManager deferredStartupActions: an OrderedCollection() id: nil creationTime: 2023-03-30T14:40:37.546928+02:00 properties: a Dictionary() errors: an OrderedCollection() errorHandler: a TestStartupUIManager FullBlockClosure(BlockClosure)>>on:do: Receiver: [aBlock value: each] Arguments and temporary variables: exception: Exception handlerAction: [ :error | self errorHandler handleError: error] Receiver's instance variables: outerContext: [ :each | [aBlock value: each] on: Exception do: [ :err...etc... startpc: a CompiledBlock: [aBlock value: each] numArgs: 0 receiver: a TestWorkingSession [ :each | [aBlock value: each] on: Exception do: [ :error | self errorHandler handleError: error] ] in TestWorkingSession(WorkingSession)>>runList:do: Receiver: a TestWorkingSession Arguments and temporary variables: aList: an Array(a TestSessionHandler) aBlock: [ :each | each startup: isImageStarting ] each: a TestSessionHandler Receiver's instance variables: manager: a SessionManager deferredStartupActions: an OrderedCollection() id: nil creationTime: 2023-03-30T14:40:37.546928+02:00 properties: a Dictionary() errors: an OrderedCollection() errorHandler: a TestStartupUIManager Array(SequenceableCollection)>>do: Receiver: an Array(a TestSessionHandler) Arguments and temporary variables: aBlock: [ :each | [aBlock value: each] on: Exception do: [ :error | s...etc... index: 1 Receiver's instance variables: an Array(a TestSessionHandler) TestWorkingSession(WorkingSession)>>runList:do: Receiver: a TestWorkingSession Arguments and temporary variables: aList: an Array(a TestSessionHandler) aBlock: [ :each | each startup: isImageStarting ] Receiver's instance variables: manager: a SessionManager deferredStartupActions: an OrderedCollection() id: nil creationTime: 2023-03-30T14:40:37.546928+02:00 properties: a Dictionary() errors: an OrderedCollection() errorHandler: a TestStartupUIManager TestWorkingSession(WorkingSession)>>runStartup: Receiver: a TestWorkingSession Arguments and temporary variables: isImageStarting: false Receiver's instance variables: manager: a SessionManager deferredStartupActions: an OrderedCollection() id: nil creationTime: 2023-03-30T14:40:37.546928+02:00 properties: a Dictionary() errors: an OrderedCollection() errorHandler: a TestStartupUIManager TestWorkingSession>>start: Receiver: a TestWorkingSession Arguments and temporary variables: isImageStarting: false Receiver's instance variables: manager: a SessionManager deferredStartupActions: an OrderedCollection() id: nil creationTime: 2023-03-30T14:40:37.546928+02:00 properties: a Dictionary() errors: an OrderedCollection() errorHandler: a TestStartupUIManager [ session start: false ] in [ manager register: (TestSessionHandler onStartup: [ Halt now ]). session errorHandler: (TestStartupUIManager new sessionManager: manager; yourself). self shouldnt: [ session start: false ] raise: Halt. self assert: (session instVarNamed: 'deferredStartupActions') size equals: 1] in SessionErrorHandlingTest>>testErrorCaughtAndDefferedIfExceptionSignaledAtStartupWhenStartupUiManagerActive Receiver: SessionErrorHandlingTest>>#testErrorCaughtAndDefferedIfExceptionSignaledAtStartupWhenStart...etc... Arguments and temporary variables: x Receiver's instance variables: testSelector: #testErrorCaughtAndDefferedIfExceptionSignaledAtStartupWhenStartu...etc... expectedFails: nil manager: a SessionManager session: a TestWorkingSession [aBlock value. false] in SessionErrorHandlingTest(TestAsserter)>>executeShould:inScopeOf: Receiver: SessionErrorHandlingTest>>#testErrorCaughtAndDefferedIfExceptionSignaledAtStartupWhenStart...etc... Arguments and temporary variables: aBlock: [ session start: false ] anExceptionalEvent: Halt Receiver's instance variables: testSelector: #testErrorCaughtAndDefferedIfExceptionSignaledAtStartupWhenStartu...etc... expectedFails: nil manager: a SessionManager session: a TestWorkingSession FullBlockClosure(BlockClosure)>>on:do: Receiver: [aBlock value. false] Arguments and temporary variables: exception: Halt handlerAction: [:ex | ex return: true] Receiver's instance variables: outerContext: SessionErrorHandlingTest(TestAsserter)>>executeShould:inScopeOf: startpc: a CompiledBlock: [aBlock value. false] numArgs: 0 receiver: SessionErrorHandlingTest>>#testErrorCaughtAndDefferedIfExceptionSigna...etc... SessionErrorHandlingTest(TestAsserter)>>executeShould:inScopeOf: Receiver: SessionErrorHandlingTest>>#testErrorCaughtAndDefferedIfExceptionSignaledAtStartupWhenStart...etc... Arguments and temporary variables: aBlock: [ session start: false ] anExceptionalEvent: Halt Receiver's instance variables: testSelector: #testErrorCaughtAndDefferedIfExceptionSignaledAtStartupWhenStartu...etc... expectedFails: nil manager: a SessionManager session: a TestWorkingSession SessionErrorHandlingTest(TestAsserter)>>shouldnt:raise: Receiver: SessionErrorHandlingTest>>#testErrorCaughtAndDefferedIfExceptionSignaledAtStartupWhenStart...etc... Arguments and temporary variables: aBlock: [ session start: false ] anExceptionalEvent: Halt Receiver's instance variables: testSelector: #testErrorCaughtAndDefferedIfExceptionSignaledAtStartupWhenStartu...etc... expectedFails: nil manager: a SessionManager session: a TestWorkingSession [ manager register: (TestSessionHandler onStartup: [ Halt now ]). session errorHandler: (TestStartupUIManager new sessionManager: manager; yourself). self shouldnt: [ session start: false ] raise: Halt. self assert: (session instVarNamed: 'deferredStartupActions') size equals: 1] in SessionErrorHandlingTest>>testErrorCaughtAndDefferedIfExceptionSignaledAtStartupWhenStartupUiManagerActive Receiver: SessionErrorHandlingTest>>#testErrorCaughtAndDefferedIfExceptionSignaledAtStartupWhenStart...etc... Arguments and temporary variables: x Receiver's instance variables: testSelector: #testErrorCaughtAndDefferedIfExceptionSignaledAtStartupWhenStartu...etc... expectedFails: nil manager: a SessionManager session: a TestWorkingSession FullBlockClosure(BlockClosure)>>ensure: Receiver: [ manager register: (TestSessionHandler onStartup: [ Halt now ]). session errorHandler:...etc... Arguments and temporary variables: aBlock: [ currentManager beDefault ] complete: nil returnValue: nil Receiver's instance variables: outerContext: SessionErrorHandlingTest>>testErrorCaughtAndDefferedIfExceptionSi...etc... startpc: a CompiledBlock: [ manager register: (TestSessionHandler onStartup: [ ...etc... numArgs: 0 receiver: SessionErrorHandlingTest>>#testErrorCaughtAndDefferedIfExceptionSigna...etc... UIManager class>>nonInteractiveDuring: Receiver: UIManager Arguments and temporary variables: aBlock: [ manager register: (TestSessionHandler onStartup: [ Halt now ]). se...etc... currentManager: a NonInteractiveUIManager Receiver's instance variables: superclass: Object methodDict: a MethodDictionary(#abort:->UIManager>>#abort: #abort:title:->UIMan...etc... format: 0 layout: a FixedLayout organization: a ClassOrganization subclasses: {CommandLineUIManager. DummyUIManager. MorphicUIManager} name: #UIManager classPool: a Dictionary(#Default->a NonInteractiveUIManager ) sharedPools: an OrderedCollection() environment: a SystemDictionary(lots of globals) category: #'UIManager-Base' SessionErrorHandlingTest>>testErrorCaughtAndDefferedIfExceptionSignaledAtStartupWhenStartupUiManagerActive Receiver: SessionErrorHandlingTest>>#testErrorCaughtAndDefferedIfExceptionSignaledAtStartupWhenStart...etc... Arguments and temporary variables: x Receiver's instance variables: testSelector: #testErrorCaughtAndDefferedIfExceptionSignaledAtStartupWhenStartu...etc... expectedFails: nil manager: a SessionManager session: a TestWorkingSession SessionErrorHandlingTest(TestCase)>>performTest Receiver: SessionErrorHandlingTest>>#testErrorCaughtAndDefferedIfExceptionSignaledAtStartupWhenStart...etc... Arguments and temporary variables: x Receiver's instance variables: testSelector: #testErrorCaughtAndDefferedIfExceptionSignaledAtStartupWhenStartu...etc... expectedFails: nil manager: a SessionManager session: a TestWorkingSession [self setUp. self performTest] in SessionErrorHandlingTest(TestCase)>>runCase Receiver: SessionErrorHandlingTest>>#testErrorCaughtAndDefferedIfExceptionSignaledAtStartupWhenStart...etc... Arguments and temporary variables: x Receiver's instance variables: testSelector: #testErrorCaughtAndDefferedIfExceptionSignaledAtStartupWhenStartu...etc... expectedFails: nil manager: a SessionManager session: a TestWorkingSession FullBlockClosure(BlockClosure)>>ensure: Receiver: [self setUp. self performTest] Arguments and temporary variables: aBlock: [ self tearDown. self cleanUpInstanceVariables] complete: nil returnValue: nil Receiver's instance variables: outerContext: SessionErrorHandlingTest(TestCase)>>runCase startpc: a CompiledBlock: [self setUp. self performTest] numArgs: 0 receiver: SessionErrorHandlingTest>>#testErrorCaughtAndDefferedIfExceptionSigna...etc... SessionErrorHandlingTest(TestCase)>>runCase Receiver: SessionErrorHandlingTest>>#testErrorCaughtAndDefferedIfExceptionSignaledAtStartupWhenStart...etc... Arguments and temporary variables: x Receiver's instance variables: testSelector: #testErrorCaughtAndDefferedIfExceptionSignaledAtStartupWhenStartu...etc... expectedFails: nil manager: a SessionManager session: a TestWorkingSession [aTestCase runCase] in [ [aTestCase runCase] ensure: [ "Terminated test is not considered as completed (user just closed a debugger for example)" mainTestProcess isTerminating ifFalse: [ self handleCompletedTest ]] ] in TestExecutionEnvironment>>runTestCaseUnderWatchdog: Receiver: a TestExecutionEnvironment Arguments and temporary variables: aTestCase: SessionErrorHandlingTest>>#testErrorCaughtAndDefferedIfExceptionSign...etc... Receiver's instance variables: watchDogProcess: a Process in [self schedule. "It is critical that the followi...etc... watchDogSemaphore: a Semaphore(a Process in [self schedule. "It is critical th...etc... testCase: SessionErrorHandlingTest>>#testErrorCaughtAndDefferedIfExceptionSigna...etc... maxTimeForTest: 0:00:00:10 testCompleted: false services: an OrderedCollection(a ProcessMonitorTestService) mainTestProcess: a Process in nil FullBlockClosure(BlockClosure)>>ensure: Receiver: [aTestCase runCase] Arguments and temporary variables: aBlock: [ "Terminated test is not considered as completed (user just closed ...etc... complete: nil returnValue: nil Receiver's instance variables: outerContext: [ [aTestCase runCase] ensure: [ "Terminated test is not cons...etc... startpc: a CompiledBlock: [aTestCase runCase] numArgs: 0 receiver: a TestExecutionEnvironment [ [aTestCase runCase] ensure: [ "Terminated test is not considered as completed (user just closed a debugger for example)" mainTestProcess isTerminating ifFalse: [ self handleCompletedTest ]] ] in TestExecutionEnvironment>>runTestCaseUnderWatchdog: Receiver: a TestExecutionEnvironment Arguments and temporary variables: aTestCase: SessionErrorHandlingTest>>#testErrorCaughtAndDefferedIfExceptionSign...etc... Receiver's instance variables: watchDogProcess: a Process in [self schedule. "It is critical that the followi...etc... watchDogSemaphore: a Semaphore(a Process in [self schedule. "It is critical th...etc... testCase: SessionErrorHandlingTest>>#testErrorCaughtAndDefferedIfExceptionSigna...etc... maxTimeForTest: 0:00:00:10 testCompleted: false services: an OrderedCollection(a ProcessMonitorTestService) mainTestProcess: a Process in nil FullBlockClosure(BlockClosure)>>on:do: Receiver: [ [aTestCase runCase] ensure: [ "Terminated test is not considered as completed (user...etc... Arguments and temporary variables: exception: Exception handlerAction: [ :err | self handleException: err ] Receiver's instance variables: outerContext: TestExecutionEnvironment>>runTestCaseUnderWatchdog: startpc: a CompiledBlock: [ [aTestCase runCase] ensure: [ "Terminated test...etc... numArgs: 0 receiver: a TestExecutionEnvironment TestExecutionEnvironment>>runTestCaseUnderWatchdog: Receiver: a TestExecutionEnvironment Arguments and temporary variables: aTestCase: SessionErrorHandlingTest>>#testErrorCaughtAndDefferedIfExceptionSign...etc... Receiver's instance variables: watchDogProcess: a Process in [self schedule. "It is critical that the followi...etc... watchDogSemaphore: a Semaphore(a Process in [self schedule. "It is critical th...etc... testCase: SessionErrorHandlingTest>>#testErrorCaughtAndDefferedIfExceptionSigna...etc... maxTimeForTest: 0:00:00:10 testCompleted: false services: an OrderedCollection(a ProcessMonitorTestService) mainTestProcess: a Process in nil [self runTestCaseUnderWatchdog: aTestCase] in TestExecutionEnvironment>>runTestCase: Receiver: a TestExecutionEnvironment Arguments and temporary variables: aTestCase: SessionErrorHandlingTest>>#testErrorCaughtAndDefferedIfExceptionSign...etc... Receiver's instance variables: watchDogProcess: a Process in [self schedule. "It is critical that the followi...etc... watchDogSemaphore: a Semaphore(a Process in [self schedule. "It is critical th...etc... testCase: SessionErrorHandlingTest>>#testErrorCaughtAndDefferedIfExceptionSigna...etc... maxTimeForTest: 0:00:00:10 testCompleted: false services: an OrderedCollection(a ProcessMonitorTestService) mainTestProcess: a Process in nil FullBlockClosure(BlockClosure)>>ensure: Receiver: [self runTestCaseUnderWatchdog: aTestCase] Arguments and temporary variables: aBlock: [ testCompleted := true. watchDogSemaphore signal. "signal that te...etc... complete: nil returnValue: nil Receiver's instance variables: outerContext: TestExecutionEnvironment>>runTestCase: startpc: a CompiledBlock: [self runTestCaseUnderWatchdog: aTestCase] numArgs: 0 receiver: a TestExecutionEnvironment TestExecutionEnvironment>>runTestCase: Receiver: a TestExecutionEnvironment Arguments and temporary variables: aTestCase: SessionErrorHandlingTest>>#testErrorCaughtAndDefferedIfExceptionSign...etc... Receiver's instance variables: watchDogProcess: a Process in [self schedule. "It is critical that the followi...etc... watchDogSemaphore: a Semaphore(a Process in [self schedule. "It is critical th...etc... testCase: SessionErrorHandlingTest>>#testErrorCaughtAndDefferedIfExceptionSigna...etc... maxTimeForTest: 0:00:00:10 testCompleted: false services: an OrderedCollection(a ProcessMonitorTestService) mainTestProcess: a Process in nil CurrentExecutionEnvironment class>>runTestCase: Receiver: CurrentExecutionEnvironment Arguments and temporary variables: aTestCase: SessionErrorHandlingTest>>#testErrorCaughtAndDefferedIfExceptionSign...etc... Receiver's instance variables: superclass: ProcessLocalVariable methodDict: a MethodDictionary(#default->CurrentExecutionEnvironment>>#default ...etc... format: 65537 layout: a FixedLayout organization: a ClassOrganization subclasses: nil name: #CurrentExecutionEnvironment classPool: a Dictionary() sharedPools: an OrderedCollection() environment: a SystemDictionary(lots of globals) category: #'Kernel-Processes' soleInstance: a CurrentExecutionEnvironment SessionErrorHandlingTest(TestCase)>>runCaseManaged Receiver: SessionErrorHandlingTest>>#testErrorCaughtAndDefferedIfExceptionSignaledAtStartupWhenStart...etc... Arguments and temporary variables: x Receiver's instance variables: testSelector: #testErrorCaughtAndDefferedIfExceptionSignaledAtStartupWhenStartu...etc... expectedFails: nil manager: a SessionManager session: a TestWorkingSession [aTestCase runCaseManaged. aTestCase shouldPass ifTrue: [ self recordPassOf: aTestCase ] ifFalse: [ self recordUnexpectedPassOf: aTestCase ] ] in [ [aTestCase runCaseManaged. aTestCase shouldPass ifTrue: [ self recordPassOf: aTestCase ] ifFalse: [ self recordUnexpectedPassOf: aTestCase ] ] on: Exception do: [ :exc | exc recordResultOf: aTestCase inHDTestReport: self ] ] in HDTestReport>>runCase: Receiver: a HDTestReport Arguments and temporary variables: aTestCase: SessionErrorHandlingTest>>#testErrorCaughtAndDefferedIfExceptionSign...etc... Receiver's instance variables: suite: a TestSuite stream: a WriteStream suitePosition: 95 suiteTime: 0:00:00:00 suiteFailures: 0 suiteErrors: 0 nodeName: #'Unix64.' stageName: 'Tests-Linux-x86_64-CoInterpreter' progressFileName: 'progress.log' progressStream: a ZnCharacterWriteStream shouldSerializeError: false FullBlockClosure(BlockClosure)>>on:do: Receiver: [aTestCase runCaseManaged. aTestCase shouldPass ifTrue: [ self recordPassOf: aTest...etc... Arguments and temporary variables: exception: Exception handlerAction: [ :exc | exc recordResultOf: aTestCase inHDTestReport: sel...etc... Receiver's instance variables: outerContext: [ [aTestCase runCaseManaged. aTestCase shouldPass ifT...etc... startpc: a CompiledBlock: [aTestCase runCaseManaged. aTestCase shouldPass ...etc... numArgs: 0 receiver: a HDTestReport [ [aTestCase runCaseManaged. aTestCase shouldPass ifTrue: [ self recordPassOf: aTestCase ] ifFalse: [ self recordUnexpectedPassOf: aTestCase ] ] on: Exception do: [ :exc | exc recordResultOf: aTestCase inHDTestReport: self ] ] in HDTestReport>>runCase: Receiver: a HDTestReport Arguments and temporary variables: aTestCase: SessionErrorHandlingTest>>#testErrorCaughtAndDefferedIfExceptionSign...etc... Receiver's instance variables: suite: a TestSuite stream: a WriteStream suitePosition: 95 suiteTime: 0:00:00:00 suiteFailures: 0 suiteErrors: 0 nodeName: #'Unix64.' stageName: 'Tests-Linux-x86_64-CoInterpreter' progressFileName: 'progress.log' progressStream: a ZnCharacterWriteStream shouldSerializeError: false Time class>>microsecondsToRun: Receiver: Time Arguments and temporary variables: timedBlock: [ [aTestCase runCaseManaged. aTestCase shouldPass ifTru...etc... initialMicroseconds: 3857632837546916 Receiver's instance variables: superclass: Magnitude methodDict: a MethodDictionary(#<->Time>>#< #=->Time>>#= #addSeconds:->Time>>#a...etc... format: 65538 layout: a FixedLayout organization: a ClassOrganization subclasses: nil name: #Time classPool: a Dictionary() sharedPools: an OrderedCollection(ChronologyConstants) environment: a SystemDictionary(lots of globals) category: #'Kernel-Chronology' Time class>>millisecondsToRun: Receiver: Time Arguments and temporary variables: timedBlock: [ [aTestCase runCaseManaged. aTestCase shouldPass ifTru...etc... Receiver's instance variables: superclass: Magnitude methodDict: a MethodDictionary(#<->Time>>#< #=->Time>>#= #addSeconds:->Time>>#a...etc... format: 65538 layout: a FixedLayout organization: a ClassOrganization subclasses: nil name: #Time classPool: a Dictionary() sharedPools: an OrderedCollection(ChronologyConstants) environment: a SystemDictionary(lots of globals) category: #'Kernel-Chronology' FullBlockClosure(BlockClosure)>>timeToRun Receiver: [ [aTestCase runCaseManaged. aTestCase shouldPass ifTrue: [ self recordPassOf:...etc... Arguments and temporary variables: x Receiver's instance variables: outerContext: HDTestReport>>runCase: startpc: a CompiledBlock: [ [aTestCase runCaseManaged. aTestCase shouldP...etc... numArgs: 0 receiver: a HDTestReport --- The full stack --- [ Halt now ] in SessionErrorHandlingTest>>testErrorCaughtAndDefferedIfExceptionSignaledAtStartupWhenStartupUiManagerActive TestSessionHandler>>startup: [ :each | each startup: isImageStarting ] in TestWorkingSession(WorkingSession)>>runStartup: [aBlock value: each] in [ :each | [aBlock value: each] on: Exception do: [ :error | self errorHandler handleError: error] ] in TestWorkingSession(WorkingSession)>>runList:do: FullBlockClosure(BlockClosure)>>on:do: [ :each | [aBlock value: each] on: Exception do: [ :error | self errorHandler handleError: error] ] in TestWorkingSession(WorkingSession)>>runList:do: Array(SequenceableCollection)>>do: TestWorkingSession(WorkingSession)>>runList:do: TestWorkingSession(WorkingSession)>>runStartup: TestWorkingSession>>start: [ session start: false ] in [ manager register: (TestSessionHandler onStartup: [ Halt now ]). session errorHandler: (TestStartupUIManager new sessionManager: manager; yourself). self shouldnt: [ session start: false ] raise: Halt. self assert: (session instVarNamed: 'deferredStartupActions') size equals: 1] in SessionErrorHandlingTest>>testErrorCaughtAndDefferedIfExceptionSignaledAtStartupWhenStartupUiManagerActive [aBlock value. false] in SessionErrorHandlingTest(TestAsserter)>>executeShould:inScopeOf: FullBlockClosure(BlockClosure)>>on:do: SessionErrorHandlingTest(TestAsserter)>>executeShould:inScopeOf: SessionErrorHandlingTest(TestAsserter)>>shouldnt:raise: [ manager register: (TestSessionHandler onStartup: [ Halt now ]). session errorHandler: (TestStartupUIManager new sessionManager: manager; yourself). self shouldnt: [ session start: false ] raise: Halt. self assert: (session instVarNamed: 'deferredStartupActions') size equals: 1] in SessionErrorHandlingTest>>testErrorCaughtAndDefferedIfExceptionSignaledAtStartupWhenStartupUiManagerActive FullBlockClosure(BlockClosure)>>ensure: UIManager class>>nonInteractiveDuring: SessionErrorHandlingTest>>testErrorCaughtAndDefferedIfExceptionSignaledAtStartupWhenStartupUiManagerActive SessionErrorHandlingTest(TestCase)>>performTest [self setUp. self performTest] in SessionErrorHandlingTest(TestCase)>>runCase FullBlockClosure(BlockClosure)>>ensure: SessionErrorHandlingTest(TestCase)>>runCase [aTestCase runCase] in [ [aTestCase runCase] ensure: [ "Terminated test is not considered as completed (user just closed a debugger for example)" mainTestProcess isTerminating ifFalse: [ self handleCompletedTest ]] ] in TestExecutionEnvironment>>runTestCaseUnderWatchdog: FullBlockClosure(BlockClosure)>>ensure: [ [aTestCase runCase] ensure: [ "Terminated test is not considered as completed (user just closed a debugger for example)" mainTestProcess isTerminating ifFalse: [ self handleCompletedTest ]] ] in TestExecutionEnvironment>>runTestCaseUnderWatchdog: FullBlockClosure(BlockClosure)>>on:do: TestExecutionEnvironment>>runTestCaseUnderWatchdog: [self runTestCaseUnderWatchdog: aTestCase] in TestExecutionEnvironment>>runTestCase: FullBlockClosure(BlockClosure)>>ensure: TestExecutionEnvironment>>runTestCase: CurrentExecutionEnvironment class>>runTestCase: SessionErrorHandlingTest(TestCase)>>runCaseManaged [aTestCase runCaseManaged. aTestCase shouldPass ifTrue: [ self recordPassOf: aTestCase ] ifFalse: [ self recordUnexpectedPassOf: aTestCase ] ] in [ [aTestCase runCaseManaged. aTestCase shouldPass ifTrue: [ self recordPassOf: aTestCase ] ifFalse: [ self recordUnexpectedPassOf: aTestCase ] ] on: Exception do: [ :exc | exc recordResultOf: aTestCase inHDTestReport: self ] ] in HDTestReport>>runCase: FullBlockClosure(BlockClosure)>>on:do: [ [aTestCase runCaseManaged. aTestCase shouldPass ifTrue: [ self recordPassOf: aTestCase ] ifFalse: [ self recordUnexpectedPassOf: aTestCase ] ] on: Exception do: [ :exc | exc recordResultOf: aTestCase inHDTestReport: self ] ] in HDTestReport>>runCase: Time class>>microsecondsToRun: Time class>>millisecondsToRun: FullBlockClosure(BlockClosure)>>timeToRun - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [ time := aBlock timeToRun ] in HDTestReport>>reportTestCase:runBlock: FullBlockClosure(BlockClosure)>>ensure: HDTestReport>>newLogDuring: HDTestReport>>reportTestCase:runBlock: HDTestReport>>runCase: SessionErrorHandlingTest(TestCase)>>run: [ :each | each run: self ] in [ suite tests do: [ :each | each run: self ] ] in HDTestReport>>runAll OrderedCollection>>do: [ suite tests do: [ :each | each run: self ] ] in HDTestReport>>runAll [ self value: anExecutionEnvironment. anExecutionEnvironment activated. aBlock value ] in CurrentExecutionEnvironment class>>activate:for: FullBlockClosure(BlockClosure)>>ensure: CurrentExecutionEnvironment class>>activate:for: TestExecutionEnvironment(ExecutionEnvironment)>>beActiveDuring: DefaultExecutionEnvironment>>runTestsBy: CurrentExecutionEnvironment class>>runTestsBy: HDTestReport>>runAll [ self runAll ] in [ self setUp. suiteTime := [ self runAll ] timeToRun ] in [ [ self setUp. suiteTime := [ self runAll ] timeToRun ] ensure: [ self tearDown ] ] in HDTestReport>>run Time class>>microsecondsToRun: Time class>>millisecondsToRun: FullBlockClosure(BlockClosure)>>timeToRun [ self setUp. suiteTime := [ self runAll ] timeToRun ] in [ [ self setUp. suiteTime := [ self runAll ] timeToRun ] ensure: [ self tearDown ] ] in HDTestReport>>run FullBlockClosure(BlockClosure)>>ensure: [ [ self setUp. suiteTime := [ self runAll ] timeToRun ] ensure: [ self tearDown ] ] in HDTestReport>>run FullBlockClosure(BlockClosure)>>ensure: Author>>ifUnknownAuthorUse:during: HDTestReport>>run HDTestReport>>runSuite: HDTestReport class>>runSuite: HDTestReport class>>runClasses:named: HDTestReport class>>runPackage: [ :each | self runPackage: each ] in HDTestReport class(HDReport class)>>runPackages: [:each | each ifNotNil: [newSet add: (aBlock value: each enclosedElement)]] in Set>>collect: Array(SequenceableCollection)>>do: Set>>collect: HDTestReport class(HDReport class)>>runPackages: TestCommandLineHandler>>runPackages TestCommandLineHandler>>activate TestCommandLineHandler class(CommandLineHandler class)>>activateWith: [ aCommandLinehandler activateWith: commandLine ] in PharoCommandLineHandler(BasicCommandLineHandler)>>activateSubCommand: FullBlockClosure(BlockClosure)>>on:do: PharoCommandLineHandler(BasicCommandLineHandler)>>activateSubCommand: PharoCommandLineHandler(BasicCommandLineHandler)>>handleSubcommand PharoCommandLineHandler(BasicCommandLineHandler)>>handleArgument: [ self handleArgument: self firstArgument ] in [ [ self handleArgument: self firstArgument ] on: Exit do: [ :exit | "If the command line is protected by password, we just exit the image because in non-headless mode the handleExit will let the image open. If the password protection is enabled, it is to avoid to let the access to the image." self class commandLinePasswordManager hasPasswordSet ifTrue: [ Smalltalk snapshot: false andQuit: true ]. self handleExit: exit ] ] in BasicCommandLineHandler>>activate FullBlockClosure(BlockClosure)>>on:do: [ [ self handleArgument: self firstArgument ] on: Exit do: [ :exit | "If the command line is protected by password, we just exit the image because in non-headless mode the handleExit will let the image open. If the password protection is enabled, it is to avoid to let the access to the image." self class commandLinePasswordManager hasPasswordSet ifTrue: [ Smalltalk snapshot: false andQuit: true ]. self handleExit: exit ] ] in BasicCommandLineHandler>>activate [self value. Processor terminateActive] in FullBlockClosure(BlockClosure)>>newProcess ------------------------------------------------------------------------------- THERE_BE_DRAGONS_HERE 30 March 2023 2:40:37.611737 pm VM: unix - x86_64 - linux-gnu - CoInterpreter VMMaker-tonel.1 uuid: 630a0ead-7db4-0d00-9d99-2f3a068a2fce Mar 30 2023 StackToRegisterMappingCogit VMMaker-tonel.1 uuid: 630a0ead-7db4-0d00-9d99-2f3a068a2fce Mar 30 2023 v9.0.22 - Commit: 421845e - Date: 2023-03-30 09:49:26 +0200 Image: Pharo9.0.0 [Build information: Pharo-9.0.0+build.1580.sha.e1bb0fb7b6c4aaadd5106d19b58633c94dff1b69 (64 Bit)] [ ZeroDivide signal ] in SessionErrorHandlingTest>>testErrorHandledIfExceptionSignaledAtShutdownWhenStartupUiManagerActive Receiver: SessionErrorHandlingTest>>#testErrorHandledIfExceptionSignaledAtShutdownWhenStartupUiManag...etc... Arguments and temporary variables: x Receiver's instance variables: testSelector: #testErrorHandledIfExceptionSignaledAtShutdownWhenStartupUiManage...etc... expectedFails: nil manager: a SessionManager session: a TestWorkingSession TestSessionHandler>>shutdown: Receiver: a TestSessionHandler Arguments and temporary variables: isImageQuitting: false Receiver's instance variables: startupHandler: nil shutdownHandler: [ ZeroDivide signal ] [ :each | each shutdown: isImageQuitting ] in TestWorkingSession(WorkingSession)>>runShutdown: Receiver: a TestWorkingSession Arguments and temporary variables: isImageQuitting: false each: a TestSessionHandler Receiver's instance variables: manager: a SessionManager deferredStartupActions: an OrderedCollection() id: nil creationTime: 2023-03-30T14:40:37.604664+02:00 properties: a Dictionary() errors: an OrderedCollection() errorHandler: a TestStartupUIManager [aBlock value: each] in [ :each | [aBlock value: each] on: Exception do: [ :error | self errorHandler handleError: error] ] in TestWorkingSession(WorkingSession)>>runList:do: Receiver: a TestWorkingSession Arguments and temporary variables: aList: an Array(a TestSessionHandler) aBlock: [ :each | each shutdown: isImageQuitting ] each: a TestSessionHandler Receiver's instance variables: manager: a SessionManager deferredStartupActions: an OrderedCollection() id: nil creationTime: 2023-03-30T14:40:37.604664+02:00 properties: a Dictionary() errors: an OrderedCollection() errorHandler: a TestStartupUIManager FullBlockClosure(BlockClosure)>>on:do: Receiver: [aBlock value: each] Arguments and temporary variables: exception: Exception handlerAction: [ :error | self errorHandler handleError: error] Receiver's instance variables: outerContext: [ :each | [aBlock value: each] on: Exception do: [ :err...etc... startpc: a CompiledBlock: [aBlock value: each] numArgs: 0 receiver: a TestWorkingSession [ :each | [aBlock value: each] on: Exception do: [ :error | self errorHandler handleError: error] ] in TestWorkingSession(WorkingSession)>>runList:do: Receiver: a TestWorkingSession Arguments and temporary variables: aList: an Array(a TestSessionHandler) aBlock: [ :each | each shutdown: isImageQuitting ] each: a TestSessionHandler Receiver's instance variables: manager: a SessionManager deferredStartupActions: an OrderedCollection() id: nil creationTime: 2023-03-30T14:40:37.604664+02:00 properties: a Dictionary() errors: an OrderedCollection() errorHandler: a TestStartupUIManager Array(SequenceableCollection)>>do: Receiver: an Array(a TestSessionHandler) Arguments and temporary variables: aBlock: [ :each | [aBlock value: each] on: Exception do: [ :error | s...etc... index: 1 Receiver's instance variables: an Array(a TestSessionHandler) TestWorkingSession(WorkingSession)>>runList:do: Receiver: a TestWorkingSession Arguments and temporary variables: aList: an Array(a TestSessionHandler) aBlock: [ :each | each shutdown: isImageQuitting ] Receiver's instance variables: manager: a SessionManager deferredStartupActions: an OrderedCollection() id: nil creationTime: 2023-03-30T14:40:37.604664+02:00 properties: a Dictionary() errors: an OrderedCollection() errorHandler: a TestStartupUIManager TestWorkingSession(WorkingSession)>>runShutdown: Receiver: a TestWorkingSession Arguments and temporary variables: isImageQuitting: false Receiver's instance variables: manager: a SessionManager deferredStartupActions: an OrderedCollection() id: nil creationTime: 2023-03-30T14:40:37.604664+02:00 properties: a Dictionary() errors: an OrderedCollection() errorHandler: a TestStartupUIManager TestWorkingSession(WorkingSession)>>stop: Receiver: a TestWorkingSession Arguments and temporary variables: isImageQuitting: false Receiver's instance variables: manager: a SessionManager deferredStartupActions: an OrderedCollection() id: nil creationTime: 2023-03-30T14:40:37.604664+02:00 properties: a Dictionary() errors: an OrderedCollection() errorHandler: a TestStartupUIManager [ session stop: false ] in SessionErrorHandlingTest>>testErrorHandledIfExceptionSignaledAtShutdownWhenStartupUiManagerActive Receiver: SessionErrorHandlingTest>>#testErrorHandledIfExceptionSignaledAtShutdownWhenStartupUiManag...etc... Arguments and temporary variables: x Receiver's instance variables: testSelector: #testErrorHandledIfExceptionSignaledAtShutdownWhenStartupUiManage...etc... expectedFails: nil manager: a SessionManager session: a TestWorkingSession [aBlock value. false] in SessionErrorHandlingTest(TestAsserter)>>executeShould:inScopeOf: Receiver: SessionErrorHandlingTest>>#testErrorHandledIfExceptionSignaledAtShutdownWhenStartupUiManag...etc... Arguments and temporary variables: aBlock: [ session stop: false ] anExceptionalEvent: ZeroDivide Receiver's instance variables: testSelector: #testErrorHandledIfExceptionSignaledAtShutdownWhenStartupUiManage...etc... expectedFails: nil manager: a SessionManager session: a TestWorkingSession FullBlockClosure(BlockClosure)>>on:do: Receiver: [aBlock value. false] Arguments and temporary variables: exception: ZeroDivide handlerAction: [:ex | ex return: true] Receiver's instance variables: outerContext: SessionErrorHandlingTest(TestAsserter)>>executeShould:inScopeOf: startpc: a CompiledBlock: [aBlock value. false] numArgs: 0 receiver: SessionErrorHandlingTest>>#testErrorHandledIfExceptionSignaledAtShutd...etc... SessionErrorHandlingTest(TestAsserter)>>executeShould:inScopeOf: Receiver: SessionErrorHandlingTest>>#testErrorHandledIfExceptionSignaledAtShutdownWhenStartupUiManag...etc... Arguments and temporary variables: aBlock: [ session stop: false ] anExceptionalEvent: ZeroDivide Receiver's instance variables: testSelector: #testErrorHandledIfExceptionSignaledAtShutdownWhenStartupUiManage...etc... expectedFails: nil manager: a SessionManager session: a TestWorkingSession SessionErrorHandlingTest(TestAsserter)>>shouldnt:raise: Receiver: SessionErrorHandlingTest>>#testErrorHandledIfExceptionSignaledAtShutdownWhenStartupUiManag...etc... Arguments and temporary variables: aBlock: [ session stop: false ] anExceptionalEvent: ZeroDivide Receiver's instance variables: testSelector: #testErrorHandledIfExceptionSignaledAtShutdownWhenStartupUiManage...etc... expectedFails: nil manager: a SessionManager session: a TestWorkingSession SessionErrorHandlingTest>>testErrorHandledIfExceptionSignaledAtShutdownWhenStartupUiManagerActive Receiver: SessionErrorHandlingTest>>#testErrorHandledIfExceptionSignaledAtShutdownWhenStartupUiManag...etc... Arguments and temporary variables: x Receiver's instance variables: testSelector: #testErrorHandledIfExceptionSignaledAtShutdownWhenStartupUiManage...etc... expectedFails: nil manager: a SessionManager session: a TestWorkingSession SessionErrorHandlingTest(TestCase)>>performTest Receiver: SessionErrorHandlingTest>>#testErrorHandledIfExceptionSignaledAtShutdownWhenStartupUiManag...etc... Arguments and temporary variables: x Receiver's instance variables: testSelector: #testErrorHandledIfExceptionSignaledAtShutdownWhenStartupUiManage...etc... expectedFails: nil manager: a SessionManager session: a TestWorkingSession [self setUp. self performTest] in SessionErrorHandlingTest(TestCase)>>runCase Receiver: SessionErrorHandlingTest>>#testErrorHandledIfExceptionSignaledAtShutdownWhenStartupUiManag...etc... Arguments and temporary variables: x Receiver's instance variables: testSelector: #testErrorHandledIfExceptionSignaledAtShutdownWhenStartupUiManage...etc... expectedFails: nil manager: a SessionManager session: a TestWorkingSession FullBlockClosure(BlockClosure)>>ensure: Receiver: [self setUp. self performTest] Arguments and temporary variables: aBlock: [ self tearDown. self cleanUpInstanceVariables] complete: nil returnValue: nil Receiver's instance variables: outerContext: SessionErrorHandlingTest(TestCase)>>runCase startpc: a CompiledBlock: [self setUp. self performTest] numArgs: 0 receiver: SessionErrorHandlingTest>>#testErrorHandledIfExceptionSignaledAtShutd...etc... SessionErrorHandlingTest(TestCase)>>runCase Receiver: SessionErrorHandlingTest>>#testErrorHandledIfExceptionSignaledAtShutdownWhenStartupUiManag...etc... Arguments and temporary variables: x Receiver's instance variables: testSelector: #testErrorHandledIfExceptionSignaledAtShutdownWhenStartupUiManage...etc... expectedFails: nil manager: a SessionManager session: a TestWorkingSession [aTestCase runCase] in [ [aTestCase runCase] ensure: [ "Terminated test is not considered as completed (user just closed a debugger for example)" mainTestProcess isTerminating ifFalse: [ self handleCompletedTest ]] ] in TestExecutionEnvironment>>runTestCaseUnderWatchdog: Receiver: a TestExecutionEnvironment Arguments and temporary variables: aTestCase: SessionErrorHandlingTest>>#testErrorHandledIfExceptionSignaledAtShut...etc... Receiver's instance variables: watchDogProcess: a Process in [self schedule. "It is critical that the followi...etc... watchDogSemaphore: a Semaphore(a Process in [self schedule. "It is critical th...etc... testCase: SessionErrorHandlingTest>>#testErrorHandledIfExceptionSignaledAtShutd...etc... maxTimeForTest: 0:00:00:10 testCompleted: false services: an OrderedCollection(a ProcessMonitorTestService) mainTestProcess: a Process in nil FullBlockClosure(BlockClosure)>>ensure: Receiver: [aTestCase runCase] Arguments and temporary variables: aBlock: [ "Terminated test is not considered as completed (user just closed ...etc... complete: nil returnValue: nil Receiver's instance variables: outerContext: [ [aTestCase runCase] ensure: [ "Terminated test is not cons...etc... startpc: a CompiledBlock: [aTestCase runCase] numArgs: 0 receiver: a TestExecutionEnvironment [ [aTestCase runCase] ensure: [ "Terminated test is not considered as completed (user just closed a debugger for example)" mainTestProcess isTerminating ifFalse: [ self handleCompletedTest ]] ] in TestExecutionEnvironment>>runTestCaseUnderWatchdog: Receiver: a TestExecutionEnvironment Arguments and temporary variables: aTestCase: SessionErrorHandlingTest>>#testErrorHandledIfExceptionSignaledAtShut...etc... Receiver's instance variables: watchDogProcess: a Process in [self schedule. "It is critical that the followi...etc... watchDogSemaphore: a Semaphore(a Process in [self schedule. "It is critical th...etc... testCase: SessionErrorHandlingTest>>#testErrorHandledIfExceptionSignaledAtShutd...etc... maxTimeForTest: 0:00:00:10 testCompleted: false services: an OrderedCollection(a ProcessMonitorTestService) mainTestProcess: a Process in nil FullBlockClosure(BlockClosure)>>on:do: Receiver: [ [aTestCase runCase] ensure: [ "Terminated test is not considered as completed (user...etc... Arguments and temporary variables: exception: Exception handlerAction: [ :err | self handleException: err ] Receiver's instance variables: outerContext: TestExecutionEnvironment>>runTestCaseUnderWatchdog: startpc: a CompiledBlock: [ [aTestCase runCase] ensure: [ "Terminated test...etc... numArgs: 0 receiver: a TestExecutionEnvironment TestExecutionEnvironment>>runTestCaseUnderWatchdog: Receiver: a TestExecutionEnvironment Arguments and temporary variables: aTestCase: SessionErrorHandlingTest>>#testErrorHandledIfExceptionSignaledAtShut...etc... Receiver's instance variables: watchDogProcess: a Process in [self schedule. "It is critical that the followi...etc... watchDogSemaphore: a Semaphore(a Process in [self schedule. "It is critical th...etc... testCase: SessionErrorHandlingTest>>#testErrorHandledIfExceptionSignaledAtShutd...etc... maxTimeForTest: 0:00:00:10 testCompleted: false services: an OrderedCollection(a ProcessMonitorTestService) mainTestProcess: a Process in nil [self runTestCaseUnderWatchdog: aTestCase] in TestExecutionEnvironment>>runTestCase: Receiver: a TestExecutionEnvironment Arguments and temporary variables: aTestCase: SessionErrorHandlingTest>>#testErrorHandledIfExceptionSignaledAtShut...etc... Receiver's instance variables: watchDogProcess: a Process in [self schedule. "It is critical that the followi...etc... watchDogSemaphore: a Semaphore(a Process in [self schedule. "It is critical th...etc... testCase: SessionErrorHandlingTest>>#testErrorHandledIfExceptionSignaledAtShutd...etc... maxTimeForTest: 0:00:00:10 testCompleted: false services: an OrderedCollection(a ProcessMonitorTestService) mainTestProcess: a Process in nil FullBlockClosure(BlockClosure)>>ensure: Receiver: [self runTestCaseUnderWatchdog: aTestCase] Arguments and temporary variables: aBlock: [ testCompleted := true. watchDogSemaphore signal. "signal that te...etc... complete: nil returnValue: nil Receiver's instance variables: outerContext: TestExecutionEnvironment>>runTestCase: startpc: a CompiledBlock: [self runTestCaseUnderWatchdog: aTestCase] numArgs: 0 receiver: a TestExecutionEnvironment TestExecutionEnvironment>>runTestCase: Receiver: a TestExecutionEnvironment Arguments and temporary variables: aTestCase: SessionErrorHandlingTest>>#testErrorHandledIfExceptionSignaledAtShut...etc... Receiver's instance variables: watchDogProcess: a Process in [self schedule. "It is critical that the followi...etc... watchDogSemaphore: a Semaphore(a Process in [self schedule. "It is critical th...etc... testCase: SessionErrorHandlingTest>>#testErrorHandledIfExceptionSignaledAtShutd...etc... maxTimeForTest: 0:00:00:10 testCompleted: false services: an OrderedCollection(a ProcessMonitorTestService) mainTestProcess: a Process in nil CurrentExecutionEnvironment class>>runTestCase: Receiver: CurrentExecutionEnvironment Arguments and temporary variables: aTestCase: SessionErrorHandlingTest>>#testErrorHandledIfExceptionSignaledAtShut...etc... Receiver's instance variables: superclass: ProcessLocalVariable methodDict: a MethodDictionary(#default->CurrentExecutionEnvironment>>#default ...etc... format: 65537 layout: a FixedLayout organization: a ClassOrganization subclasses: nil name: #CurrentExecutionEnvironment classPool: a Dictionary() sharedPools: an OrderedCollection() environment: a SystemDictionary(lots of globals) category: #'Kernel-Processes' soleInstance: a CurrentExecutionEnvironment SessionErrorHandlingTest(TestCase)>>runCaseManaged Receiver: SessionErrorHandlingTest>>#testErrorHandledIfExceptionSignaledAtShutdownWhenStartupUiManag...etc... Arguments and temporary variables: x Receiver's instance variables: testSelector: #testErrorHandledIfExceptionSignaledAtShutdownWhenStartupUiManage...etc... expectedFails: nil manager: a SessionManager session: a TestWorkingSession [aTestCase runCaseManaged. aTestCase shouldPass ifTrue: [ self recordPassOf: aTestCase ] ifFalse: [ self recordUnexpectedPassOf: aTestCase ] ] in [ [aTestCase runCaseManaged. aTestCase shouldPass ifTrue: [ self recordPassOf: aTestCase ] ifFalse: [ self recordUnexpectedPassOf: aTestCase ] ] on: Exception do: [ :exc | exc recordResultOf: aTestCase inHDTestReport: self ] ] in HDTestReport>>runCase: Receiver: a HDTestReport Arguments and temporary variables: aTestCase: SessionErrorHandlingTest>>#testErrorHandledIfExceptionSignaledAtShut...etc... Receiver's instance variables: suite: a TestSuite stream: a WriteStream suitePosition: 95 suiteTime: 0:00:00:00 suiteFailures: 0 suiteErrors: 0 nodeName: #'Unix64.' stageName: 'Tests-Linux-x86_64-CoInterpreter' progressFileName: 'progress.log' progressStream: a ZnCharacterWriteStream shouldSerializeError: false FullBlockClosure(BlockClosure)>>on:do: Receiver: [aTestCase runCaseManaged. aTestCase shouldPass ifTrue: [ self recordPassOf: aTest...etc... Arguments and temporary variables: exception: Exception handlerAction: [ :exc | exc recordResultOf: aTestCase inHDTestReport: sel...etc... Receiver's instance variables: outerContext: [ [aTestCase runCaseManaged. aTestCase shouldPass ifT...etc... startpc: a CompiledBlock: [aTestCase runCaseManaged. aTestCase shouldPass ...etc... numArgs: 0 receiver: a HDTestReport [ [aTestCase runCaseManaged. aTestCase shouldPass ifTrue: [ self recordPassOf: aTestCase ] ifFalse: [ self recordUnexpectedPassOf: aTestCase ] ] on: Exception do: [ :exc | exc recordResultOf: aTestCase inHDTestReport: self ] ] in HDTestReport>>runCase: Receiver: a HDTestReport Arguments and temporary variables: aTestCase: SessionErrorHandlingTest>>#testErrorHandledIfExceptionSignaledAtShut...etc... Receiver's instance variables: suite: a TestSuite stream: a WriteStream suitePosition: 95 suiteTime: 0:00:00:00 suiteFailures: 0 suiteErrors: 0 nodeName: #'Unix64.' stageName: 'Tests-Linux-x86_64-CoInterpreter' progressFileName: 'progress.log' progressStream: a ZnCharacterWriteStream shouldSerializeError: false Time class>>microsecondsToRun: Receiver: Time Arguments and temporary variables: timedBlock: [ [aTestCase runCaseManaged. aTestCase shouldPass ifTru...etc... initialMicroseconds: 3857632837604634 Receiver's instance variables: superclass: Magnitude methodDict: a MethodDictionary(#<->Time>>#< #=->Time>>#= #addSeconds:->Time>>#a...etc... format: 65538 layout: a FixedLayout organization: a ClassOrganization subclasses: nil name: #Time classPool: a Dictionary() sharedPools: an OrderedCollection(ChronologyConstants) environment: a SystemDictionary(lots of globals) category: #'Kernel-Chronology' Time class>>millisecondsToRun: Receiver: Time Arguments and temporary variables: timedBlock: [ [aTestCase runCaseManaged. aTestCase shouldPass ifTru...etc... Receiver's instance variables: superclass: Magnitude methodDict: a MethodDictionary(#<->Time>>#< #=->Time>>#= #addSeconds:->Time>>#a...etc... format: 65538 layout: a FixedLayout organization: a ClassOrganization subclasses: nil name: #Time classPool: a Dictionary() sharedPools: an OrderedCollection(ChronologyConstants) environment: a SystemDictionary(lots of globals) category: #'Kernel-Chronology' FullBlockClosure(BlockClosure)>>timeToRun Receiver: [ [aTestCase runCaseManaged. aTestCase shouldPass ifTrue: [ self recordPassOf:...etc... Arguments and temporary variables: x Receiver's instance variables: outerContext: HDTestReport>>runCase: startpc: a CompiledBlock: [ [aTestCase runCaseManaged. aTestCase shouldP...etc... numArgs: 0 receiver: a HDTestReport [ time := aBlock timeToRun ] in HDTestReport>>reportTestCase:runBlock: Receiver: a HDTestReport Arguments and temporary variables: aTestCase: SessionErrorHandlingTest>>#testErrorHandledIfExceptionSignaledAtShut...etc... aBlock: [ [aTestCase runCaseManaged. aTestCase shouldPass ifTrue: [...etc... testLog: nil time: nil Receiver's instance variables: suite: a TestSuite stream: a WriteStream suitePosition: 95 suiteTime: 0:00:00:00 suiteFailures: 0 suiteErrors: 0 nodeName: #'Unix64.' stageName: 'Tests-Linux-x86_64-CoInterpreter' progressFileName: 'progress.log' progressStream: a ZnCharacterWriteStream shouldSerializeError: false FullBlockClosure(BlockClosure)>>ensure: Receiver: [ time := aBlock timeToRun ] Arguments and temporary variables: aBlock: [ stream := currentStream ] complete: nil returnValue: nil Receiver's instance variables: outerContext: HDTestReport>>reportTestCase:runBlock: startpc: a CompiledBlock: [ time := aBlock timeToRun ] numArgs: 0 receiver: a HDTestReport HDTestReport>>newLogDuring: Receiver: a HDTestReport Arguments and temporary variables: aBlock: [ time := aBlock timeToRun ] currentStream: a ZnCharacterWriteStream tempStream: a WriteStream Receiver's instance variables: suite: a TestSuite stream: a WriteStream suitePosition: 95 suiteTime: 0:00:00:00 suiteFailures: 0 suiteErrors: 0 nodeName: #'Unix64.' stageName: 'Tests-Linux-x86_64-CoInterpreter' progressFileName: 'progress.log' progressStream: a ZnCharacterWriteStream shouldSerializeError: false --- The full stack --- [ ZeroDivide signal ] in SessionErrorHandlingTest>>testErrorHandledIfExceptionSignaledAtShutdownWhenStartupUiManagerActive TestSessionHandler>>shutdown: [ :each | each shutdown: isImageQuitting ] in TestWorkingSession(WorkingSession)>>runShutdown: [aBlock value: each] in [ :each | [aBlock value: each] on: Exception do: [ :error | self errorHandler handleError: error] ] in TestWorkingSession(WorkingSession)>>runList:do: FullBlockClosure(BlockClosure)>>on:do: [ :each | [aBlock value: each] on: Exception do: [ :error | self errorHandler handleError: error] ] in TestWorkingSession(WorkingSession)>>runList:do: Array(SequenceableCollection)>>do: TestWorkingSession(WorkingSession)>>runList:do: TestWorkingSession(WorkingSession)>>runShutdown: TestWorkingSession(WorkingSession)>>stop: [ session stop: false ] in SessionErrorHandlingTest>>testErrorHandledIfExceptionSignaledAtShutdownWhenStartupUiManagerActive [aBlock value. false] in SessionErrorHandlingTest(TestAsserter)>>executeShould:inScopeOf: FullBlockClosure(BlockClosure)>>on:do: SessionErrorHandlingTest(TestAsserter)>>executeShould:inScopeOf: SessionErrorHandlingTest(TestAsserter)>>shouldnt:raise: SessionErrorHandlingTest>>testErrorHandledIfExceptionSignaledAtShutdownWhenStartupUiManagerActive SessionErrorHandlingTest(TestCase)>>performTest [self setUp. self performTest] in SessionErrorHandlingTest(TestCase)>>runCase FullBlockClosure(BlockClosure)>>ensure: SessionErrorHandlingTest(TestCase)>>runCase [aTestCase runCase] in [ [aTestCase runCase] ensure: [ "Terminated test is not considered as completed (user just closed a debugger for example)" mainTestProcess isTerminating ifFalse: [ self handleCompletedTest ]] ] in TestExecutionEnvironment>>runTestCaseUnderWatchdog: FullBlockClosure(BlockClosure)>>ensure: [ [aTestCase runCase] ensure: [ "Terminated test is not considered as completed (user just closed a debugger for example)" mainTestProcess isTerminating ifFalse: [ self handleCompletedTest ]] ] in TestExecutionEnvironment>>runTestCaseUnderWatchdog: FullBlockClosure(BlockClosure)>>on:do: TestExecutionEnvironment>>runTestCaseUnderWatchdog: [self runTestCaseUnderWatchdog: aTestCase] in TestExecutionEnvironment>>runTestCase: FullBlockClosure(BlockClosure)>>ensure: TestExecutionEnvironment>>runTestCase: CurrentExecutionEnvironment class>>runTestCase: SessionErrorHandlingTest(TestCase)>>runCaseManaged [aTestCase runCaseManaged. aTestCase shouldPass ifTrue: [ self recordPassOf: aTestCase ] ifFalse: [ self recordUnexpectedPassOf: aTestCase ] ] in [ [aTestCase runCaseManaged. aTestCase shouldPass ifTrue: [ self recordPassOf: aTestCase ] ifFalse: [ self recordUnexpectedPassOf: aTestCase ] ] on: Exception do: [ :exc | exc recordResultOf: aTestCase inHDTestReport: self ] ] in HDTestReport>>runCase: FullBlockClosure(BlockClosure)>>on:do: [ [aTestCase runCaseManaged. aTestCase shouldPass ifTrue: [ self recordPassOf: aTestCase ] ifFalse: [ self recordUnexpectedPassOf: aTestCase ] ] on: Exception do: [ :exc | exc recordResultOf: aTestCase inHDTestReport: self ] ] in HDTestReport>>runCase: Time class>>microsecondsToRun: Time class>>millisecondsToRun: FullBlockClosure(BlockClosure)>>timeToRun [ time := aBlock timeToRun ] in HDTestReport>>reportTestCase:runBlock: FullBlockClosure(BlockClosure)>>ensure: HDTestReport>>newLogDuring: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - HDTestReport>>reportTestCase:runBlock: HDTestReport>>runCase: SessionErrorHandlingTest(TestCase)>>run: [ :each | each run: self ] in [ suite tests do: [ :each | each run: self ] ] in HDTestReport>>runAll OrderedCollection>>do: [ suite tests do: [ :each | each run: self ] ] in HDTestReport>>runAll [ self value: anExecutionEnvironment. anExecutionEnvironment activated. aBlock value ] in CurrentExecutionEnvironment class>>activate:for: FullBlockClosure(BlockClosure)>>ensure: CurrentExecutionEnvironment class>>activate:for: TestExecutionEnvironment(ExecutionEnvironment)>>beActiveDuring: DefaultExecutionEnvironment>>runTestsBy: CurrentExecutionEnvironment class>>runTestsBy: HDTestReport>>runAll [ self runAll ] in [ self setUp. suiteTime := [ self runAll ] timeToRun ] in [ [ self setUp. suiteTime := [ self runAll ] timeToRun ] ensure: [ self tearDown ] ] in HDTestReport>>run Time class>>microsecondsToRun: Time class>>millisecondsToRun: FullBlockClosure(BlockClosure)>>timeToRun [ self setUp. suiteTime := [ self runAll ] timeToRun ] in [ [ self setUp. suiteTime := [ self runAll ] timeToRun ] ensure: [ self tearDown ] ] in HDTestReport>>run FullBlockClosure(BlockClosure)>>ensure: [ [ self setUp. suiteTime := [ self runAll ] timeToRun ] ensure: [ self tearDown ] ] in HDTestReport>>run FullBlockClosure(BlockClosure)>>ensure: Author>>ifUnknownAuthorUse:during: HDTestReport>>run HDTestReport>>runSuite: HDTestReport class>>runSuite: HDTestReport class>>runClasses:named: HDTestReport class>>runPackage: [ :each | self runPackage: each ] in HDTestReport class(HDReport class)>>runPackages: [:each | each ifNotNil: [newSet add: (aBlock value: each enclosedElement)]] in Set>>collect: Array(SequenceableCollection)>>do: Set>>collect: HDTestReport class(HDReport class)>>runPackages: TestCommandLineHandler>>runPackages TestCommandLineHandler>>activate TestCommandLineHandler class(CommandLineHandler class)>>activateWith: [ aCommandLinehandler activateWith: commandLine ] in PharoCommandLineHandler(BasicCommandLineHandler)>>activateSubCommand: FullBlockClosure(BlockClosure)>>on:do: PharoCommandLineHandler(BasicCommandLineHandler)>>activateSubCommand: PharoCommandLineHandler(BasicCommandLineHandler)>>handleSubcommand PharoCommandLineHandler(BasicCommandLineHandler)>>handleArgument: [ self handleArgument: self firstArgument ] in [ [ self handleArgument: self firstArgument ] on: Exit do: [ :exit | "If the command line is protected by password, we just exit the image because in non-headless mode the handleExit will let the image open. If the password protection is enabled, it is to avoid to let the access to the image." self class commandLinePasswordManager hasPasswordSet ifTrue: [ Smalltalk snapshot: false andQuit: true ]. self handleExit: exit ] ] in BasicCommandLineHandler>>activate FullBlockClosure(BlockClosure)>>on:do: [ [ self handleArgument: self firstArgument ] on: Exit do: [ :exit | "If the command line is protected by password, we just exit the image because in non-headless mode the handleExit will let the image open. If the password protection is enabled, it is to avoid to let the access to the image." self class commandLinePasswordManager hasPasswordSet ifTrue: [ Smalltalk snapshot: false andQuit: true ]. self handleExit: exit ] ] in BasicCommandLineHandler>>activate [self value. Processor terminateActive] in FullBlockClosure(BlockClosure)>>newProcess ------------------------------------------------------------------------------- =============================================================================== Notice: There are references to, #ClassForTestToBeDeleted285Renamed from Undeclared. Check them after this change. =============================================================================== =============================================================================== Notice: There are references to, #ClassForTestToBeDeleted291 from Undeclared. Check them after this change. =============================================================================== =============================================================================== Notice: There are references to, #ClassForTestToBeDeleted293 from Undeclared. Check them after this change. =============================================================================== =============================================================================== Notice: There are references to, #ClassForTestToBeDeleted295 from Undeclared. Check them after this change. =============================================================================== =============================================================================== Notice: There are references to, #ClassForTestToBeDeleted297 from Undeclared. Check them after this change. =============================================================================== THERE_BE_DRAGONS_HERE Halt 30 March 2023 2:42:27.794794 pm VM: unix - x86_64 - linux-gnu - CoInterpreter VMMaker-tonel.1 uuid: 630a0ead-7db4-0d00-9d99-2f3a068a2fce Mar 30 2023 StackToRegisterMappingCogit VMMaker-tonel.1 uuid: 630a0ead-7db4-0d00-9d99-2f3a068a2fce Mar 30 2023 v9.0.22 - Commit: 421845e - Date: 2023-03-30 09:49:26 +0200 Image: Pharo9.0.0 [Build information: Pharo-9.0.0+build.1580.sha.e1bb0fb7b6c4aaadd5106d19b58633c94dff1b69 (64 Bit)] FullBlockClosure(Object)>>halt Receiver: [ :item | item printDebugOn: aStream. aStream cr ] Arguments and temporary variables: x Receiver's instance variables: outerContext: Context>>debugStack:on: startpc: a CompiledBlock: [ :item | item printDebugOn: aStream. aStream ...etc... numArgs: 1 receiver: FullBlockClosure(Object)>>halt FullBlockClosure(BlockClosure)>>printOn: Receiver: [ :item | item printDebugOn: aStream. aStream cr ] Arguments and temporary variables: aStream: a ZnNewLineWriterStream Receiver's instance variables: outerContext: Context>>debugStack:on: startpc: a CompiledBlock: [ :item | item printDebugOn: aStream. aStream ...etc... numArgs: 1 receiver: FullBlockClosure(Object)>>halt Context>>printOn: Receiver: [ :item | item printDebugOn: aStream. aStream cr ] in Context>>debugStack:on: Arguments and temporary variables: aStream: a ZnNewLineWriterStream outerContext: Context>>debugStack:on: Receiver's instance variables: sender: OrderedCollection>>do: pc: 36 stackp: 2 method: a CompiledBlock: [ :item | item printDebugOn: aStream. aStream c...etc... closureOrNil: [ :item | item printDebugOn: aStream. aStream cr ] receiver: FullBlockClosure(Object)>>halt Context>>printDebugOn: Receiver: [ :item | item printDebugOn: aStream. aStream cr ] in Context>>debugStack:on: Arguments and temporary variables: aStream: a ZnNewLineWriterStream blockSource: nil blockSourceSize: nil Receiver's instance variables: sender: OrderedCollection>>do: pc: 36 stackp: 2 method: a CompiledBlock: [ :item | item printDebugOn: aStream. aStream c...etc... closureOrNil: [ :item | item printDebugOn: aStream. aStream cr ] receiver: FullBlockClosure(Object)>>halt [ :item | item printDebugOn: aStream. aStream cr ] in Context>>debugStack:on: Receiver: FullBlockClosure(Object)>>halt Arguments and temporary variables: stackSize: 30 aStream: a ZnNewLineWriterStream item: [ :item | item printDebugOn: aStream. aStream cr ] in Context>>deb...etc... Receiver's instance variables: sender: FullBlockClosure(BlockClosure)>>printOn: pc: 43 stackp: 0 method: Object>>#halt closureOrNil: nil receiver: [ :item | item printDebugOn: aStream. aStream cr ] OrderedCollection>>do: Receiver: an OrderedCollection(FullBlockClosure(Object)>>halt FullBlockClosure(BlockClosure)>>printO...etc... Arguments and temporary variables: aBlock: [ :item | item printDebugOn: aStream. aStream cr ] index: 5 Receiver's instance variables: array: an Array(FullBlockClosure(Object)>>halt FullBlockClosure(BlockClosure)>>...etc... firstIndex: 1 lastIndex: 30 Context>>debugStack:on: Receiver: FullBlockClosure(Object)>>halt Arguments and temporary variables: stackSize: 30 aStream: a ZnNewLineWriterStream Receiver's instance variables: sender: FullBlockClosure(BlockClosure)>>printOn: pc: 43 stackp: 0 method: Object>>#halt closureOrNil: nil receiver: [ :item | item printDebugOn: aStream. aStream cr ] Context>>shortDebugStackOn: Receiver: FullBlockClosure(Object)>>halt Arguments and temporary variables: aStream: a ZnNewLineWriterStream Receiver's instance variables: sender: FullBlockClosure(BlockClosure)>>printOn: pc: 43 stackp: 0 method: Object>>#halt closureOrNil: nil receiver: [ :item | item printDebugOn: aStream. aStream cr ] [ :stderr| "install the line end conversion and force initialize the converter" stderr nextPutAll: errMsg; cr; "reset the color" nextPut: Character escape; nextPutAll: '[0m'. aContext shortDebugStackOn: stderr.] in SmalltalkImage>>logError:inContext: Receiver: Smalltalk Arguments and temporary variables: errMsg: 'Halt' aContext: FullBlockClosure(Object)>>halt stderr: a ZnNewLineWriterStream Receiver's instance variables: globals: a SystemDictionary(lots of globals) specialObjectsArray: an Array(nil false true #Processor->Processor Bitmap Small...etc... vm: a VirtualMachine [ "install the line end conversion and force initialize the converter" stderr := ZnNewLineWriterStream on: (ZnCharacterWriteStream on: Stdio stderr encoding: 'utf8'). "log in red" stderr nextPut: Character escape; nextPutAll: '[31m'. "rund the loggin block" aBlock value: stderr. "reset the coloring" stderr nextPut: Character escape; nextPutAll: '[0m'. ] in SmalltalkImage>>logStdErrorDuring: Receiver: Smalltalk Arguments and temporary variables: aBlock: [ :stderr| "install the line end conversion and force initialize the ...etc... stderr: a ZnNewLineWriterStream Receiver's instance variables: globals: a SystemDictionary(lots of globals) specialObjectsArray: an Array(nil false true #Processor->Processor Bitmap Small...etc... vm: a VirtualMachine FullBlockClosure(BlockClosure)>>on:do: Receiver: [ "install the line end conversion and force initialize the converter" stderr := ZnNew...etc... Arguments and temporary variables: exception: Error handlerAction: [ :e| "we don't care if the logging to stdout fails..." ] Receiver's instance variables: outerContext: SmalltalkImage>>logStdErrorDuring: startpc: a CompiledBlock: [ "install the line end conversion and force initia...etc... numArgs: 0 receiver: Smalltalk SmalltalkImage>>logStdErrorDuring: Receiver: Smalltalk Arguments and temporary variables: stderr: a ZnNewLineWriterStream aBlock: [ :stderr| "install the line end conversion and force initialize the ...etc... Receiver's instance variables: globals: a SystemDictionary(lots of globals) specialObjectsArray: an Array(nil false true #Processor->Processor Bitmap Small...etc... vm: a VirtualMachine SmalltalkImage>>logError:inContext: Receiver: Smalltalk Arguments and temporary variables: errMsg: 'Halt' aContext: FullBlockClosure(Object)>>halt Receiver's instance variables: globals: a SystemDictionary(lots of globals) specialObjectsArray: an Array(nil false true #Processor->Processor Bitmap Small...etc... vm: a VirtualMachine [ Smalltalk logError: aString inContext: aContext. " Print stacks of all current processes " Smalltalk logDuring: [:logger | logger nextPutAll: 'Processes and their stacks: ';cr. Process allInstances do: [:each | | ctx | logger nextPutAll: 'Process: '; print: each; cr; nextPutAll: ' stack:'; cr; cr. ctx := each isActiveProcess ifTrue: [ thisContext sender ] ifFalse: [ each suspendedContext ]. ctx ifNotNil: [ (ctx stackOfSize: 20) do: [:s | logger print: s; cr ]]. logger nextPutAll: '------------------------------'; cr; cr. ]]. ] in NonInteractiveUIManager(CommandLineUIManager)>>quitFrom:withMessage: Receiver: a NonInteractiveUIManager Arguments and temporary variables: aContext: FullBlockClosure(Object)>>halt aString: 'Halt' Receiver's instance variables: doNotQuitOnRestart: false uiManager: nil FullBlockClosure(BlockClosure)>>ensure: Receiver: [ Smalltalk logError: aString inContext: aContext. " Print stacks of all current ...etc... Arguments and temporary variables: aBlock: [ self exitFailure ] complete: nil returnValue: nil Receiver's instance variables: outerContext: NonInteractiveUIManager(CommandLineUIManager)>>quitFrom:withMessa...etc... startpc: a CompiledBlock: [ Smalltalk logError: aString inContext: aContex...etc... numArgs: 0 receiver: a NonInteractiveUIManager NonInteractiveUIManager(CommandLineUIManager)>>quitFrom:withMessage: Receiver: a NonInteractiveUIManager Arguments and temporary variables: aContext: FullBlockClosure(Object)>>halt aString: 'Halt' Receiver's instance variables: doNotQuitOnRestart: false uiManager: nil NonInteractiveUIManager(CommandLineUIManager)>>unhandledErrorDefaultAction: Receiver: a NonInteractiveUIManager Arguments and temporary variables: anException: Halt Receiver's instance variables: doNotQuitOnRestart: false uiManager: nil Halt(Exception)>>unhandledErrorAction Receiver: Halt Arguments and temporary variables: x Receiver's instance variables: messageText: nil tag: nil signaler: [ :item | item printDebugOn: aStream. aStream cr ] signalContext: Halt(Exception)>>signal handlerContext: nil outerContext: nil Halt(UnhandledException)>>defaultAction Receiver: Halt Arguments and temporary variables: x Receiver's instance variables: messageText: nil tag: nil signaler: [ :item | item printDebugOn: aStream. aStream cr ] signalContext: Halt(Exception)>>signal handlerContext: nil outerContext: nil UndefinedObject>>handleSignal: Receiver: nil Arguments and temporary variables: exception: Halt Receiver's instance variables: nil Context>>handleSignal: Receiver: FullBlockClosure(BlockClosure)>>on:do: Arguments and temporary variables: exception: Halt Receiver's instance variables: sender: FullBlockClosure(BlockClosure)>>onErrorDo: pc: 30 stackp: 2 method: BlockClosure>>#on:do: closureOrNil: nil receiver: [aWorld displayWorld] Context>>handleSignal: Receiver: FullBlockClosure(BlockClosure)>>on:do: Arguments and temporary variables: exception: Halt Receiver's instance variables: sender: StandardWindow(Morph)>>fullDrawOn: pc: 30 stackp: 2 method: BlockClosure>>#on:do: closureOrNil: nil receiver: [ "Note: At some point we should generalize this into some sort of ...etc... Context>>handleSignal: Receiver: FullBlockClosure(BlockClosure)>>on:do: Arguments and temporary variables: exception: Halt Receiver's instance variables: sender: RubScrolledTextMorph(Morph)>>fullDrawOn: pc: 30 stackp: 2 method: BlockClosure>>#on:do: closureOrNil: nil receiver: [ "Note: At some point we should generalize this into some sort of ...etc... Context>>handleSignal: Receiver: FullBlockClosure(BlockClosure)>>on:do: Arguments and temporary variables: exception: Halt Receiver's instance variables: sender: RubTextScrollPane(Morph)>>fullDrawOn: pc: 30 stackp: 2 method: BlockClosure>>#on:do: closureOrNil: nil receiver: [ "Note: At some point we should generalize this into some sort of ...etc... Context>>handleSignal: Receiver: FullBlockClosure(BlockClosure)>>on:do: Arguments and temporary variables: exception: Halt Receiver's instance variables: sender: TransformWithLayoutMorph(Morph)>>fullDrawOn: pc: 30 stackp: 2 method: BlockClosure>>#on:do: closureOrNil: nil receiver: [ "Note: At some point we should generalize this into some sort of ...etc... Context>>handleSignal: Receiver: FullBlockClosure(BlockClosure)>>on:do: Arguments and temporary variables: exception: Halt Receiver's instance variables: sender: SmalltalkImage>>logStdErrorDuring: pc: 30 stackp: 2 method: BlockClosure>>#on:do: closureOrNil: nil receiver: [ "install the line end conversion and force initialize the convert...etc... Context>>handleSignal: Receiver: FullBlockClosure(BlockClosure)>>on:do: Arguments and temporary variables: exception: Halt Receiver's instance variables: sender: SmalltalkImage>>logStdErrorDuring: pc: 30 stackp: 2 method: BlockClosure>>#on:do: closureOrNil: nil receiver: [ "install the line end conversion and force initialize the convert...etc... Context>>handleSignal: Receiver: FullBlockClosure(BlockClosure)>>on:do: Arguments and temporary variables: exception: Halt Receiver's instance variables: sender: SmalltalkImage>>logStdErrorDuring: pc: 30 stackp: 2 method: BlockClosure>>#on:do: closureOrNil: nil receiver: [ "install the line end conversion and force initialize the convert...etc... Context>>handleSignal: Receiver: FullBlockClosure(BlockClosure)>>on:do: Arguments and temporary variables: exception: Halt Receiver's instance variables: sender: SmalltalkImage>>logStdErrorDuring: pc: 30 stackp: 2 method: BlockClosure>>#on:do: closureOrNil: nil receiver: [ "install the line end conversion and force initialize the convert...etc... Context>>handleSignal: Receiver: FullBlockClosure(BlockClosure)>>on:do: Arguments and temporary variables: exception: Halt Receiver's instance variables: sender: SmalltalkImage>>logStdErrorDuring: pc: 30 stackp: 2 method: BlockClosure>>#on:do: closureOrNil: nil receiver: [ "install the line end conversion and force initialize the convert...etc... Context>>handleSignal: Receiver: FullBlockClosure(BlockClosure)>>on:do: Arguments and temporary variables: exception: Halt Receiver's instance variables: sender: SmalltalkImage>>logStdErrorDuring: pc: 30 stackp: 2 method: BlockClosure>>#on:do: closureOrNil: nil receiver: [ "install the line end conversion and force initialize the convert...etc... Context>>handleSignal: Receiver: FullBlockClosure(BlockClosure)>>on:do: Arguments and temporary variables: exception: Halt Receiver's instance variables: sender: SmalltalkImage>>logStdErrorDuring: pc: 30 stackp: 2 method: BlockClosure>>#on:do: closureOrNil: nil receiver: [ "install the line end conversion and force initialize the convert...etc... Context>>handleSignal: Receiver: FullBlockClosure(BlockClosure)>>on:do: Arguments and temporary variables: exception: Halt Receiver's instance variables: sender: SmalltalkImage>>logStdErrorDuring: pc: 30 stackp: 2 method: BlockClosure>>#on:do: closureOrNil: nil receiver: [ "install the line end conversion and force initialize the convert...etc... Context>>handleSignal: Receiver: FullBlockClosure(BlockClosure)>>on:do: Arguments and temporary variables: exception: Halt Receiver's instance variables: sender: SmalltalkImage>>logStdErrorDuring: pc: 30 stackp: 2 method: BlockClosure>>#on:do: closureOrNil: nil receiver: [ "install the line end conversion and force initialize the convert...etc... Context>>handleSignal: Receiver: FullBlockClosure(BlockClosure)>>on:do: Arguments and temporary variables: exception: Halt Receiver's instance variables: sender: SmalltalkImage>>logStdErrorDuring: pc: 30 stackp: 2 method: BlockClosure>>#on:do: closureOrNil: nil receiver: [ "install the line end conversion and force initialize the convert...etc... Context>>handleSignal: Receiver: FullBlockClosure(BlockClosure)>>on:do: Arguments and temporary variables: exception: Halt Receiver's instance variables: sender: SmalltalkImage>>logStdErrorDuring: pc: 30 stackp: 2 method: BlockClosure>>#on:do: closureOrNil: nil receiver: [ "install the line end conversion and force initialize the convert...etc... Context>>handleSignal: Receiver: FullBlockClosure(BlockClosure)>>on:do: Arguments and temporary variables: exception: Halt Receiver's instance variables: sender: SmalltalkImage>>logStdErrorDuring: pc: 30 stackp: 2 method: BlockClosure>>#on:do: closureOrNil: nil receiver: [ "install the line end conversion and force initialize the convert...etc... Context>>handleSignal: Receiver: FullBlockClosure(BlockClosure)>>on:do: Arguments and temporary variables: exception: Halt Receiver's instance variables: sender: SmalltalkImage>>logStdErrorDuring: pc: 30 stackp: 2 method: BlockClosure>>#on:do: closureOrNil: nil receiver: [ "install the line end conversion and force initialize the convert...etc... Context>>handleSignal: Receiver: FullBlockClosure(BlockClosure)>>on:do: Arguments and temporary variables: exception: Halt Receiver's instance variables: sender: SmalltalkImage>>logStdErrorDuring: pc: 30 stackp: 2 method: BlockClosure>>#on:do: closureOrNil: nil receiver: [ "install the line end conversion and force initialize the convert...etc... --- The full stack --- FullBlockClosure(Object)>>halt FullBlockClosure(BlockClosure)>>printOn: Context>>printOn: Context>>printDebugOn: [ :item | item printDebugOn: aStream. aStream cr ] in Context>>debugStack:on: OrderedCollection>>do: Context>>debugStack:on: Context>>shortDebugStackOn: [ :stderr| "install the line end conversion and force initialize the converter" stderr nextPutAll: errMsg; cr; "reset the color" nextPut: Character escape; nextPutAll: '[0m'. aContext shortDebugStackOn: stderr.] in SmalltalkImage>>logError:inContext: [ "install the line end conversion and force initialize the converter" stderr := ZnNewLineWriterStream on: (ZnCharacterWriteStream on: Stdio stderr encoding: 'utf8'). "log in red" stderr nextPut: Character escape; nextPutAll: '[31m'. "rund the loggin block" aBlock value: stderr. "reset the coloring" stderr nextPut: Character escape; nextPutAll: '[0m'. ] in SmalltalkImage>>logStdErrorDuring: FullBlockClosure(BlockClosure)>>on:do: SmalltalkImage>>logStdErrorDuring: SmalltalkImage>>logError:inContext: [ Smalltalk logError: aString inContext: aContext. " Print stacks of all current processes " Smalltalk logDuring: [:logger | logger nextPutAll: 'Processes and their stacks: ';cr. Process allInstances do: [:each | | ctx | logger nextPutAll: 'Process: '; print: each; cr; nextPutAll: ' stack:'; cr; cr. ctx := each isActiveProcess ifTrue: [ thisContext sender ] ifFalse: [ each suspendedContext ]. ctx ifNotNil: [ (ctx stackOfSize: 20) do: [:s | logger print: s; cr ]]. logger nextPutAll: '------------------------------'; cr; cr. ]]. ] in NonInteractiveUIManager(CommandLineUIManager)>>quitFrom:withMessage: FullBlockClosure(BlockClosure)>>ensure: NonInteractiveUIManager(CommandLineUIManager)>>quitFrom:withMessage: NonInteractiveUIManager(CommandLineUIManager)>>unhandledErrorDefaultAction: Halt(Exception)>>unhandledErrorAction Halt(UnhandledException)>>defaultAction UndefinedObject>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: -- and more not shown --------------------------------------------------------------------------------- Processes and their stacks: Process: a Process in InputEventFetcher>>waitForInput stack: InputEventFetcher>>waitForInput InputEventFetcher>>eventLoop Processor in InputEventFetcher>>installEventLoop [ self value. Processor terminateActive ] asContext in BlockClosure>>newProcess ------------------------------ Process: a Process in ProcessorScheduler class>>idleProcess stack: ProcessorScheduler class>>idleProcess [self idleProcess] in ProcessorScheduler class>>startUp [self value. Processor terminateActive] in FullBlockClosure(BlockClosure)>>newProcess ------------------------------ Process: a Process in WeakArray class>>finalizationProcess stack: WeakArray class>>finalizationProcess [self finalizationProcess] in WeakArray class>>restartFinalizationProcess [self value. Processor terminateActive] in FullBlockClosure(BlockClosure)>>newProcess ------------------------------ Process: a Process in TestExecutionEnvironment>>runTestCase: stack: TestExecutionEnvironment>>runTestCase: CurrentExecutionEnvironment class>>runTestCase: ObjectWithPrintingRaisingHaltTest(TestCase)>>runCaseManaged [aTestCase runCaseManaged. aTestCase shouldPass ifTrue: [ self recordPassOf: aTestCase ] ifFalse: [ self recordUnexpectedPassOf: aTestCase ] ] in [ [aTestCase runCaseManaged. aTestCase shouldPass ifTrue: [ self recordPassOf: aTestCase ] ifFalse: [ self recordUnexpectedPassOf: aTestCase ] ] on: Exception do: [ :exc | exc recordResultOf: aTestCase inHDTestReport: self ] ] in HDTestReport>>runCase: FullBlockClosure(BlockClosure)>>on:do: [ [aTestCase runCaseManaged. aTestCase shouldPass ifTrue: [ self recordPassOf: aTestCase ] ifFalse: [ self recordUnexpectedPassOf: aTestCase ] ] on: Exception do: [ :exc | exc recordResultOf: aTestCase inHDTestReport: self ] ] in HDTestReport>>runCase: Time class>>microsecondsToRun: Time class>>millisecondsToRun: FullBlockClosure(BlockClosure)>>timeToRun [ time := aBlock timeToRun ] in HDTestReport>>reportTestCase:runBlock: FullBlockClosure(BlockClosure)>>ensure: HDTestReport>>newLogDuring: HDTestReport>>reportTestCase:runBlock: HDTestReport>>runCase: ObjectWithPrintingRaisingHaltTest(TestCase)>>run: [ :each | each run: self ] in [ suite tests do: [ :each | each run: self ] ] in HDTestReport>>runAll OrderedCollection>>do: [ suite tests do: [ :each | each run: self ] ] in HDTestReport>>runAll [ self value: anExecutionEnvironment. anExecutionEnvironment activated. aBlock value ] in CurrentExecutionEnvironment class>>activate:for: FullBlockClosure(BlockClosure)>>ensure: ------------------------------ Process: a Process in [ [ true ] whileTrue: [ semaphore wait. [self executeCallback: self nextPendingCallback] on: Exception fork: [:ex | ex pass ] ] ] in TFCallbackQueue>>forkCallbackProcess stack: [ [ true ] whileTrue: [ semaphore wait. [self executeCallback: self nextPendingCallback] on: Exception fork: [:ex | ex pass ] ] ] in TFCallbackQueue>>forkCallbackProcess [self value. Processor terminateActive] in FullBlockClosure(BlockClosure)>>newProcess ------------------------------ Process: a Process in nil stack: Array(SequenceableCollection)>>do: [:logger | logger nextPutAll: 'Processes and their stacks: ';cr. Process allInstances do: [:each | | ctx | logger nextPutAll: 'Process: '; print: each; cr; nextPutAll: ' stack:'; cr; cr. ctx := each isActiveProcess ifTrue: [ thisContext sender ] ifFalse: [ each suspendedContext ]. ctx ifNotNil: [ (ctx stackOfSize: 20) do: [:s | logger print: s; cr ]]. logger nextPutAll: '------------------------------'; cr; cr. ]] in CommandLineUIManager>>quitFrom:withMessage: [ logStream := self openLog. aMonadicBlock value: logStream. ] in SmalltalkImage>>logDuring: FullBlockClosure(BlockClosure)>>ensure: SmalltalkImage>>logDuring: [ Smalltalk logError: aString inContext: aContext. " Print stacks of all current processes " Smalltalk logDuring: [:logger | logger nextPutAll: 'Processes and their stacks: ';cr. Process allInstances do: [:each | | ctx | logger nextPutAll: 'Process: '; print: each; cr; nextPutAll: ' stack:'; cr; cr. ctx := each isActiveProcess ifTrue: [ thisContext sender ] ifFalse: [ each suspendedContext ]. ctx ifNotNil: [ (ctx stackOfSize: 20) do: [:s | logger print: s; cr ]]. logger nextPutAll: '------------------------------'; cr; cr. ]]. ] in NonInteractiveUIManager(CommandLineUIManager)>>quitFrom:withMessage: FullBlockClosure(BlockClosure)>>ensure: NonInteractiveUIManager(CommandLineUIManager)>>quitFrom:withMessage: NonInteractiveUIManager(CommandLineUIManager)>>unhandledErrorDefaultAction: Halt(Exception)>>unhandledErrorAction Halt(UnhandledException)>>defaultAction UndefinedObject>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: ------------------------------ Process: a Process in DelayMicrosecondTicker>>waitForUserSignalled:orExpired: stack: DelayMicrosecondTicker>>waitForUserSignalled:orExpired: [ [runTimerEventLoop] whileTrue: [ |nowTick| "Warning! Stepping the following line may lock the Image. Use or ." ticker waitForUserSignalled: timingSemaphore orExpired: activeDelay. "Invoke the api back-ends, which set the transfer-variable to nil" suspendSemaphore ifNotNil: [ self suspendAtTimingPriority ]. delayToStart ifNotNil: [ self scheduleAtTimingPriority ]. delayToStop ifNotNil: [ self unscheduleAtTimingPriority ]. "Signal any expired delays" nowTick := ticker nowTick. [ activeDelay notNil and: [nowTick >= activeDelay resumptionTick] ] whileTrue: [ activeDelay timingPrioritySignalExpired. activeDelay := suspendedDelays removeFirstOrNil ]. ] ] in DelaySemaphoreScheduler(DelayBasicScheduler)>>runBackendLoopAtTimingPriority FullBlockClosure(BlockClosure)>>ensure: DelaySemaphoreScheduler(DelayBasicScheduler)>>runBackendLoopAtTimingPriority [ self runBackendLoopAtTimingPriority ] in DelaySemaphoreScheduler(DelayBasicScheduler)>>startTimerEventLoopPriority: [self value. Processor terminateActive] in FullBlockClosure(BlockClosure)>>newProcess ------------------------------ Process: a Process in [self value. Processor terminateActive] in FullBlockClosure(BlockClosure)>>newProcess stack: [self value. Processor terminateActive] in FullBlockClosure(BlockClosure)>>newProcess ------------------------------ Process: a Process in [ [root insertSender: thisContext. currentContext jump] on: exception do: handlerAction. Processor terminateActive] in Process>>on:do: stack: [ [root insertSender: thisContext. currentContext jump] on: exception do: handlerAction. Processor terminateActive] in Process>>on:do: ------------------------------ Process: a Process in [ [root insertSender: thisContext. currentContext jump] on: exception do: handlerAction. Processor terminateActive] in Process>>on:do: stack: [ [root insertSender: thisContext. currentContext jump] on: exception do: handlerAction. Processor terminateActive] in Process>>on:do: ------------------------------ Process: a Process in [ [root insertSender: thisContext. currentContext jump] on: exception do: handlerAction. Processor terminateActive] in Process>>on:do: stack: [ [root insertSender: thisContext. currentContext jump] on: exception do: handlerAction. Processor terminateActive] in Process>>on:do: ------------------------------ Process: a Process in [self value. Processor terminateActive] in FullBlockClosure(BlockClosure)>>newProcess stack: [self value. Processor terminateActive] in FullBlockClosure(BlockClosure)>>newProcess ------------------------------ Process: a Process in [self value. Processor terminateActive] in FullBlockClosure(BlockClosure)>>newProcess stack: [self value. Processor terminateActive] in FullBlockClosure(BlockClosure)>>newProcess ------------------------------ Process: a Process in [ [root insertSender: thisContext. currentContext jump] on: exception do: handlerAction. Processor terminateActive] in Process>>on:do: stack: [ [root insertSender: thisContext. currentContext jump] on: exception do: handlerAction. Processor terminateActive] in Process>>on:do: ------------------------------ Process: a Process in TFCallbackSameProcessRunStrategy>>waitForever stack: TFCallbackSameProcessRunStrategy>>waitForever [ self waitForever ] in TFCallbackSameProcessRunStrategy>>callbackProcess [self value. Processor terminateActive] in FullBlockClosure(BlockClosure)>>newProcess ------------------------------ Process: a Process in [self value. Processor terminateActive] in FullBlockClosure(BlockClosure)>>newProcess stack: [self value. Processor terminateActive] in FullBlockClosure(BlockClosure)>>newProcess ------------------------------ Process: a Process in [ [root insertSender: thisContext. currentContext jump] on: exception do: handlerAction. Processor terminateActive] in Process>>on:do: stack: [ [root insertSender: thisContext. currentContext jump] on: exception do: handlerAction. Processor terminateActive] in Process>>on:do: ------------------------------ Process: a Process in [self value. Processor terminateActive] in FullBlockClosure(BlockClosure)>>newProcess stack: [self value. Processor terminateActive] in FullBlockClosure(BlockClosure)>>newProcess ------------------------------ Process: a Process in [ [root insertSender: thisContext. currentContext jump] on: exception do: handlerAction. Processor terminateActive] in Process>>on:do: stack: [ [root insertSender: thisContext. currentContext jump] on: exception do: handlerAction. Processor terminateActive] in Process>>on:do: ------------------------------ Process: a Process in [self schedule. "It is critical that the following has no suspension point so that the test and the wait primitive are atomic. In addition, if the delay is no longer being waited on while entering the way we know that it is expired because the delay has already fired." beingWaitedOn ifTrue:[delaySemaphore wait] ifFalse:[expired := true]] in DelayWaitTimeout>>wait stack: [self schedule. "It is critical that the following has no suspension point so that the test and the wait primitive are atomic. In addition, if the delay is no longer being waited on while entering the way we know that it is expired because the delay has already fired." beingWaitedOn ifTrue:[delaySemaphore wait] ifFalse:[expired := true]] in DelayWaitTimeout>>wait FullBlockClosure(BlockClosure)>>ensure: DelayWaitTimeout>>wait Semaphore>>wait: [ "waiting new test case" watchDogSemaphore wait. "waiting while test completes" [timeIsGone := watchDogSemaphore wait: maxTimeForTest. testCompleted] whileFalse: [ "this subloop allows to dynamically change time limit and restart watch dog" timeIsGone ifTrue: [ "The main purpose of following condition is to ignore timeout when test is under debug. Test process is suspended only when it is debugged" mainTestProcess isSuspended ifFalse: [ mainTestProcess signalException: TestTookTooMuchTime new]] ]. ] in TestExecutionEnvironment>>watchDogLoop FullBlockClosure(BlockClosure)>>repeat TestExecutionEnvironment>>watchDogLoop [self watchDogLoop] in TestExecutionEnvironment>>startWatchDog [self value. Processor terminateActive] in FullBlockClosure(BlockClosure)>>newProcess ------------------------------ Process: a Process in Process>>doTerminationFromYourself stack: Process>>doTerminationFromYourself ------------------------------