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