RegressionTests__ExternalStreamTest.st
author Claus Gittinger <cg@exept.de>
Tue, 18 Dec 2001 19:48:33 +0100
changeset 135 2cbca29e95be
child 138 cf36235e4ce0
permissions -rw-r--r--
initial checkin
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
135
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Package: 'exept:regression' }"
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
"{ NameSpace: Rel5 }"
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
TestCase subclass:#ExternalStreamTest
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	instanceVariableNames:''
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
	classVariableNames:''
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
	poolDictionaries:''
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
	category:'Streams-New-Tests'
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
!
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
!ExternalStreamTest methodsFor:'tests'!
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
createWithSize10:fileName
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
    "helper"
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
    (fileName asFilename exists) ifTrue:[
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
	fileName asFilename delete
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
    ].
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
    fileName asFilename writeStream 
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
	nextPutAll:'1234567890';
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
	close.
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
    self assert:(fileName asFilename exists).
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
    self assert:(fileName asFilename fileSize == 10).
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
    "
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
     self new createWithSize10:'xxx1'
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
    "
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
!
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
testPosition1
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
    |h s ch|
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
    self createWithSize10:'xxx3'.
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
    h := OperatingSystem openFileForRead:'xxx3'.
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
    s := ExternalReadStream on:h.
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
    self assert:( s atEnd not ).
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
    self assert:( s position == 0 ).
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
    ch := s next.
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
    self assert:( ch = $1 ).
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
    self assert:( s position == 1 ).
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
    s skip:1.
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
    self assert:( s position == 2 ).
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
    self assert:( s peek = $3 ).
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
    self assert:( s position == 2 ).
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
    s skip:1.
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
    self assert:( s position == 3 ).
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
    self assert:( s peek = $4 ).
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
    self assert:( s position == 3 ).
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
    s close.
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
    'xxx3' asFilename delete.
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
    "
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
     self new testPosition1
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
    "
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
!
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
testRead1
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
    "open an existing file for reading; should read 10 chars"
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
    |h s nBytesRead|
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
    self createWithSize10:'xxx3'.
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
    h := OperatingSystem openFileForRead:'xxx3'.
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
    s := ExternalReadStream on:h.
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
    '1234567890' do:[:eachExpected |
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
        self assert:( s next == eachExpected ).
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
    ].
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
    s close.
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
    'xxx3' asFilename delete.
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
    "
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
     self new testRead1
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
    "
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
!
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
testRead2
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
    "open an existing file for reading; should read 10 chars"
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
    |h s|
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
    self createWithSize10:'xxx3'.
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
    h := OperatingSystem openFileForRead:'xxx3'.
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
    s := ExternalReadStream on:h.
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
    s binary.
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
    '1234567890' do:[:eachExpected |
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
        |eachRead|
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
        eachRead := s next.
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
        self assert:( eachRead == eachExpected asciiValue ).
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
    ].
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
    s close.
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   107
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   108
    'xxx3' asFilename delete.
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
    "
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   111
     self new testRead2
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   112
    "
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   113
!
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   114
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   115
testRead3
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   116
    "open an existing file for reading; should read 10 chars"
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   117
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   118
    |h s bytesRead|
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   119
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   120
    self createWithSize10:'xxx3'.
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   121
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   122
    h := OperatingSystem openFileForRead:'xxx3'.
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   123
    s := ExternalReadStream on:h.
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   124
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   125
    self assert:( s atEnd not ).
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   126
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   127
    bytesRead := s next:10.
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   128
    self assert:( bytesRead = '1234567890' ).
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   129
    self assert:( s atEnd ).
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   130
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   131
    s close.
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   132
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   133
    'xxx3' asFilename delete.
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   134
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   135
    "
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   136
     self new testRead3
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   137
    "
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   138
! !
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   139
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   140
!ExternalStreamTest class methodsFor:'documentation'!
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   141
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   142
version
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   143
    ^ '$Header$'
2cbca29e95be initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   144
! !