[pypy-commit] lang-smalltalk default: refactored the kernel test collection to be faster on interpreted RSqueak VMs

lwassermann noreply at buildbot.pypy.org
Tue Jul 9 20:21:41 CEST 2013


Author: Lars Wassermann <lars.wassermann at gmail.com>
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 . InstructionPrinterTest . 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 . InstructionPrinterTest . 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


More information about the pypy-commit mailing list