--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/compiler/tests/extras/PPCSmalltalkGrammarVerificationTest.st Thu Jul 30 08:37:37 2015 +0100
@@ -0,0 +1,104 @@
+"{ Package: 'stx:goodies/petitparser/compiler/tests/extras' }"
+
+"{ NameSpace: Smalltalk }"
+
+PPCAbstractParserTest subclass:#PPCSmalltalkGrammarVerificationTest
+ instanceVariableNames:'parser result context resource fileResources'
+ classVariableNames:''
+ poolDictionaries:''
+ category:'PetitCompiler-Extras-Tests-Smalltalk'
+!
+
+
+!PPCSmalltalkGrammarVerificationTest class methodsFor:'as yet unclassified'!
+
+resources
+ ^ (OrderedCollection with: PPCResources)
+ addAll: super resources;
+ yourself
+! !
+
+!PPCSmalltalkGrammarVerificationTest class methodsFor:'queries'!
+
+isAbstract
+ "Return if this class is an abstract class.
+ True is returned here for myself only; false for subclasses.
+ Abstract subclasses must redefine again."
+
+ ^ self == PPCSmalltalkGrammarVerificationTest.
+! !
+
+!PPCSmalltalkGrammarVerificationTest methodsFor:'accessing'!
+
+petitParserClass
+ "Return the name of the petit parser to compile"
+
+ ^ PPSmalltalkGrammar
+
+ "Created: / 29-07-2015 / 19:52:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!PPCSmalltalkGrammarVerificationTest methodsFor:'setup'!
+
+setUp
+ super setUp.
+ fileResources := (self resources detect: [:e | e = PPCResources ]) current.
+!
+
+tearDown
+ super tearDown.
+ "
+ self compiledSmalltalkGrammarClass isNil ifFalse:[
+ self compiledSmalltalkGrammarClass removeFromSystem
+ ].
+ "
+! !
+
+!PPCSmalltalkGrammarVerificationTest methodsFor:'tests'!
+
+testSmalltalk
+ | compiledParser normalParser expected actual |
+ normalParser := self petitParser.
+ compiledParser := self compiledParser.
+
+ fileResources smalltalkSourcesBig do: [ :source |
+ expected := normalParser parse: source.
+ expected isPetitFailure ifFalse: [
+ actual := (compiledParser parse: source withContext: self context).
+ self assert: expected equals: actual.
+ ]
+ ].
+!
+
+testSmalltalkClass
+ | compiledParser normalParser |
+ normalParser := self petitParser.
+ compiledParser := self compiledParser.
+
+ fileResources smalltalkClassMethods do: [ :source |
+ self assert: (normalParser parse: source)
+ equals: (compiledParser parse: source withContext: self context).
+ ].
+!
+
+testSmalltalkObject
+ | compiledParser normalParser |
+ normalParser := self petitParser.
+ compiledParser := self compiledParser.
+
+ fileResources smalltalkObjectMethods do: [ :source |
+ self assert: (normalParser parse: source)
+ equals: (compiledParser parse: source withContext: self context).
+ ].
+! !
+
+!PPCSmalltalkGrammarVerificationTest class methodsFor:'documentation'!
+
+version
+ ^ 'Path: stx/goodies/petitparser/compiler/tests/extras/PPCSmalltalkVerificationTest.st, Version: 1.0, User: jv, Time: 2015-07-30T08:07:11.283+01'
+!
+
+version_HG
+ ^ 'Path: stx/goodies/petitparser/compiler/tests/extras/PPCSmalltalkVerificationTest.st, Version: 1.0, User: jv, Time: 2015-07-30T08:07:11.283+01'
+! !
+