package; import gc.TestGC; class TestMain #if nme extends nme.display.Sprite #end { static function runTests():Int { var passes = 1; #if !nme var args = Sys.args(); if (args.length>0) passes = Std.parseInt(args[0]); #end var r = new haxe.unit.TestRunner(); r.add(new TestTypes()); r.add(new TestKeywords()); r.add(new TestSort()); r.add(new TestGC()); #if !nme r.add(new gc.TestGCThreaded()); #end r.add(new TestIntHash()); r.add(new TestStringHash()); r.add(new TestObjectHash()); r.add(new TestWeakHash()); #if !nme r.add(new file.TestFile()); #end #if cpp r.add(new native.TestFinalizer()); #end for(i in 0...passes) { var t0 = haxe.Timer.stamp(); var success = r.run(); trace(" Time : " + (haxe.Timer.stamp()-t0)*1000 ); if (!success) return 1; } return 0; } #if nme var frameCount = 0; var tf:nme.text.TextField; public function new() { super(); tf = new nme.text.TextField(); tf.text="RUN..."; addChild(tf); addEventListener( nme.events.Event.ENTER_FRAME, onFrame ); } function onFrame(_) { var err = runTests(); tf.text = "" + (++frameCount); stage.opaqueBackground = err==0 ? 0xff00ff00: 0xffff0000; } static function endTest(error:Int) trace(error==0 ? "All tests OK" : "Tests Failed!"); #else public static function main() { Sys.exit(runTests()); } public static function endTest(error:Int) Sys.exit(error); #end }