Author: Lars Wassermann <[email protected]>
Branch: 
Changeset: r492:248c652808be
Date: 2013-07-08 13:40 +0200
http://bitbucket.org/pypy/lang-smalltalk/changeset/248c652808be/

Log:    refactored the kernel test collection to be faster on interpreted
        RSqueak VMs

diff --git a/SPy-Benchmarks.package/Integer.extension/instance/runTest..st 
b/SPy-Benchmarks.package/Integer.extension/instance/runTest..st
new file mode 100644
--- /dev/null
+++ b/SPy-Benchmarks.package/Integer.extension/instance/runTest..st
@@ -0,0 +1,3 @@
+*SPy-Benchmarks
+runTest: aString
+       ^SPyRunner runTest: aString asSymbol
\ No newline at end of file
diff --git a/SPy-Benchmarks.package/Integer.extension/methodProperties.json 
b/SPy-Benchmarks.package/Integer.extension/methodProperties.json
--- a/SPy-Benchmarks.package/Integer.extension/methodProperties.json
+++ b/SPy-Benchmarks.package/Integer.extension/methodProperties.json
@@ -3,4 +3,5 @@
                 },
        "instance" : {
                "runSPyBenchmarks" : "lw 4/29/2013 13:20",
+               "runTest:" : "lw 6/17/2013 13:28",
                "runTests" : "lw 5/30/2013 18:02" } }
diff --git a/SPy-Benchmarks.package/SPyRunner.class/class/initialize.st 
b/SPy-Benchmarks.package/SPyRunner.class/class/initialize.st
new file mode 100644
--- /dev/null
+++ b/SPy-Benchmarks.package/SPyRunner.class/class/initialize.st
@@ -0,0 +1,5 @@
+benchmarks
+initialize
+       "self initialize"
+       super initialize.
+       KernelTests := self kernelTests.
\ No newline at end of file
diff --git a/SPy-Benchmarks.package/SPyRunner.class/class/kernelTests.st 
b/SPy-Benchmarks.package/SPyRunner.class/class/kernelTests.st
new file mode 100644
--- /dev/null
+++ b/SPy-Benchmarks.package/SPyRunner.class/class/kernelTests.st
@@ -0,0 +1,7 @@
+benchmarks
+kernelTests
+       | suite |
+       suite := TestSuite named: 'RSqueakVM-Tests'.
+       "To add later: MethodPragmaTest . WeakMessageSendTest"
+       {IntegerTest . InstructionClientTest . FractionTest . DelayTest . 
CompiledMethodTest . BehaviorTest . StopwatchTest . YearTest . TimeTest . 
AllocationTest . ProcessTest . ClassDescriptionTest . SmallIntegerTest . 
MethodContextTest . CompiledMethodComparisonTest . YearMonthWeekTest . 
TimespanTest . DependentsArrayTest . CategorizerTest . IntegerDigitLogicTest . 
SemaphoreTest . PromiseTest . DateTest . DateAndTimeEpochTest . 
InstVarRefLocatorTest . DateAndTimeTest . BasicBehaviorClassMetaclassTest . 
ExtendedNumberParserTest . TrueTest . UndefinedObjectTest . ComplexTest . 
ScheduleTest . CompiledMethodTrailerTest . LargePositiveIntegerTest . 
ScaledDecimalTest . ClassBuilderTest . SqNumberParserTest . ProtoObjectTest . 
NumberParsingTest . RandomTest . DateAndTimeLeapTest . TimespanDoTest . 
ClassTest . TimespanDoSpanAYearTest . BlockContextTest . TimeStampTest . 
GradientFillStyleTest . MethodPropertiesTest . WeekTest . ObjectTest . 
DurationTest . NumberTest . MonthTest . FalseTest . Ins
 tructionPrinterTest . MonitorTest . BooleanTest . BlockClosureTest . FloatTest 
. ProcessSpecificTest . LargeNegativeIntegerTest} do: [ :each | each 
addToSuiteFromSelectors: suite].
+       ^ suite
\ No newline at end of file
diff --git a/SPy-Benchmarks.package/SPyRunner.class/class/nonDestroyingTests.st 
b/SPy-Benchmarks.package/SPyRunner.class/class/nonDestroyingTests.st
new file mode 100644
--- /dev/null
+++ b/SPy-Benchmarks.package/SPyRunner.class/class/nonDestroyingTests.st
@@ -0,0 +1,11 @@
+benchmarks
+nonDestroyingTests
+       | suite |
+       suite := KernelTests copy.
+       suite 
+               tests: (suite tests 
+                       reject: [ :eachTestCase | 
+                               "Those tests lead to VM-Assertion Errors, etc."
+                               #(testBenchFib testAllNamedFromTo 
testWaitTimeoutMSecs)
+                                       includes: eachTestCase selector]).
+       ^ suite
\ No newline at end of file
diff --git a/SPy-Benchmarks.package/SPyRunner.class/class/runKernelTests.st 
b/SPy-Benchmarks.package/SPyRunner.class/class/runKernelTests.st
--- a/SPy-Benchmarks.package/SPyRunner.class/class/runKernelTests.st
+++ b/SPy-Benchmarks.package/SPyRunner.class/class/runKernelTests.st
@@ -1,15 +1,4 @@
 benchmarks
 runKernelTests
        "self runTests"
-       | result suite |
-       suite := TestSuite named: 'RSqueakVM-Tests'.
-       "To add later: MethodPragmaTest . WeakMessageSendTest"
-       {IntegerTest . InstructionClientTest . FractionTest . DelayTest . 
CompiledMethodTest . BehaviorTest . StopwatchTest . YearTest . TimeTest . 
AllocationTest . ProcessTest . ClassDescriptionTest . SmallIntegerTest . 
MethodContextTest . CompiledMethodComparisonTest . YearMonthWeekTest . 
TimespanTest . DependentsArrayTest . CategorizerTest . IntegerDigitLogicTest . 
SemaphoreTest . PromiseTest . DateTest . DateAndTimeEpochTest . 
InstVarRefLocatorTest . DateAndTimeTest . BasicBehaviorClassMetaclassTest . 
ExtendedNumberParserTest . TrueTest . UndefinedObjectTest . ComplexTest . 
ScheduleTest . CompiledMethodTrailerTest . LargePositiveIntegerTest . 
ScaledDecimalTest . ClassBuilderTest . SqNumberParserTest . ProtoObjectTest . 
NumberParsingTest . RandomTest . DateAndTimeLeapTest . TimespanDoTest . 
ClassTest . TimespanDoSpanAYearTest . BlockContextTest . TimeStampTest . 
GradientFillStyleTest . MethodPropertiesTest . WeekTest . ObjectTest . 
DurationTest . NumberTest . MonthTest . FalseTest . Ins
 tructionPrinterTest . MonitorTest . BooleanTest . BlockClosureTest . FloatTest 
. ProcessSpecificTest . LargeNegativeIntegerTest} do: [ :each | each 
addToSuiteFromSelectors: suite].
-       suite 
-               tests: (suite tests 
-                       reject: [ :eachTestCase | 
-                               "Those tests lead to VM-Assertion Errors, etc."
-                               #(testBenchFib testMultiProcessWaitOnSameDelay 
testBehaviornewnewShouldNotCrash testAllNamedFromTo testChange 
testAtomicSuspend testWaitTimeoutMSecs 
testMonitorNotGainingUnwantedSignalsDuringUnwinding 
testDegreeCosForExceptionalValues testDegreeSinForExceptionalValues 
testInfinity1 testInfinity2)
-                                       includes: eachTestCase selector]).
-       result := suite run.
-       ^result asString
\ No newline at end of file
+       ^ self nonDestroyingTests run asString
\ No newline at end of file
diff --git a/SPy-Benchmarks.package/SPyRunner.class/class/runShootout.st 
b/SPy-Benchmarks.package/SPyRunner.class/class/runShootout.st
--- a/SPy-Benchmarks.package/SPyRunner.class/class/runShootout.st
+++ b/SPy-Benchmarks.package/SPyRunner.class/class/runShootout.st
@@ -2,12 +2,10 @@
 runShootout
        "self runShootout explore"
        | stream times |
-       stream := (ByteString new: 10000) writeStream.
+       stream := ShootoutTests stdout.
        times := Dictionary new.
-       { [ShootoutTests nbody: 200000 "20000000" to: stream].
-          [ShootoutTests binarytrees: 17 to: stream].
-          "[ShootoutTests chameneosredux: 2600000 to: stream]."
-          [ShootoutTests threadring: 100000000 to: stream] } do:       
+       { [ShootoutTests chameneosredux: 2600000 to: stream].
+        } do:  
                [:block | | benchmark t |
                benchmark := (ShootoutTests selectorForSimpleBlock: block) 
copyUpTo: $:.
                "Smalltalk garbageCollect."
diff --git a/SPy-Benchmarks.package/SPyRunner.class/class/runTest..st 
b/SPy-Benchmarks.package/SPyRunner.class/class/runTest..st
new file mode 100644
--- /dev/null
+++ b/SPy-Benchmarks.package/SPyRunner.class/class/runTest..st
@@ -0,0 +1,10 @@
+benchmarks
+runTest: aSymbol
+       "self runTests"
+       | suite |
+       suite := KernelTests.
+       suite := suite copy
+               tests: (suite tests 
+                       select: [ :eachTestCase | 
+                               eachTestCase selector = aSymbol]).
+       ^ suite run asString
\ No newline at end of file
diff --git a/SPy-Benchmarks.package/SPyRunner.class/methodProperties.json 
b/SPy-Benchmarks.package/SPyRunner.class/methodProperties.json
--- a/SPy-Benchmarks.package/SPyRunner.class/methodProperties.json
+++ b/SPy-Benchmarks.package/SPyRunner.class/methodProperties.json
@@ -1,9 +1,13 @@
 {
        "class" : {
-               "format:" : "lw 4/29/2013 17:13",
+               "format:" : "lw 6/17/2013 19:26",
+               "initialize" : "lw 6/26/2013 16:07",
+               "kernelTests" : "lw 6/26/2013 16:01",
+               "nonDestroyingTests" : "lw 6/26/2013 17:04",
                "run" : "lw 4/29/2013 17:51",
-               "runKernelTests" : "lw 5/30/2013 18:03",
-               "runShootout" : "lw 5/3/2013 14:43",
+               "runKernelTests" : "lw 6/17/2013 13:31",
+               "runShootout" : "lw 6/27/2013 16:03",
+               "runTest:" : "lw 6/26/2013 16:06",
                "runTinyBenchmarks" : "lw 4/29/2013 17:39" },
        "instance" : {
                 } }
diff --git a/SPy-Benchmarks.package/SPyRunner.class/properties.json 
b/SPy-Benchmarks.package/SPyRunner.class/properties.json
--- a/SPy-Benchmarks.package/SPyRunner.class/properties.json
+++ b/SPy-Benchmarks.package/SPyRunner.class/properties.json
@@ -3,7 +3,7 @@
        "classinstvars" : [
                 ],
        "classvars" : [
-                ],
+               "KernelTests" ],
        "commentStamp" : "",
        "instvars" : [
                 ],
diff --git a/SPy-Benchmarks.package/TestSuite.extension/instance/run..st 
b/SPy-Benchmarks.package/TestSuite.extension/instance/run..st
--- a/SPy-Benchmarks.package/TestSuite.extension/instance/run..st
+++ b/SPy-Benchmarks.package/TestSuite.extension/instance/run..st
@@ -2,5 +2,5 @@
 run: aResult 
        self tests do: [:each | 
                self changed: each.
-               SPyVM print: 'Running Test ', (each asString padded: #right to: 
62 with: $ ), String tab, '(', aResult asString, ')'.
+               SPyVM print: 'Running Test ', each asString.
                each run: aResult].
\ No newline at end of file
diff --git a/SPy-Benchmarks.package/TestSuite.extension/methodProperties.json 
b/SPy-Benchmarks.package/TestSuite.extension/methodProperties.json
--- a/SPy-Benchmarks.package/TestSuite.extension/methodProperties.json
+++ b/SPy-Benchmarks.package/TestSuite.extension/methodProperties.json
@@ -2,5 +2,5 @@
        "class" : {
                 },
        "instance" : {
-               "run:" : "lw 5/30/2013 11:19",
+               "run:" : "lw 6/18/2013 10:13",
                "tests:" : "lw 5/29/2013 20:14" } }
diff --git a/SPy-Benchmarks.package/monticello.meta/version 
b/SPy-Benchmarks.package/monticello.meta/version
--- a/SPy-Benchmarks.package/monticello.meta/version
+++ b/SPy-Benchmarks.package/monticello.meta/version
@@ -1,1 +1,1 @@
-(name 'SPy-Benchmarks-lw.6' message 'added testing messages and modified 
TestSuite to print stuff' id '72f3d7a3-5e09-43e5-a783-fb7c29117a52' date '31 
May 2013' time '9:35:44.102 am' author 'lw' ancestors ((name 
'SPy-Benchmarks-lw.5' message 'added another benchmark' id 
'cfe2797f-9dd9-4073-aa6e-86cda0ba3dbf' date '3 May 2013' time '2:43:39.36 pm' 
author 'lw' ancestors ((name 'SPy-Benchmarks-lw.4' message 'changed the test 
running and collecting to work with the current spy vm
removed two of the shootout tests due to failure on spy' id 
'9d1c1e0a-0209-45d3-8e0a-220919ab5701' date '29 April 2013' time '6:07:26.686 
pm' author 'lw' ancestors ((name 'SPy-Benchmarks-lw.3' message 'added tiny 
benchmarks' id 'c8214449-4009-4a64-8284-3c58395fe2bc' date '29 April 2013' time 
'2:15:43.242 pm' author 'lw' ancestors ((name 'SPy-Benchmarks-lw.2' message 
'second try for an initial commit with shootout tests' id 
'e538d5dc-ff13-4753-a166-bb95af0c7e0b' date '29 April 2013' time '1:41:50.098 
pm' author 'lw' ancestors ((name 'SPy-Benchmarks-lw.1' message 'initial commit 
with existing Shootout tests' id '67ba6a6a-5476-4dc0-892f-de76933491e8' date 
'29 April 2013' time '1:40:20.34 pm' author 'lw' ancestors () stepChildren ())) 
stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) 
stepChildren ())
\ No newline at end of file
+(name 'SPy-Benchmarks-lw.7' message 'refactored kernel tests' id 
'0130d8ee-c75a-478c-93ca-46e55b658f2e' date '8 July 2013' time '11:15:47.373 
am' author 'lw' ancestors ((name 'SPy-Benchmarks-lw.6' message 'added testing 
messages and modified TestSuite to print stuff' id 
'72f3d7a3-5e09-43e5-a783-fb7c29117a52' date '31 May 2013' time '9:35:44.102 am' 
author 'lw' ancestors ((name 'SPy-Benchmarks-lw.5' message 'added another 
benchmark' id 'cfe2797f-9dd9-4073-aa6e-86cda0ba3dbf' date '3 May 2013' time 
'2:43:39.36 pm' author 'lw' ancestors ((name 'SPy-Benchmarks-lw.4' message 
'changed the test running and collecting to work with the current spy vm
removed two of the shootout tests due to failure on spy' id 
'9d1c1e0a-0209-45d3-8e0a-220919ab5701' date '29 April 2013' time '6:07:26.686 
pm' author 'lw' ancestors ((name 'SPy-Benchmarks-lw.3' message 'added tiny 
benchmarks' id 'c8214449-4009-4a64-8284-3c58395fe2bc' date '29 April 2013' time 
'2:15:43.242 pm' author 'lw' ancestors ((name 'SPy-Benchmarks-lw.2' message 
'second try for an initial commit with shootout tests' id 
'e538d5dc-ff13-4753-a166-bb95af0c7e0b' date '29 April 2013' time '1:41:50.098 
pm' author 'lw' ancestors ((name 'SPy-Benchmarks-lw.1' message 'initial commit 
with existing Shootout tests' id '67ba6a6a-5476-4dc0-892f-de76933491e8' date 
'29 April 2013' time '1:40:20.34 pm' author 'lw' ancestors () stepChildren ())) 
stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) 
stepChildren ())) stepChildren ())
\ No newline at end of file
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to