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