|
1 "{ Package: 'stx:goodies/petitparser/compiler/tests/extras' }" |
|
2 |
|
3 "{ NameSpace: Smalltalk }" |
|
4 |
|
5 PPCAbstractParserTest subclass:#PPCSmalltalkParserVerificationTest |
|
6 instanceVariableNames:'parser result context resource fileResources' |
|
7 classVariableNames:'' |
|
8 poolDictionaries:'' |
|
9 category:'PetitCompiler-Extras-Tests-Smalltalk' |
|
10 ! |
|
11 |
|
12 !PPCSmalltalkParserVerificationTest class methodsFor:'as yet unclassified'! |
|
13 |
|
14 resources |
|
15 ^ (OrderedCollection with: PPCResources) |
|
16 addAll: super resources; |
|
17 yourself |
|
18 ! ! |
|
19 |
|
20 !PPCSmalltalkParserVerificationTest class methodsFor:'queries'! |
|
21 |
|
22 isAbstract |
|
23 "Return if this class is an abstract class. |
|
24 True is returned here for myself only; false for subclasses. |
|
25 Abstract subclasses must redefine again." |
|
26 |
|
27 ^ self == PPCSmalltalkParserVerificationTest. |
|
28 ! ! |
|
29 |
|
30 !PPCSmalltalkParserVerificationTest methodsFor:'accessing'! |
|
31 |
|
32 petitParserClass |
|
33 "Return the name of the petit parser to compile" |
|
34 |
|
35 ^ PPSmalltalkGrammar |
|
36 |
|
37 "Created: / 29-07-2015 / 19:52:19 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
38 ! ! |
|
39 |
|
40 !PPCSmalltalkParserVerificationTest methodsFor:'setup'! |
|
41 |
|
42 setUp |
|
43 super setUp. |
|
44 fileResources := (self resources detect: [:e | e = PPCResources ]) current. |
|
45 ! |
|
46 |
|
47 tearDown |
|
48 super tearDown. |
|
49 " |
|
50 self compiledSmalltalkGrammarClass isNil ifFalse:[ |
|
51 self compiledSmalltalkGrammarClass removeFromSystem |
|
52 ]. |
|
53 " |
|
54 ! ! |
|
55 |
|
56 !PPCSmalltalkParserVerificationTest methodsFor:'tests'! |
|
57 |
|
58 testSmalltalk |
|
59 | compiledParser normalParser expected actual | |
|
60 normalParser := self petitParser. |
|
61 compiledParser := self compiledParser. |
|
62 |
|
63 fileResources smalltalkSourcesBig do: [ :source | |
|
64 expected := normalParser parse: source. |
|
65 expected isPetitFailure ifFalse: [ |
|
66 actual := (compiledParser parse: source withContext: self context). |
|
67 self assert: expected equals: actual. |
|
68 ] |
|
69 ]. |
|
70 ! |
|
71 |
|
72 testSmalltalkClass |
|
73 | compiledParser normalParser | |
|
74 normalParser := self petitParser. |
|
75 compiledParser := self compiledParser. |
|
76 |
|
77 fileResources smalltalkClassMethods do: [ :source | |
|
78 self assert: (normalParser parse: source) |
|
79 equals: (compiledParser parse: source withContext: self context). |
|
80 ]. |
|
81 ! |
|
82 |
|
83 testSmalltalkObject |
|
84 | compiledParser normalParser | |
|
85 normalParser := self petitParser. |
|
86 compiledParser := self compiledParser. |
|
87 |
|
88 fileResources smalltalkObjectMethods do: [ :source | |
|
89 self assert: (normalParser parse: source) |
|
90 equals: (compiledParser parse: source withContext: self context). |
|
91 ]. |
|
92 ! ! |
|
93 |