author | Jan Vrany <jan.vrany@fit.cvut.cz> |
Wed, 04 Oct 2017 21:36:43 +0100 | |
branch | jv |
changeset 1956 | 0ff367ab6eb1 |
parent 1642 | 281f5999cc6c |
child 1974 | f2eaf05205d6 |
permissions | -rw-r--r-- |
1447 | 1 |
"{ Package: 'stx:goodies/regression' }" |
105 | 2 |
|
96 | 3 |
"{ NameSpace: RegressionTests }" |
105 | 4 |
|
5 |
TestCase subclass:#DelayTest |
|
6 |
instanceVariableNames:'' |
|
7 |
classVariableNames:'' |
|
8 |
poolDictionaries:'' |
|
181 | 9 |
category:'tests-Regression' |
96 | 10 |
! |
105 | 11 |
|
106 | 12 |
|
586 | 13 |
!DelayTest class methodsFor:'others'! |
14 |
||
15 |
version_CVS |
|
16 |
^ '$Header$' |
|
17 |
! ! |
|
18 |
||
19 |
!DelayTest class methodsFor:'queries'! |
|
20 |
||
21 |
coveredClasses |
|
22 |
^ Array with:Delay |
|
23 |
||
24 |
"Created: / 05-07-2011 / 09:51:28 / cg" |
|
25 |
! ! |
|
26 |
||
105 | 27 |
!DelayTest methodsFor:'tests'! |
28 |
||
96 | 29 |
test1 |
650 | 30 |
|n verbose| |
31 |
||
1642
281f5999cc6c
Skip tests `DelayTests` when running under CI server
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1567
diff
changeset
|
32 |
self skipIf: (OperatingSystem getEnvironment:'JOB_NAME') notNil description: 'This test depends on real time timing and thus unreliable under CI setups'. |
281f5999cc6c
Skip tests `DelayTests` when running under CI server
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1567
diff
changeset
|
33 |
|
650 | 34 |
verbose := false. |
55 | 35 |
|
96 | 36 |
[ |
1642
281f5999cc6c
Skip tests `DelayTests` when running under CI server
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1567
diff
changeset
|
37 |
n := 0. |
281f5999cc6c
Skip tests `DelayTests` when running under CI server
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1567
diff
changeset
|
38 |
[n < 10] whileTrue:[ |
281f5999cc6c
Skip tests `DelayTests` when running under CI server
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1567
diff
changeset
|
39 |
Delay waitForSeconds:0.1. |
281f5999cc6c
Skip tests `DelayTests` when running under CI server
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1567
diff
changeset
|
40 |
verbose ifTrue:[ Transcript showCR:n ]. |
281f5999cc6c
Skip tests `DelayTests` when running under CI server
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1567
diff
changeset
|
41 |
n := n + 1. |
281f5999cc6c
Skip tests `DelayTests` when running under CI server
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1567
diff
changeset
|
42 |
] |
105 | 43 |
] forkAt:(Processor activePriority - 1). |
44 |
||
696 | 45 |
self assert:(n == nil). "because the process has lower prio and should not run" |
105 | 46 |
|
696 | 47 |
Delay waitForSeconds:0.05. |
105 | 48 |
|
696 | 49 |
self assert:(n == 0). "because I should have interrupted the process" |
105 | 50 |
|
106 | 51 |
Delay waitForSeconds:1.5. |
105 | 52 |
|
696 | 53 |
self assert:(n == 10). "because process should be complete now" |
105 | 54 |
|
55 |
" |
|
56 |
self basicNew test1 |
|
57 |
" |
|
650 | 58 |
|
59 |
"Modified: / 10-01-2012 / 19:25:22 / cg" |
|
1642
281f5999cc6c
Skip tests `DelayTests` when running under CI server
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1567
diff
changeset
|
60 |
"Modified: / 26-07-2017 / 11:49:10 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
105 | 61 |
! |
62 |
||
63 |
test2 |
|
650 | 64 |
|n verbose| |
65 |
||
1642
281f5999cc6c
Skip tests `DelayTests` when running under CI server
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1567
diff
changeset
|
66 |
self skipIf: (OperatingSystem getEnvironment:'JOB_NAME') notNil description: 'This test depends on real time timing and thus unreliable under CI setups'. |
281f5999cc6c
Skip tests `DelayTests` when running under CI server
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1567
diff
changeset
|
67 |
|
650 | 68 |
verbose := false. |
682 | 69 |
n := 0. |
105 | 70 |
[ |
1642
281f5999cc6c
Skip tests `DelayTests` when running under CI server
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1567
diff
changeset
|
71 |
[n < 10] whileTrue:[ |
281f5999cc6c
Skip tests `DelayTests` when running under CI server
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1567
diff
changeset
|
72 |
Delay waitForSeconds:0.1. |
281f5999cc6c
Skip tests `DelayTests` when running under CI server
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1567
diff
changeset
|
73 |
verbose ifTrue:[ Transcript showCR:n ]. |
281f5999cc6c
Skip tests `DelayTests` when running under CI server
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1567
diff
changeset
|
74 |
n := n + 1. |
281f5999cc6c
Skip tests `DelayTests` when running under CI server
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1567
diff
changeset
|
75 |
] |
105 | 76 |
] forkAt:(Processor activePriority + 1). |
77 |
||
626 | 78 |
self assert:(n == 0) description:'thread with delays should not have started yet'. |
106 | 79 |
Delay waitForSeconds:1.1. |
626 | 80 |
self assert:(n == 10) description:('thread with delays should have finished by now (n=%d)' bindWith:n). |
105 | 81 |
|
82 |
" |
|
83 |
self basicNew test2 |
|
84 |
" |
|
626 | 85 |
|
650 | 86 |
"Modified: / 10-01-2012 / 19:25:35 / cg" |
1642
281f5999cc6c
Skip tests `DelayTests` when running under CI server
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1567
diff
changeset
|
87 |
"Modified: / 26-07-2017 / 11:48:58 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
592 | 88 |
! |
89 |
||
90 |
test3_longDelay |
|
91 |
"in stx6.2.1, the following does not wait, due to an overflow in |
|
92 |
the millisecond computation..." |
|
93 |
||
94 |
|stillWaiting watchDogBite| |
|
95 |
||
1642
281f5999cc6c
Skip tests `DelayTests` when running under CI server
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1567
diff
changeset
|
96 |
self skipIf: (OperatingSystem getEnvironment:'JOB_NAME') notNil description: 'This test depends on real time timing and thus unreliable under CI setups'. |
281f5999cc6c
Skip tests `DelayTests` when running under CI server
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1567
diff
changeset
|
97 |
|
592 | 98 |
[ |
1642
281f5999cc6c
Skip tests `DelayTests` when running under CI server
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1567
diff
changeset
|
99 |
watchDogBite := false. |
281f5999cc6c
Skip tests `DelayTests` when running under CI server
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1567
diff
changeset
|
100 |
stillWaiting := true. |
281f5999cc6c
Skip tests `DelayTests` when running under CI server
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1567
diff
changeset
|
101 |
Delay waitForSeconds:1000000. |
281f5999cc6c
Skip tests `DelayTests` when running under CI server
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1567
diff
changeset
|
102 |
stillWaiting := false. |
592 | 103 |
] valueWithWatchDog:[ watchDogBite := true] afterMilliseconds:1000. |
104 |
||
105 |
self assert:stillWaiting. |
|
106 |
self assert:watchDogBite. |
|
107 |
||
108 |
" |
|
109 |
self basicNew test3_longDelay |
|
110 |
" |
|
111 |
||
112 |
"Created: / 31-07-2011 / 18:44:53 / cg" |
|
1642
281f5999cc6c
Skip tests `DelayTests` when running under CI server
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1567
diff
changeset
|
113 |
"Modified: / 26-07-2017 / 11:49:22 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
645 | 114 |
! |
115 |
||
116 |
test4 |
|
117 |
"check that we can wake up early" |
|
118 |
||
119 |
|longDelay waitTime watchDogBite| |
|
120 |
||
1642
281f5999cc6c
Skip tests `DelayTests` when running under CI server
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1567
diff
changeset
|
121 |
self skipIf: (OperatingSystem getEnvironment:'JOB_NAME') notNil description: 'This test depends on real time timing and thus unreliable under CI setups'. |
281f5999cc6c
Skip tests `DelayTests` when running under CI server
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1567
diff
changeset
|
122 |
|
645 | 123 |
longDelay := Delay forSeconds:1000000. |
124 |
[ |
|
1642
281f5999cc6c
Skip tests `DelayTests` when running under CI server
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1567
diff
changeset
|
125 |
Delay waitForSeconds:2. |
281f5999cc6c
Skip tests `DelayTests` when running under CI server
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1567
diff
changeset
|
126 |
longDelay resume. |
645 | 127 |
] fork. |
128 |
||
129 |
waitTime := Time secondsToRun:[ |
|
1642
281f5999cc6c
Skip tests `DelayTests` when running under CI server
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1567
diff
changeset
|
130 |
"never wait longer than 10 seconds" |
281f5999cc6c
Skip tests `DelayTests` when running under CI server
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1567
diff
changeset
|
131 |
[ |
281f5999cc6c
Skip tests `DelayTests` when running under CI server
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1567
diff
changeset
|
132 |
longDelay wait. |
281f5999cc6c
Skip tests `DelayTests` when running under CI server
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1567
diff
changeset
|
133 |
] valueWithWatchDog:[ watchDogBite := true] afterMilliseconds:10000. |
645 | 134 |
]. |
135 |
self assert:watchDogBite ~~ true. |
|
136 |
self assert:waitTime < 10. |
|
137 |
||
138 |
" |
|
139 |
self basicNew test4 |
|
140 |
" |
|
1642
281f5999cc6c
Skip tests `DelayTests` when running under CI server
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1567
diff
changeset
|
141 |
|
281f5999cc6c
Skip tests `DelayTests` when running under CI server
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1567
diff
changeset
|
142 |
"Modified: / 26-07-2017 / 11:49:18 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
96 | 143 |
! ! |
105 | 144 |
|
106 | 145 |
!DelayTest class methodsFor:'documentation'! |
146 |
||
147 |
version |
|
148 |
^ '$Header$' |
|
1642
281f5999cc6c
Skip tests `DelayTests` when running under CI server
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1567
diff
changeset
|
149 |
! |
281f5999cc6c
Skip tests `DelayTests` when running under CI server
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1567
diff
changeset
|
150 |
|
281f5999cc6c
Skip tests `DelayTests` when running under CI server
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1567
diff
changeset
|
151 |
version_HG |
281f5999cc6c
Skip tests `DelayTests` when running under CI server
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1567
diff
changeset
|
152 |
|
281f5999cc6c
Skip tests `DelayTests` when running under CI server
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1567
diff
changeset
|
153 |
^ '$Changeset: <not expanded> $' |
106 | 154 |
! ! |
1567
e17701a073f9
Added abstract VMSpawningTestCase
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1500
diff
changeset
|
155 |