--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/compiler/tests/extras/PPCLRPParserVerificationTest.st Mon Aug 17 12:13:16 2015 +0100
@@ -0,0 +1,124 @@
+"{ Package: 'stx:goodies/petitparser/compiler/tests/extras' }"
+
+"{ NameSpace: Smalltalk }"
+
+PPCAbstractParserTest subclass:#PPCLRPParserVerificationTest
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ category:'PetitCompiler-Extras-Tests-LRP'
+!
+
+!PPCLRPParserVerificationTest class methodsFor:'resources'!
+
+resources
+ ^ Array with: (PPCSetUpBeforeTearDownAfterResource for: self)
+! !
+
+!PPCLRPParserVerificationTest class methodsFor:'testing'!
+
+isAbstract
+ ^ self == PPCLRPParserVerificationTest
+
+ "Modified: / 31-07-2015 / 07:53:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!PPCLRPParserVerificationTest methodsFor:'accessing'!
+
+compiledParser
+ ^ self compiledParserClass new
+
+ "Created: / 29-07-2015 / 17:00:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+compiledParserClass
+ ^ Smalltalk at: self compiledParserClassName
+
+ "Created: / 29-07-2015 / 16:54:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+compiledParserClassName
+ "Return the name of the compiled parser"
+
+ ^ (self petitParserClass name , 'C_' ,
+ "This is bit hacky!!"
+ ((self compilerConfiguration isKindOf: PPCTokenizingConfiguration) ifTrue:[ 'Tokenizing' ] ifFalse:[ 'Universal' ])) asSymbol
+
+ "Created: / 29-07-2015 / 16:54:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+compilerConfiguration
+ "Return configuration to use when compiling parser (as instance of PPCConfiguration)"
+
+ ^ self subclassResponsibility
+
+ "Created: / 29-07-2015 / 16:53:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+parserClass
+ ^ self compiledParserClass
+
+ "Modified: / 29-07-2015 / 18:43:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+parserInstanceFor: aSymbol
+ ^ self parserClass new startSymbol: aSymbol
+
+ "Modified: / 29-07-2015 / 18:43:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+petitParser
+ ^ self petitParserClass new
+
+ "Created: / 29-07-2015 / 17:01:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+petitParserClass
+ ^ PPCLRPParser
+! !
+
+!PPCLRPParserVerificationTest methodsFor:'context'!
+
+context
+
+ ^ PPCContext new
+! !
+
+!PPCLRPParserVerificationTest methodsFor:'setup & teardown'!
+
+setUpBefore
+ "Called before any of my tests is run (when resources are set up)"
+ | time configuration |
+
+ configuration := self compilerConfiguration.
+ configuration arguments parserName: self compiledParserClassName.
+ time := Time millisecondsToRun: [
+ self petitParser compileWithConfiguration: configuration.
+ ].
+ Transcript show: self petitParserClass name ; show:' compiled in: '; show: time asString; show: 'ms'; cr.
+
+ "Created: / 29-07-2015 / 16:29:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 29-07-2015 / 18:40:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+tearDownAfter
+ "Called after all my tests are ryn(when resources are torn down)"
+
+ "Created: / 29-07-2015 / 16:33:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!PPCLRPParserVerificationTest methodsFor:'testing'!
+
+testSmoke1
+ | compiledParser normalParser |
+ normalParser := self petitParser.
+ compiledParser := self compiledParser.
+
+ PPCLRPSourcesResource current sources do:[:source |
+ self assert: (normalParser parse: source) asString
+ equals: (compiledParser parse: source withContext: self context) asString.
+ ].
+
+ "Created: / 30-07-2015 / 19:07:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+