compiler/tests/PPCVerificationTest.st
changeset 438 20598d7ce9fa
child 451 989570319d14
equal deleted inserted replaced
437:54b3bc9e3987 438:20598d7ce9fa
       
     1 "{ Package: 'stx:goodies/petitparser/compiler/tests' }"
       
     2 
       
     3 "{ NameSpace: Smalltalk }"
       
     4 
       
     5 PPAbstractParserTest subclass:#PPCVerificationTest
       
     6 	instanceVariableNames:'parser result context resource'
       
     7 	classVariableNames:''
       
     8 	poolDictionaries:''
       
     9 	category:'PetitCompiler-Tests-Core'
       
    10 !
       
    11 
       
    12 !PPCVerificationTest class methodsFor:'as yet unclassified'!
       
    13 
       
    14 resources
       
    15 	^ (OrderedCollection with: PPCompiledJavaResource with: PPCompiledSmalltalkGrammarResource)
       
    16 		addAll: super resources;
       
    17 		yourself
       
    18 ! !
       
    19 
       
    20 !PPCVerificationTest methodsFor:'tests - verification Java'!
       
    21 
       
    22 compiledJavaSyntax
       
    23 	^ (Smalltalk at: #PPCompiledJavaSyntax) new
       
    24 !
       
    25 
       
    26 compiledSmalltalkGrammar
       
    27 	^ (Smalltalk at: #PPCompiledSmalltalkGrammar) new
       
    28 !
       
    29 
       
    30 context	
       
    31 	^ context := PPCProfilingContext new
       
    32 !
       
    33 
       
    34 javaSyntax
       
    35 	^ PPJavaSyntax new
       
    36 !
       
    37 
       
    38 setUp
       
    39 	super setUp.
       
    40 !
       
    41 
       
    42 smalltalkGrammar
       
    43 	^ PPSmalltalkGrammar new
       
    44 !
       
    45 
       
    46 testJava
       
    47 	| compiledParser normalParser |
       
    48 	normalParser := self javaSyntax.
       
    49 	compiledParser := self compiledJavaSyntax.
       
    50 	
       
    51 	PPCBenchmarkResources new javaSourcesBig do: [ :source |
       
    52 		result := normalParser parse: source.
       
    53 		result isPetitFailure not ifTrue: [ 
       
    54 			self assert: (compiledParser parse: source withContext: self context)
       
    55 				  equals: result
       
    56 		]
       
    57 	].
       
    58 !
       
    59 
       
    60 testJavaTimer
       
    61 	| compiledParser normalParser source |
       
    62 	normalParser := self javaSyntax.
       
    63 	
       
    64 	source := FileStream fileNamed: '../java-src/java/util/Timer.java'.
       
    65 	result := normalParser parse: source.
       
    66 	
       
    67 	result isPetitFailure not ifTrue: [ 
       
    68 		compiledParser := self compiledJavaSyntax.
       
    69 		self assert: (compiledParser parse: source withContext: self context)
       
    70 			  equals: result
       
    71 	]
       
    72 ! !
       
    73 
       
    74 !PPCVerificationTest methodsFor:'tests - verification Smalltalk'!
       
    75 
       
    76 testSmalltalk
       
    77 	| compiledParser normalParser expected actual |
       
    78 	normalParser := self smalltalkGrammar.
       
    79 	compiledParser := self compiledSmalltalkGrammar.
       
    80 	
       
    81 	PPCBenchmarkResources new smalltalkSourcesBig do: [ :source |
       
    82 		expected := normalParser parse: source.
       
    83 		expected isPetitFailure ifFalse: [ 
       
    84 	 		actual := (compiledParser parse: source withContext: self context). 
       
    85 			self assert: expected equals: actual.
       
    86 		]
       
    87 	].
       
    88 !
       
    89 
       
    90 testSmalltalkClass
       
    91 	| compiledParser normalParser source |
       
    92 	normalParser := self smalltalkGrammar.
       
    93 	compiledParser := self compiledSmalltalkGrammar.
       
    94 	
       
    95 	Class methods do: [ :m |
       
    96 		source := m sourceCode.
       
    97 		self assert: (normalParser parse: source) 
       
    98 			  equals: (compiledParser parse: source withContext: self context). 
       
    99 	].
       
   100 !
       
   101 
       
   102 testSmalltalkObject
       
   103 	| compiledParser normalParser source |
       
   104 	normalParser := self smalltalkGrammar.
       
   105 	compiledParser := self compiledSmalltalkGrammar.
       
   106 	
       
   107 	Object methods do: [ :m |
       
   108 		source := m sourceCode.
       
   109 		self assert: (normalParser parse: source) 
       
   110 			  equals: (compiledParser parse: source withContext: self context). 
       
   111 	].
       
   112 ! !
       
   113