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 |
|