"{ Package: 'stx:goodies/petitparser/compiler/tests' }"
"{ NameSpace: Smalltalk }"
PPAbstractParserTest subclass:#PPCVerificationTest
instanceVariableNames:'parser result context resource'
classVariableNames:''
poolDictionaries:''
category:'PetitCompiler-Tests-Core'
!
!PPCVerificationTest class methodsFor:'as yet unclassified'!
resources
^ (OrderedCollection with: PPCompiledJavaResource with: PPCompiledSmalltalkGrammarResource)
addAll: super resources;
yourself
! !
!PPCVerificationTest methodsFor:'tests - verification Java'!
compiledJavaSyntax
^ (Smalltalk at: #PPCompiledJavaSyntax) new
!
compiledSmalltalkGrammar
^ (Smalltalk at: #PPCompiledSmalltalkGrammar) new
!
context
^ context := PPCProfilingContext new
!
javaSyntax
^ PPJavaSyntax new
!
setUp
super setUp.
!
smalltalkGrammar
^ PPSmalltalkGrammar new
!
testJava
| compiledParser normalParser |
normalParser := self javaSyntax.
compiledParser := self compiledJavaSyntax.
PPCBenchmarkResources new javaSourcesBig do: [ :source |
result := normalParser parse: source.
result isPetitFailure not ifTrue: [
self assert: (compiledParser parse: source withContext: self context)
equals: result
]
].
!
testJavaTimer
| compiledParser normalParser source |
normalParser := self javaSyntax.
source := FileStream fileNamed: '../java-src/java/util/Timer.java'.
result := normalParser parse: source.
result isPetitFailure not ifTrue: [
compiledParser := self compiledJavaSyntax.
self assert: (compiledParser parse: source withContext: self context)
equals: result
]
! !
!PPCVerificationTest methodsFor:'tests - verification Smalltalk'!
testSmalltalk
| compiledParser normalParser expected actual |
normalParser := self smalltalkGrammar.
compiledParser := self compiledSmalltalkGrammar.
PPCBenchmarkResources new 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 source |
normalParser := self smalltalkGrammar.
compiledParser := self compiledSmalltalkGrammar.
Class methods do: [ :m |
source := m sourceCode.
self assert: (normalParser parse: source)
equals: (compiledParser parse: source withContext: self context).
].
!
testSmalltalkObject
| compiledParser normalParser source |
normalParser := self smalltalkGrammar.
compiledParser := self compiledSmalltalkGrammar.
Object methods do: [ :m |
source := m sourceCode.
self assert: (normalParser parse: source)
equals: (compiledParser parse: source withContext: self context).
].
! !