チェンジセット 513
- コミット日時:
- 2008/05/26 22:57:08 (6 ヶ月前)
- ファイル:
-
- as3/Thread/branches/soumen/tests/org/libspark/thread/AuxiliaryTest.as (更新) (6 diffs)
- as3/Thread/branches/soumen/tests/org/libspark/thread/MonitorTest.as (更新) (10 diffs)
- as3/Thread/branches/soumen/tests/org/libspark/thread/TesterThread.as (更新) (2 diffs)
- as3/Thread/branches/soumen/tests/org/libspark/thread/TesterThreadTest.as (更新) (2 diffs)
- as3/Thread/branches/soumen/tests/org/libspark/thread/ThreadExecutionTest.as (更新) (6 diffs)
凡例:
- 変更無し
- 追加
- 削除
- 更新
- コピー
- 移動
as3/Thread/branches/soumen/tests/org/libspark/thread/AuxiliaryTest.as
r509 r513 4 4 import org.libspark.as3unit.assert.*; 5 5 import org.libspark.as3unit.before; 6 import org.libspark.as3unit.after; 6 7 import org.libspark.as3unit.test; 7 8 8 9 use namespace before; 10 use namespace after; 9 11 use namespace test; 10 12 … … 21 23 22 24 /** 25 * 念のため、終了処理もしておく 26 */ 27 after function finalize():void 28 { 29 Thread.initialize(null); 30 } 31 32 /** 23 33 * join によってスレッドの終了を待機できているかどうか。 24 34 * join の呼び出しによってスレッドが待機状態に入る場合は true それ以外(つまりスレッドがすでに終了している場合)は false が返る。 … … 26 36 test function join():void 27 37 { 38 Static.log = ''; 39 28 40 var j:JoinTestThread = new JoinTestThread(); 29 41 var t:TesterThread = new TesterThread(j); … … 44 56 test function timedJoin():void 45 57 { 58 Static.log = ''; 59 46 60 var t:TesterThread = new TesterThread(new TimedJoinTestThread()); 47 61 … … 75 89 76 90 _thread = new JoinChildThread(); 91 _thread.start(); 77 92 78 93 join1 = _thread.join(); … … 109 124 Static.log += 'run '; 110 125 var t:Thread = new Thread(); 126 t.start(); 111 127 t.join(20); 112 128 next(joined1); as3/Thread/branches/soumen/tests/org/libspark/thread/MonitorTest.as
r509 r513 4 4 import org.libspark.as3unit.assert.*; 5 5 import org.libspark.as3unit.before; 6 import org.libspark.as3unit.after; 6 7 import org.libspark.as3unit.test; 7 8 import org.libspark.as3unit.ignore; 8 9 9 10 use namespace before; 11 use namespace after; 10 12 use namespace test; 11 13 use namespace ignore; … … 23 25 24 26 /** 27 * 念のため、終了処理もしておく 28 */ 29 after function finalize():void 30 { 31 Thread.initialize(null); 32 } 33 34 /** 25 35 * wait を呼び出して待機しているスレッドが notify の呼び出しで起きるかどうか。 26 36 * 待機しているスレッドのうち、ひとつだけが起きる。 … … 82 92 test function timeout():void 83 93 { 94 Static.log = ''; 95 84 96 var t:TesterThread = new TesterThread(new TimeoutTestThread()); 85 97 … … 109 121 t.start(); 110 122 } 111 } 112 } 113 123 124 /** 125 * 終了フェーズに入る直前で wait した場合きちんと動作するかどうか。 126 */ 127 test function waitFinalize():void 128 { 129 Static.log = ''; 130 131 var t:TesterThread = new TesterThread(new WaitFinalizeTestThread()); 132 133 t.addEventListener(Event.COMPLETE, async(function(e:Event):void 134 { 135 assertEquals('wait notifyAll finalize ', Static.log); 136 }, 1000)); 137 138 t.start(); 139 } 140 141 /** 142 * 終了フェーズに入る直前で wait がタイムアウトした場合きちんと動作するかどうか。 143 */ 144 test function timeoutFinalize():void 145 { 146 Static.log = ''; 147 148 var t:TesterThread = new TesterThread(new TimeoutFinaizeTestThread()); 149 150 t.addEventListener(Event.COMPLETE, async(function(e:Event):void 151 { 152 assertEquals('wait finalize ', Static.log); 153 }, 1000)); 154 155 t.start(); 156 } 157 158 /** 159 * 終了直前で wait した場合きちんと動作するかどうか。 160 */ 161 test function finalizeWait():void 162 { 163 Static.log = ''; 164 165 var t:TesterThread = new TesterThread(new FinalizeWaitTestThread()); 166 167 t.addEventListener(Event.COMPLETE, async(function(e:Event):void 168 { 169 assertEquals('finalize notifyAll ', Static.log); 170 }, 1000)); 171 172 t.start(); 173 } 174 175 /** 176 * 終了直前で wait がタイムアウトした場合きちんと動作するかどうか。 177 */ 178 test function finalizeTimeout():void 179 { 180 Static.log = ''; 181 182 var t:TesterThread = new TesterThread(new FinalizeTimeoutTestThread()); 183 184 t.addEventListener(Event.COMPLETE, async(function(e:Event):void 185 { 186 assertEquals('finalize ', Static.log); 187 }, 1000)); 188 189 t.start(); 190 } 191 192 /** 193 * 終了直前で wait がタイムアウトした場合タイムアウトハンドラを実行して終了できるかどうか。 194 */ 195 test function finalizeTimeoutHandler():void 196 { 197 Static.log = ''; 198 199 var t:TesterThread = new TesterThread(new FinalizeTimeoutHandlerTestThread()); 200 201 t.addEventListener(Event.COMPLETE, async(function(e:Event):void 202 { 203 assertEquals('finalize wakeup ', Static.log); 204 }, 1000)); 205 206 t.start(); 207 } 208 } 209 } 210 211 import flash.events.Event; 114 212 import org.libspark.thread.Thread; 115 213 import org.libspark.thread.ThreadState; … … 117 215 import org.libspark.thread.Monitor; 118 216 217 import flash.utils.setTimeout; 218 119 219 class Static 120 220 { … … 264 364 { 265 365 Static.log += 'wakeup '; 366 next(run2); 367 } 368 369 private function run2():void 370 { 371 266 372 } 267 373 } … … 302 408 private function run4():void 303 409 { 304 Static.log = 'notify ';410 Static.log += 'notify '; 305 411 _monitor.notifyAll(); 306 412 next(run5); … … 371 477 { 372 478 Static.log += 'wait '; 373 _monitor.wait( 20);479 _monitor.wait(500); 374 480 next(wakeup); 375 481 timeout(wakeup2); … … 380 486 wu = true; 381 487 Static.log += 'wakeup '; 488 next(run2); 382 489 } 383 490 … … 386 493 wu = true; 387 494 Static.log += 'wakeup2 '; 388 } 389 } 495 next(run2); 496 } 497 498 private function run2():void 499 { 500 next(run3); 501 } 502 503 private function run3():void 504 { 505 506 } 507 } 508 509 class WaitFinalizeTestThread extends Thread 510 { 511 private var _monitor:IMonitor = new Monitor(); 512 513 override protected function run():void 514 { 515 Static.log += 'wait '; 516 517 _monitor.wait(); 518 519 setTimeout(timeoutHandler, 100); 520 } 521 522 private function timeoutHandler():void 523 { 524 Static.log += 'notifyAll '; 525 526 _monitor.notifyAll(); 527 } 528 529 override protected function finalize():void 530 { 531 Static.log += 'finalize '; 532 } 533 } 534 535 class TimeoutFinaizeTestThread extends Thread 536 { 537 override protected function run():void 538 { 539 Static.log += 'wait '; 540 541 new Monitor().wait(100); 542 } 543 544 override protected function finalize():void 545 { 546 Static.log += 'finalize '; 547 } 548 } 549 550 class FinalizeWaitTestThread extends Thread 551 { 552 private var _monitor:IMonitor = new Monitor(); 553 554 override protected function finalize():void 555 { 556 Static.log += 'finalize '; 557 558 _monitor.wait(); 559 560 setTimeout(timeoutHandler, 500); 561 } 562 563 private function timeoutHandler():void 564 { 565 Static.log += 'notifyAll '; 566 567 _monitor.notifyAll(); 568 } 569 } 570 571 class FinalizeTimeoutTestThread extends Thread 572 { 573 override protected function finalize():void 574 { 575 Static.log += 'finalize '; 576 577 new Monitor().wait(100); 578 } 579 } 580 581 class FinalizeTimeoutHandlerTestThread extends Thread 582 { 583 override protected function finalize():void 584 { 585 Static.log += 'finalize '; 586 587 new Monitor().wait(100); 588 589 timeout(wakeup); 590 } 591 592 private function wakeup():void 593 { 594 Static.log += 'wakeup '; 595 } 596 } as3/Thread/branches/soumen/tests/org/libspark/thread/TesterThread.as
r507 r513 5 5 import flash.events.Event; 6 6 import flash.events.EventDispatcher; 7 import flash.utils.setTimeout; 7 8 8 9 public class TesterThread extends Thread … … 32 33 protected override function finalize():void 33 34 { 35 setTimeout(dispatchHandler, 1); 36 } 37 38 private function dispatchHandler():void 39 { 34 40 _e.dispatchEvent(new Event(Event.COMPLETE)); 35 41 } as3/Thread/branches/soumen/tests/org/libspark/thread/TesterThreadTest.as
r507 r513 4 4 import org.libspark.as3unit.assert.*; 5 5 import org.libspark.as3unit.before; 6 import org.libspark.as3unit.after; 6 7 import org.libspark.as3unit.test; 7 8 8 9 use namespace before; 10 use namespace after; 9 11 use namespace test; 10 12 11 13 public class TesterThreadTest 12 14 { 15 /** 16 * テストに相互作用が出ないようにテスト毎にスレッドライブラリを初期化。 17 * 通常であれば、initializeの呼び出しは一度きり。 18 */ 13 19 before function initialize():void 14 20 { … … 16 22 } 17 23 24 /** 25 * 念のため、終了処理もしておく 26 */ 27 after function finalize():void 28 { 29 Thread.initialize(null); 30 } 31 32 /** 33 * TesterThread が終了した際に Event.COMPLETE が配信されるかどうか。 34 */ 18 35 test function tester():void 19 36 { as3/Thread/branches/soumen/tests/org/libspark/thread/ThreadExecutionTest.as
r507 r513 4 4 import org.libspark.as3unit.assert.*; 5 5 import org.libspark.as3unit.before; 6 import org.libspark.as3unit.after; 6 7 import org.libspark.as3unit.test; 8 import org.libspark.as3unit.test_expected; 9 import org.libspark.thread.errors.IllegalThreadStateError; 7 10 8 11 use namespace before; 12 use namespace after; 9 13 use namespace test; 14 use namespace test_expected; 10 15 11 16 public class ThreadExecutionTest … … 21 26 22 27 /** 28 * 念のため、終了処理もしておく 29 */ 30 after function finalize():void 31 { 32 Thread.initialize(null); 33 } 34 35 /** 23 36 * start したら run が実行されるか 24 37 */ … … 36 49 }, 1000)); 37 50 51 t.start(); 52 } 53 54 /** 55 * 既に実行しているスレッドを start したら IllegalThreadStateError がスローされるか。 56 */ 57 test_expected static const startError:Class = IllegalThreadStateError; 58 test function startError():void 59 { 60 var t:Thread = new Thread(); 61 t.start(); 38 62 t.start(); 39 63 } … … 51 75 { 52 76 assertSame(c, c.current); 53 assertNull(Thread.currentThread);54 77 }, 1000)); 55 78 … … 279 302 override protected function finalize():void 280 303 { 281 Static.log += _name + '.final zie ';304 Static.log += _name + '.finalize '; 282 305 } 283 306 } … … 332 355 { 333 356 Static.log += 'c.run2 '; 334 next(run2);335 357 } 336 358
