compiler/tests/extras/PPCSmalltalkTests.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Mon, 24 Aug 2015 23:42:53 +0100
changeset 529 439c4057517f
parent 525 751532c8f3db
child 537 fb212e14d1f4
permissions -rw-r--r--
PPCConfiguration refactoring [1/10]: renamed PPCArguments to PPCCompilationOptions Renamed PPCConfiguration>>#arguments/#arguments: to #options/#options:

"{ Package: 'stx:goodies/petitparser/compiler/tests/extras' }"

"{ NameSpace: Smalltalk }"

TestCase subclass:#PPCSmalltalkTests
	instanceVariableNames:'configuration options result'
	classVariableNames:''
	poolDictionaries:''
	category:'PetitCompiler-Extras-Tests-Smalltalk'
!

!PPCSmalltalkTests methodsFor:'as yet unclassified'!

assert: parser parse: input
    result := parser parse: input.
    self assert: result isPetitFailure not.
!

setUp
    options := PPCArguments default
        profile: true;
        yourself.
        
    configuration := PPCTokenizingConfiguration new
        options: options;
        yourself.
!

testSmalltakToken
    | token1  |
    token1 := 'a' asParser smalltalkToken compileWithConfiguration: configuration.
    
    self assert: ((token1 parse: 'a') class == PPSmalltalkToken).
    self assert: (token1 parse: '"comment" a "another comment"') inputValue = 'a'
!

testSmalltakToken2
    | parser compiled  |
    parser := 'a' asParser smalltalkToken, 'b' asParser smalltalkToken.
    compiled := parser compileWithConfiguration: configuration.
    
    self assert: compiled parse: 'ab'.
    self assert: compiled parse: '"comment" a "another comment" b '.
    self assert: result size = 2.
    self assert: result first inputValue = 'a'.
    self assert: result second inputValue = 'b'.
    
!

testSmalltakWhitespace
    | ws1 ws2 |
    ws1 := PPSmalltalkWhitespaceParser new.
    ws2 := PPSmalltalkWhitespaceParser new.
    
    self assert: ws1 = ws2.
    self assert: ws1 ~~ ws2.
    
    self assert: ws1 hash = ws2 hash.

    "Modified: / 30-07-2015 / 06:56:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !