RegressionTests__LiteralsInMethodTests.st
changeset 616 b1c37b2c7848
child 1262 17773030b8fe
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/RegressionTests__LiteralsInMethodTests.st	Mon Aug 08 20:27:34 2011 +0200
@@ -0,0 +1,98 @@
+"{ Package: 'exept:regression' }"
+
+"{ NameSpace: RegressionTests }"
+
+TestCase subclass:#LiteralsInMethodTests
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'tests-Regression'
+!
+
+!LiteralsInMethodTests class methodsFor:'documentation'!
+
+documentation
+"
+    documentation to be added.
+
+    [author:]
+        cg
+
+    [instance variables:]
+
+    [class variables:]
+
+    [see also:]
+
+"
+! !
+
+!LiteralsInMethodTests methodsFor:'tested methods'!
+
+classCheck:arg
+    "only a check-method"
+
+    (arg class == Array) ifTrue:[
+        arg yourself
+    ].
+
+    "Created: / 08-08-2011 / 20:26:31 / cg"
+!
+
+methodWithStringLiteral1
+    ^ 'abcd'
+
+    "Created: / 08-08-2011 / 17:14:10 / cg"
+!
+
+methodWithStringLiteral2
+    ^ 'abc'
+
+    "Created: / 08-08-2011 / 17:14:13 / cg"
+! !
+
+!LiteralsInMethodTests methodsFor:'tests'!
+
+test01_methodContainsLiterals
+    "old stc/compiler versions did not generate literals for inlined
+     sends, which made problems when quick-searching for senders (which filters
+     candidate-methods using the literal array"
+
+    |m|
+
+    m := self class compiledMethodAt:#classCheck:.
+    self assert:(m literals includes:#'==').
+    self assert:(m literals includes:#'class').
+    self assert:(m literals includes:#'yourself').
+
+    "
+     self run:#test01_methodContainsLiterals
+     self new test01_methodContainsLiterals
+    "
+
+    "Created: / 08-08-2011 / 16:33:06 / cg"
+!
+
+test02_patternStringLiteral
+"/ for now, only bytecode contains string literals - skip this.
+"/    |m|
+"/
+"/    m := self class compiledMethodAt:#methodWithStringLiteral.
+
+    "
+     self run:#test01_methodContainsLiterals
+     self new test01_methodContainsLiterals
+    "
+
+    "Created: / 08-08-2011 / 16:54:28 / cg"
+! !
+
+!LiteralsInMethodTests class methodsFor:'documentation'!
+
+version
+    ^ '$Header$'
+!
+
+version_CVS
+    ^ '$Header$'
+! !