RegressionTests__OperatingSystemTest.st
author Claus Gittinger <cg@exept.de>
Tue, 26 Mar 2019 18:29:27 +0100
changeset 2179 9d14571951e7
parent 2160 f2b59e219ee5
child 2224 b00d766d6c9d
permissions -rw-r--r--
#OTHER by cg class: TestCase category of: #setUp #tearDown
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1351
diff changeset
     1
"{ Package: 'stx:goodies/regression' }"
153
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
"{ NameSpace: RegressionTests }"
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
TestCase subclass:#OperatingSystemTest
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	instanceVariableNames:''
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
	classVariableNames:''
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
	poolDictionaries:''
1265
df1555a5fb95 class: RegressionTests::OperatingSystemTest
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
     9
	category:'tests-Regression-RuntimeSystem'
153
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
!
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
1633
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    13
!OperatingSystemTest methodsFor:'constants'!
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    14
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    15
targetFile
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    16
    |baseName|
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    17
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    18
    baseName := 'lsOut'.
153
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
1633
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    20
    OperatingSystem isMSDOSlike ifTrue:[
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    21
        ^ Filename homeDirectory "ensure write permission" / baseName  
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    22
    ].
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    23
    OperatingSystem isUNIXlike ifTrue:[
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    24
        ^ '/tmp' asFilename / baseName  
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    25
    ].
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    26
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    27
    self notYetImplemented
153
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
! !
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
1633
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    30
!OperatingSystemTest methodsFor:'helpers'!
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    31
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    32
helperActorStreamWithCommand:aCommand
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    33
    |targetFile expected outStr errStr exitStatus|
153
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
1633
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    35
    OperatingSystem isMSDOSlike ifFalse:[
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    36
        ^ self
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    37
    ].
154
e67b3e320bc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 153
diff changeset
    38
1633
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    39
    targetFile := self targetFile.
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    40
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    41
    OperatingSystem executeCommand:aCommand, ' > ', targetFile pathName.
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    42
    expected := targetFile contentsOfEntireFile.
154
e67b3e320bc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 153
diff changeset
    43
e67b3e320bc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 153
diff changeset
    44
    outStr := ActorStream new.
e67b3e320bc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 153
diff changeset
    45
    outStr nextPutLineBlock:[:line | Transcript normal; showCR:line ].
e67b3e320bc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 153
diff changeset
    46
    errStr := ActorStream new.
e67b3e320bc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 153
diff changeset
    47
    outStr nextPutLineBlock:[:line | Transcript bold; showCR:line ].
e67b3e320bc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 153
diff changeset
    48
e67b3e320bc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 153
diff changeset
    49
    OperatingSystem
1633
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    50
        executeCommand:aCommand
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    51
        inputFrom:nil
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    52
        outputTo:outStr
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    53
        errorTo:errStr
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    54
        inDirectory:nil
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    55
        lineWise:true
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    56
        onError:[:status | exitStatus := status].
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    57
!
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    58
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    59
helperCommandOutput1WithCommand:aCommand
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    60
    |targetFile expected outStr errStr exitStatus|
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    61
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    62
    targetFile := self targetFile.
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    63
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    64
    OperatingSystem executeCommand:aCommand, ' > ', targetFile pathName.
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    65
    expected := targetFile contentsOfEntireFile.
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    66
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    67
    1 to:50 do:[:counter |
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    68
"/ Transcript show:counter; showCR:':'.
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    69
        outStr := '' writeStream.
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    70
        errStr := '' writeStream.
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    71
        OperatingSystem
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    72
            executeCommand:aCommand
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    73
            inputFrom:nil
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    74
            outputTo:outStr
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    75
            errorTo:errStr
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    76
            onError:[:status | exitStatus := status].
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    77
        self assert:(outStr contents = expected).
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    78
        self assert:(errStr contents isEmpty).
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    79
        self assert:(exitStatus isNil).
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    80
    ].
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    81
!
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    82
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    83
helperCommandOutput2WithCommand:aCommand
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    84
    |outStr errStr exitStatus|
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    85
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    86
    1 to:50 do:[:counter |
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    87
"/ Transcript show:counter; showCR:':'.
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    88
        outStr := '' writeStream.
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    89
        errStr := '' writeStream.
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    90
        OperatingSystem
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    91
            executeCommand:aCommand
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    92
            inputFrom:nil
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    93
            outputTo:outStr
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    94
            errorTo:errStr
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    95
            onError:[:status | exitStatus := status].
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    96
        self assert:(outStr contents isEmpty).
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    97
        self assert:(errStr contents notEmpty).
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    98
        self assert:(exitStatus success not).
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
    99
        self assert:(exitStatus stillAlive not).
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   100
        self assert:(exitStatus couldNotExecute not).
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   101
    ].
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   102
! !
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   103
2160
f2b59e219ee5 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 1814
diff changeset
   104
!OperatingSystemTest methodsFor:'initialize / release'!
1633
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   105
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   106
tearDown
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   107
    self targetFile delete.
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   108
! !
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   109
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   110
!OperatingSystemTest methodsFor:'tests'!
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   111
1643
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   112
test01_environmentVariables
1704
ca79c2585edf *** empty log message ***
sr
parents: 1645
diff changeset
   113
    |cr content batchFile output 
1644
2bdf26440ea1 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   114
     expected50 expected101 expected203 expected407 expected815 expected1631 expected3263
1814
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   115
     expected6527 pathOfSTXExecutable|
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   116
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   117
    pathOfSTXExecutable := OperatingSystem pathOfSTXExecutable.
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   118
    (pathOfSTXExecutable endsWith:'stx.com') ifFalse:[
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   119
        "we are started by /stx/goodies/builder/quickSelfTest/quickSelfTest.com
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   120
         but do need stx.com"
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   121
        pathOfSTXExecutable := '../../../projects/smalltalk/stx.com'  
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   122
    ].
1643
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   123
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   124
    self 
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   125
        skipIf:(OperatingSystem isMSWINDOWSlike not)
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   126
        description:'This test is only for the Windows platform'.
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   127
1814
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   128
        cr := Character cr asString.
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   129
        
1644
2bdf26440ea1 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   130
    "/ creates a batch file and starts another stx inside it, which retrieves a previously
2bdf26440ea1 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   131
    "/ set environment variable...
1643
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   132
    "/ reading env-var
1814
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   133
        content := 
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   134
                '@set FOO=hello', cr,
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   135
                ('@"%1" --eval "Stdout nextPutAll:(OperatingSystem getEnvironment:''FOO'') "'
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   136
                        bindWith:pathOfSTXExecutable).
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   137
                        
1643
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   138
    batchFile := 'test.bat' asFilename.
1704
ca79c2585edf *** empty log message ***
sr
parents: 1645
diff changeset
   139
    batchFile contents:content.
1643
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   140
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   141
    output := 
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   142
        String streamContents:[:out |
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   143
            OperatingSystem executeCommand:'test.bat' outputTo:out.
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   144
        ].
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   145
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   146
    self assert:(output = 'hello').
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   147
1814
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   148
        
1643
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   149
    "/ reading a longer env-var (50 chars)
1814
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   150
        content := 
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   151
                '@set FOO=12345678901234567890123456789012345678901234567890', cr,
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   152
                ('@"%1" --eval "Stdout nextPutAll:(OperatingSystem getEnvironment:''FOO'') "'
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   153
                        bindWith:pathOfSTXExecutable).
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   154
                
1643
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   155
    batchFile := 'test.bat' asFilename.
1704
ca79c2585edf *** empty log message ***
sr
parents: 1645
diff changeset
   156
    batchFile contents:content.
1814
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   157
                        
1643
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   158
    output := 
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   159
        String streamContents:[:out |
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   160
            OperatingSystem executeCommand:'test.bat' outputTo:out.
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   161
        ].
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   162
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   163
    self assert:(output = '12345678901234567890123456789012345678901234567890').
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   164
1814
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   165
        
1643
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   166
    "/ reading a longer env-var (1631 chars)
1814
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   167
        content := 
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   168
                '@set V50=12345678901234567890123456789012345678901234567890', cr,
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   169
                '@set V101=%V50%;%V50%', cr,
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   170
                '@set V203=%V101%;%V101%', cr,
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   171
                '@set V407=%V203%;%V203%', cr,
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   172
                '@set V815=%V407%;%V407%', cr,
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   173
                '@set V1631=%V815%;%V815%', cr,
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   174
                ('@"%1" --eval "Stdout nextPutAll:(OperatingSystem getEnvironment:''V1631'') "'
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   175
                        bindWith:pathOfSTXExecutable).
1643
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   176
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   177
    batchFile := 'test.bat' asFilename.
1704
ca79c2585edf *** empty log message ***
sr
parents: 1645
diff changeset
   178
    batchFile contents:content.
1814
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   179
        
1643
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   180
    output := 
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   181
        String streamContents:[:out |
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   182
            OperatingSystem executeCommand:'test.bat' outputTo:out.
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   183
        ].
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   184
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   185
    expected50 := '12345678901234567890123456789012345678901234567890'.
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   186
    expected101 := expected50,';',expected50.
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   187
    expected203 := expected101,';',expected101.
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   188
    expected407 := expected203,';',expected203.
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   189
    expected815 := expected407,';',expected407.
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   190
    expected1631 := expected815,';',expected815.
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   191
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   192
    self assert:(output = expected1631).
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   193
1814
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   194
        
1644
2bdf26440ea1 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   195
    "/ reading a longer env-var (3263 chars)
1814
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   196
        content := 
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   197
                '@set V50=12345678901234567890123456789012345678901234567890', cr,
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   198
                '@set V101=%V50%;%V50%', cr,
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   199
                '@set V203=%V101%;%V101%', cr,
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   200
                '@set V407=%V203%;%V203%', cr,
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   201
                '@set V815=%V407%;%V407%', cr,
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   202
                '@set V1631=%V815%;%V815%', cr,
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   203
                '@set V3263=%V1631%;%V1631%', cr,
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   204
                ('@"%1" --eval "Stdout nextPutAll:(OperatingSystem getEnvironment:''V3263'') "'
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   205
                        bindWith:pathOfSTXExecutable).
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   206
                        
1643
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   207
    batchFile := 'test.bat' asFilename.
1704
ca79c2585edf *** empty log message ***
sr
parents: 1645
diff changeset
   208
    batchFile contents:content.
1643
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   209
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   210
    output := 
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   211
        String streamContents:[:out |
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   212
            OperatingSystem executeCommand:'test.bat' outputTo:out.
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   213
        ].
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   214
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   215
    expected50 := '12345678901234567890123456789012345678901234567890'.
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   216
    expected101 := expected50,';',expected50.
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   217
    expected203 := expected101,';',expected101.
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   218
    expected407 := expected203,';',expected203.
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   219
    expected815 := expected407,';',expected407.
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   220
    expected1631 := expected815,';',expected815.
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   221
    expected3263 := expected1631,';',expected1631.
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   222
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   223
    self assert:(output = expected3263).
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   224
1814
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   225
        
1704
ca79c2585edf *** empty log message ***
sr
parents: 1645
diff changeset
   226
    "/ reading a very long env-var (6527 chars)
1814
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   227
        content := 
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   228
                '@set V50=12345678901234567890123456789012345678901234567890', cr,
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   229
                '@set V101=%V50%;%V50%', cr,
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   230
                '@set V203=%V101%;%V101%', cr,
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   231
                '@set V407=%V203%;%V203%', cr,
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   232
                '@set V815=%V407%;%V407%', cr,
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   233
                '@set V1631=%V815%;%V815%', cr,
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   234
                '@set V3263=%V1631%;%V1631%', cr,
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   235
                '@set V6527=%V3263%;%V3263%', cr,
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   236
                ('@"%1" --eval "Stdout nextPutAll:(OperatingSystem getEnvironment:''V6527'') "'
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   237
                        bindWith:pathOfSTXExecutable).
1644
2bdf26440ea1 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   238
2bdf26440ea1 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   239
    batchFile := 'test.bat' asFilename.
1704
ca79c2585edf *** empty log message ***
sr
parents: 1645
diff changeset
   240
    batchFile contents:content.
1644
2bdf26440ea1 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   241
2bdf26440ea1 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   242
    output := 
2bdf26440ea1 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   243
        String streamContents:[:out |
2bdf26440ea1 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   244
            OperatingSystem executeCommand:'test.bat' outputTo:out.
2bdf26440ea1 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   245
        ].
2bdf26440ea1 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   246
2bdf26440ea1 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   247
    expected50 := '12345678901234567890123456789012345678901234567890'.
2bdf26440ea1 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   248
    expected101 := expected50,';',expected50.
2bdf26440ea1 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   249
    expected203 := expected101,';',expected101.
2bdf26440ea1 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   250
    expected407 := expected203,';',expected203.
2bdf26440ea1 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   251
    expected815 := expected407,';',expected407.
2bdf26440ea1 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   252
    expected1631 := expected815,';',expected815.
2bdf26440ea1 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   253
    expected3263 := expected1631,';',expected1631.
2bdf26440ea1 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   254
    expected6527 := expected3263,';',expected3263.
2bdf26440ea1 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   255
1645
da81f14033ea #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 1644
diff changeset
   256
    self assert:(output = expected6527).
1644
2bdf26440ea1 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   257
1643
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   258
    "
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   259
     self new test01_environmentVariables
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   260
    "
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   261
!
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   262
1633
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   263
testActorStream
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   264
    OperatingSystem isMSDOSlike ifTrue:[
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   265
        self helperActorStreamWithCommand:'dir'. 
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   266
        ^ self
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   267
    ].
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   268
    OperatingSystem isUNIXlike ifTrue:[
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   269
        self helperActorStreamWithCommand:'ls'.
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   270
        ^ self             
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   271
    ].
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   272
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   273
    self notYetImplemented
154
e67b3e320bc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 153
diff changeset
   274
e67b3e320bc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 153
diff changeset
   275
    "
1633
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   276
        self new testActorStream
154
e67b3e320bc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 153
diff changeset
   277
    "
e67b3e320bc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 153
diff changeset
   278
!
e67b3e320bc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 153
diff changeset
   279
153
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   280
testCommandOutput1
1633
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   281
    OperatingSystem isMSDOSlike ifTrue:[
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   282
        self helperCommandOutput1WithCommand:'dir /b'. "/ /b print just filenames, because the filesize differs...
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   283
        ^ self
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   284
    ].
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   285
    OperatingSystem isUNIXlike ifTrue:[
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   286
        self helperCommandOutput1WithCommand:'ls'.
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   287
        ^ self             
153
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   288
    ].
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   289
1633
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   290
    self notYetImplemented
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   291
153
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   292
    "
1633
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   293
        self new testCommandOutput1
153
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   294
    "
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   295
!
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   296
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   297
testCommandOutput2
1633
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   298
    OperatingSystem isMSDOSlike ifTrue:[
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   299
        self helperCommandOutput2WithCommand:'dir /fooBar'. 
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   300
        ^ self
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   301
    ].
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   302
    OperatingSystem isUNIXlike ifTrue:[
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   303
        self helperCommandOutput2WithCommand:'ls /fooBar'.
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   304
        ^ self             
153
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   305
    ].
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   306
1633
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   307
    self notYetImplemented
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   308
153
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   309
    "
1633
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   310
        self new testCommandOutput2
153
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   311
    "
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   312
!
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   313
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   314
testInvalidCommand
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   315
    |outStr errStr exitStatus|
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   316
154
e67b3e320bc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 153
diff changeset
   317
    1 to:50 do:[:counter |
155
753c1750e225 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 154
diff changeset
   318
"/ Transcript show:counter; showCR:':'.
1639
b52780155182 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 1633
diff changeset
   319
        outStr := '' writeStream.
b52780155182 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 1633
diff changeset
   320
        errStr := '' writeStream.
b52780155182 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 1633
diff changeset
   321
        OperatingSystem
b52780155182 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 1633
diff changeset
   322
            executeCommand:'blabla /fooBar'
b52780155182 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 1633
diff changeset
   323
            inputFrom:nil
b52780155182 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 1633
diff changeset
   324
            outputTo:outStr
b52780155182 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 1633
diff changeset
   325
            errorTo:errStr
b52780155182 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 1633
diff changeset
   326
            onError:[:status | exitStatus := status].
b52780155182 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 1633
diff changeset
   327
        self assert:(exitStatus success not).
b52780155182 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 1633
diff changeset
   328
        self assert:(exitStatus stillAlive not).
b52780155182 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 1633
diff changeset
   329
        "/ couldNotExecute could not be detected in Windows, since cmd.exe does not return the status
b52780155182 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 1633
diff changeset
   330
        self assert:(OperatingSystem isMSWINDOWSlike or:[exitStatus couldNotExecute]).
b52780155182 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 1633
diff changeset
   331
        self assert:(outStr contents isEmpty).
b52780155182 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 1633
diff changeset
   332
        self assert:(errStr contents notEmpty).
153
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   333
    ].
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   334
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   335
    "
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   336
     self new testInvalidCommand
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   337
    "
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   338
! !
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   339
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   340
!OperatingSystemTest class methodsFor:'documentation'!
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   341
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   342
version
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   343
    ^ '$Header$'
1351
f2b2fb3966d2 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1350
diff changeset
   344
!
f2b2fb3966d2 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1350
diff changeset
   345
f2b2fb3966d2 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1350
diff changeset
   346
version_CVS
f2b2fb3966d2 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1350
diff changeset
   347
    ^ '$Header$'
153
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   348
! !
1265
df1555a5fb95 class: RegressionTests::OperatingSystemTest
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   349