RegressionTests__OperatingSystemTest.st
author sr
Wed, 18 Oct 2017 15:00:54 +0200
changeset 1884 ad279a6d791d
parent 1814 bc52c5aca9b5
child 2160 f2b59e219ee5
permissions -rw-r--r--
#REFACTORING by sr class: RegressionTests::ProjectDefinitionTests changed: #test_filein_01
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
1704
ca79c2585edf *** empty log message ***
sr
parents: 1645
diff changeset
   115
    |cr content batchFile output 
1644
2bdf26440ea1 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   116
     expected50 expected101 expected203 expected407 expected815 expected1631 expected3263
1814
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   117
     expected6527 pathOfSTXExecutable|
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   118
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   119
    pathOfSTXExecutable := OperatingSystem pathOfSTXExecutable.
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   120
    (pathOfSTXExecutable endsWith:'stx.com') ifFalse:[
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   121
        "we are started by /stx/goodies/builder/quickSelfTest/quickSelfTest.com
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   122
         but do need stx.com"
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   123
        pathOfSTXExecutable := '../../../projects/smalltalk/stx.com'  
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   124
    ].
1643
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   125
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   126
    self 
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   127
        skipIf:(OperatingSystem isMSWINDOWSlike not)
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   128
        description:'This test is only for the Windows platform'.
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   129
1814
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   130
        cr := Character cr asString.
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   131
        
1644
2bdf26440ea1 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   132
    "/ 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
   133
    "/ set environment variable...
1643
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   134
    "/ reading env-var
1814
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   135
        content := 
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   136
                '@set FOO=hello', cr,
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   137
                ('@"%1" --eval "Stdout nextPutAll:(OperatingSystem getEnvironment:''FOO'') "'
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   138
                        bindWith:pathOfSTXExecutable).
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   139
                        
1643
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   140
    batchFile := 'test.bat' asFilename.
1704
ca79c2585edf *** empty log message ***
sr
parents: 1645
diff changeset
   141
    batchFile contents:content.
1643
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   142
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   143
    output := 
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   144
        String streamContents:[:out |
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   145
            OperatingSystem executeCommand:'test.bat' outputTo:out.
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
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   148
    self assert:(output = 'hello').
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   149
1814
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   150
        
1643
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   151
    "/ reading a longer env-var (50 chars)
1814
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   152
        content := 
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   153
                '@set FOO=12345678901234567890123456789012345678901234567890', cr,
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   154
                ('@"%1" --eval "Stdout nextPutAll:(OperatingSystem getEnvironment:''FOO'') "'
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   155
                        bindWith:pathOfSTXExecutable).
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   156
                
1643
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   157
    batchFile := 'test.bat' asFilename.
1704
ca79c2585edf *** empty log message ***
sr
parents: 1645
diff changeset
   158
    batchFile contents:content.
1814
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   159
                        
1643
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   160
    output := 
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   161
        String streamContents:[:out |
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   162
            OperatingSystem executeCommand:'test.bat' outputTo:out.
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   163
        ].
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
    self assert:(output = '12345678901234567890123456789012345678901234567890').
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   166
1814
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   167
        
1643
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   168
    "/ reading a longer env-var (1631 chars)
1814
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   169
        content := 
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   170
                '@set V50=12345678901234567890123456789012345678901234567890', cr,
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   171
                '@set V101=%V50%;%V50%', cr,
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   172
                '@set V203=%V101%;%V101%', cr,
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   173
                '@set V407=%V203%;%V203%', cr,
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   174
                '@set V815=%V407%;%V407%', cr,
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   175
                '@set V1631=%V815%;%V815%', cr,
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   176
                ('@"%1" --eval "Stdout nextPutAll:(OperatingSystem getEnvironment:''V1631'') "'
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   177
                        bindWith:pathOfSTXExecutable).
1643
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   178
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   179
    batchFile := 'test.bat' asFilename.
1704
ca79c2585edf *** empty log message ***
sr
parents: 1645
diff changeset
   180
    batchFile contents:content.
1814
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   181
        
1643
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   182
    output := 
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   183
        String streamContents:[:out |
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   184
            OperatingSystem executeCommand:'test.bat' outputTo:out.
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   185
        ].
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   186
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   187
    expected50 := '12345678901234567890123456789012345678901234567890'.
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   188
    expected101 := expected50,';',expected50.
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   189
    expected203 := expected101,';',expected101.
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   190
    expected407 := expected203,';',expected203.
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   191
    expected815 := expected407,';',expected407.
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   192
    expected1631 := expected815,';',expected815.
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   193
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   194
    self assert:(output = expected1631).
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   195
1814
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   196
        
1644
2bdf26440ea1 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   197
    "/ reading a longer env-var (3263 chars)
1814
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   198
        content := 
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   199
                '@set V50=12345678901234567890123456789012345678901234567890', cr,
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   200
                '@set V101=%V50%;%V50%', cr,
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   201
                '@set V203=%V101%;%V101%', cr,
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   202
                '@set V407=%V203%;%V203%', cr,
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   203
                '@set V815=%V407%;%V407%', cr,
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   204
                '@set V1631=%V815%;%V815%', cr,
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   205
                '@set V3263=%V1631%;%V1631%', cr,
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   206
                ('@"%1" --eval "Stdout nextPutAll:(OperatingSystem getEnvironment:''V3263'') "'
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   207
                        bindWith:pathOfSTXExecutable).
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   208
                        
1643
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   209
    batchFile := 'test.bat' asFilename.
1704
ca79c2585edf *** empty log message ***
sr
parents: 1645
diff changeset
   210
    batchFile contents:content.
1643
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   211
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   212
    output := 
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   213
        String streamContents:[:out |
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   214
            OperatingSystem executeCommand:'test.bat' outputTo:out.
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   215
        ].
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   216
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   217
    expected50 := '12345678901234567890123456789012345678901234567890'.
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   218
    expected101 := expected50,';',expected50.
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   219
    expected203 := expected101,';',expected101.
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   220
    expected407 := expected203,';',expected203.
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   221
    expected815 := expected407,';',expected407.
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   222
    expected1631 := expected815,';',expected815.
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   223
    expected3263 := expected1631,';',expected1631.
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   224
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   225
    self assert:(output = expected3263).
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   226
1814
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   227
        
1704
ca79c2585edf *** empty log message ***
sr
parents: 1645
diff changeset
   228
    "/ reading a very long env-var (6527 chars)
1814
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   229
        content := 
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   230
                '@set V50=12345678901234567890123456789012345678901234567890', cr,
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   231
                '@set V101=%V50%;%V50%', cr,
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   232
                '@set V203=%V101%;%V101%', cr,
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   233
                '@set V407=%V203%;%V203%', cr,
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   234
                '@set V815=%V407%;%V407%', cr,
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   235
                '@set V1631=%V815%;%V815%', cr,
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   236
                '@set V3263=%V1631%;%V1631%', cr,
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   237
                '@set V6527=%V3263%;%V3263%', cr,
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   238
                ('@"%1" --eval "Stdout nextPutAll:(OperatingSystem getEnvironment:''V6527'') "'
bc52c5aca9b5 #BUGFIX by sr
sr
parents: 1704
diff changeset
   239
                        bindWith:pathOfSTXExecutable).
1644
2bdf26440ea1 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   240
2bdf26440ea1 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   241
    batchFile := 'test.bat' asFilename.
1704
ca79c2585edf *** empty log message ***
sr
parents: 1645
diff changeset
   242
    batchFile contents:content.
1644
2bdf26440ea1 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   243
2bdf26440ea1 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   244
    output := 
2bdf26440ea1 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   245
        String streamContents:[:out |
2bdf26440ea1 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   246
            OperatingSystem executeCommand:'test.bat' outputTo:out.
2bdf26440ea1 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   247
        ].
2bdf26440ea1 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   248
2bdf26440ea1 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   249
    expected50 := '12345678901234567890123456789012345678901234567890'.
2bdf26440ea1 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   250
    expected101 := expected50,';',expected50.
2bdf26440ea1 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   251
    expected203 := expected101,';',expected101.
2bdf26440ea1 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   252
    expected407 := expected203,';',expected203.
2bdf26440ea1 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   253
    expected815 := expected407,';',expected407.
2bdf26440ea1 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   254
    expected1631 := expected815,';',expected815.
2bdf26440ea1 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   255
    expected3263 := expected1631,';',expected1631.
2bdf26440ea1 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   256
    expected6527 := expected3263,';',expected3263.
2bdf26440ea1 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   257
1645
da81f14033ea #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 1644
diff changeset
   258
    self assert:(output = expected6527).
1644
2bdf26440ea1 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   259
1643
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
     self new test01_environmentVariables
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   262
    "
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   263
!
a2c1786fc80e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1639
diff changeset
   264
1633
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   265
testActorStream
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   266
    OperatingSystem isMSDOSlike ifTrue:[
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   267
        self helperActorStreamWithCommand:'dir'. 
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   268
        ^ self
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   269
    ].
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   270
    OperatingSystem isUNIXlike ifTrue:[
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   271
        self helperActorStreamWithCommand:'ls'.
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   272
        ^ self             
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   273
    ].
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   274
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   275
    self notYetImplemented
154
e67b3e320bc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 153
diff changeset
   276
e67b3e320bc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 153
diff changeset
   277
    "
1633
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   278
        self new testActorStream
154
e67b3e320bc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 153
diff changeset
   279
    "
e67b3e320bc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 153
diff changeset
   280
!
e67b3e320bc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 153
diff changeset
   281
153
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   282
testCommandOutput1
1633
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   283
    OperatingSystem isMSDOSlike ifTrue:[
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   284
        self helperCommandOutput1WithCommand:'dir /b'. "/ /b print just filenames, because the filesize differs...
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   285
        ^ self
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   286
    ].
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   287
    OperatingSystem isUNIXlike ifTrue:[
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   288
        self helperCommandOutput1WithCommand:'ls'.
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   289
        ^ self             
153
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   290
    ].
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   291
1633
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   292
    self notYetImplemented
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   293
153
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   294
    "
1633
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   295
        self new testCommandOutput1
153
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   296
    "
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   297
!
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   298
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   299
testCommandOutput2
1633
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   300
    OperatingSystem isMSDOSlike ifTrue:[
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   301
        self helperCommandOutput2WithCommand:'dir /fooBar'. 
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   302
        ^ self
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   303
    ].
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   304
    OperatingSystem isUNIXlike ifTrue:[
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   305
        self helperCommandOutput2WithCommand:'ls /fooBar'.
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   306
        ^ self             
153
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   307
    ].
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   308
1633
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   309
    self notYetImplemented
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   310
153
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   311
    "
1633
10a8f2029f10 #BUGFIX by sr
sr
parents: 1447
diff changeset
   312
        self new testCommandOutput2
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
testInvalidCommand
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   317
    |outStr errStr exitStatus|
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   318
154
e67b3e320bc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 153
diff changeset
   319
    1 to:50 do:[:counter |
155
753c1750e225 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 154
diff changeset
   320
"/ Transcript show:counter; showCR:':'.
1639
b52780155182 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 1633
diff changeset
   321
        outStr := '' writeStream.
b52780155182 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 1633
diff changeset
   322
        errStr := '' writeStream.
b52780155182 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 1633
diff changeset
   323
        OperatingSystem
b52780155182 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 1633
diff changeset
   324
            executeCommand:'blabla /fooBar'
b52780155182 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 1633
diff changeset
   325
            inputFrom:nil
b52780155182 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 1633
diff changeset
   326
            outputTo:outStr
b52780155182 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 1633
diff changeset
   327
            errorTo:errStr
b52780155182 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 1633
diff changeset
   328
            onError:[:status | exitStatus := status].
b52780155182 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 1633
diff changeset
   329
        self assert:(exitStatus success not).
b52780155182 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 1633
diff changeset
   330
        self assert:(exitStatus stillAlive not).
b52780155182 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 1633
diff changeset
   331
        "/ 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
   332
        self assert:(OperatingSystem isMSWINDOWSlike or:[exitStatus couldNotExecute]).
b52780155182 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 1633
diff changeset
   333
        self assert:(outStr contents isEmpty).
b52780155182 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 1633
diff changeset
   334
        self assert:(errStr contents notEmpty).
153
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   335
    ].
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   336
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   337
    "
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   338
     self new testInvalidCommand
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   339
    "
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   340
! !
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   341
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   342
!OperatingSystemTest class methodsFor:'documentation'!
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   343
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   344
version
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   345
    ^ '$Header$'
1351
f2b2fb3966d2 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1350
diff changeset
   346
!
f2b2fb3966d2 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1350
diff changeset
   347
f2b2fb3966d2 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1350
diff changeset
   348
version_CVS
f2b2fb3966d2 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1350
diff changeset
   349
    ^ '$Header$'
153
5aff06c4818d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   350
! !
1265
df1555a5fb95 class: RegressionTests::OperatingSystemTest
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   351