RegressionTests__FileOpenTest.st
author Claus Gittinger <cg@exept.de>
Tue, 09 Jul 2019 18:53:03 +0200
changeset 2327 bf482d49aeaf
parent 1447 2351db93aa5b
child 1500 d406a10b2965
permissions -rw-r--r--
#QUALITY by exept class: RegressionTests::StringTests added: #test82c_expanding
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1406
diff changeset
     1
"{ Package: 'stx:goodies/regression' }"
122
b4cd14f69cb0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
274
14bd9bd8c7f2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 134
diff changeset
     3
"{ NameSpace: RegressionTests }"
122
b4cd14f69cb0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
b4cd14f69cb0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
TestCase subclass:#FileOpenTest
b4cd14f69cb0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	instanceVariableNames:''
b4cd14f69cb0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
	classVariableNames:''
b4cd14f69cb0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
	poolDictionaries:''
1406
0f0b3492eba6 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 274
diff changeset
     9
	category:'tests-Regression-Streams'
122
b4cd14f69cb0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
!
b4cd14f69cb0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
b4cd14f69cb0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
b4cd14f69cb0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
!FileOpenTest methodsFor:'tests'!
b4cd14f69cb0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
124
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    15
createWithSize10:fileName
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    16
    "helper"
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    17
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    18
    (fileName asFilename exists) ifTrue:[
132
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
    19
	fileName asFilename delete
124
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    20
    ].
274
14bd9bd8c7f2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 134
diff changeset
    21
    fileName asFilename writeStream
132
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
    22
	nextPutAll:'1234567890';
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
    23
	close.
124
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    24
    self assert:(fileName asFilename exists).
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    25
    self assert:(fileName asFilename fileSize == 10).
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    26
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    27
    "
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    28
     self new createWithSize10:'xxx1'
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    29
    "
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    30
!
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    31
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    32
testCreate1
126
8b42761a09ef checkin from browser
Claus Gittinger <cg@exept.de>
parents: 125
diff changeset
    33
    "create a new file (initially not existing)"
124
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    34
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    35
    |h|
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    36
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    37
    ('xxx1' asFilename exists) ifTrue:[
132
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
    38
	'xxx1' asFilename delete
124
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    39
    ].
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    40
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    41
    h := OperatingSystem createFileForReadWrite:'xxx1'.
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    42
    self assert:(h notNil).
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    43
    self assert:(h isValid).
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    44
    OperatingSystem isMSDOSlike ifTrue:[
132
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
    45
	self assert:(h address ~~ 0).
124
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    46
    ].
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    47
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    48
    h close.
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    49
    self assert:(h isValid not).
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    50
    OperatingSystem isMSDOSlike ifTrue:[
132
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
    51
	self assert:(h address == 0).
124
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    52
    ].
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    53
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    54
    self assert:('xxx1' asFilename exists).
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    55
    self assert:('xxx1' asFilename fileSize == 0).
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    56
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    57
    'xxx1' asFilename delete
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    58
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    59
    "
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    60
     self new testCreate1
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    61
    "
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    62
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    63
    "Modified: / 12.8.1998 / 13:29:55 / cg"
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    64
!
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    65
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    66
testCreate2
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    67
    "create a file; checks if the file is truncated if already existing"
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    68
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    69
    |h|
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    70
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    71
    self createWithSize10:'xxx1'.
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    72
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    73
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    74
    h := OperatingSystem createFileForReadWrite:'xxx1'.
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    75
    self assert:(h notNil).
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    76
    self assert:(h isValid).
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    77
    OperatingSystem isMSDOSlike ifTrue:[
132
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
    78
	self assert:(h address ~~ 0).
124
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    79
    ].
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    80
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    81
    h close.
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    82
    self assert:(h isValid not).
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    83
    OperatingSystem isMSDOSlike ifTrue:[
132
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
    84
	self assert:(h address == 0).
124
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    85
    ].
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    86
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    87
    self assert:('xxx1' asFilename exists).
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    88
    self assert:('xxx1' asFilename fileSize == 0).
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    89
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    90
    "
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    91
     self new testCreate2
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    92
    "
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    93
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    94
    "Modified: / 12.8.1998 / 13:29:55 / cg"
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    95
!
d8d8c8f0fec3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    96
126
8b42761a09ef checkin from browser
Claus Gittinger <cg@exept.de>
parents: 125
diff changeset
    97
testFailCreate1
8b42761a09ef checkin from browser
Claus Gittinger <cg@exept.de>
parents: 125
diff changeset
    98
    "try to create an uncreatable new file (directory not existing)"
8b42761a09ef checkin from browser
Claus Gittinger <cg@exept.de>
parents: 125
diff changeset
    99
8b42761a09ef checkin from browser
Claus Gittinger <cg@exept.de>
parents: 125
diff changeset
   100
    |fn|
8b42761a09ef checkin from browser
Claus Gittinger <cg@exept.de>
parents: 125
diff changeset
   101
8b42761a09ef checkin from browser
Claus Gittinger <cg@exept.de>
parents: 125
diff changeset
   102
    fn := (('.' asFilename construct:'foo')  construct:'bar') construct:'xxx1'.
274
14bd9bd8c7f2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 134
diff changeset
   103
    self
132
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   104
	should:[
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   105
	    OperatingSystem createFileForReadWrite:fn name]
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   106
	raise:(OSErrorHolder nonexistentSignal).
126
8b42761a09ef checkin from browser
Claus Gittinger <cg@exept.de>
parents: 125
diff changeset
   107
8b42761a09ef checkin from browser
Claus Gittinger <cg@exept.de>
parents: 125
diff changeset
   108
    "/ raised signal should be a child of inaccessibleSignal
274
14bd9bd8c7f2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 134
diff changeset
   109
    self
132
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   110
	should:[
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   111
	    OperatingSystem createFileForReadWrite:fn name]
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   112
	raise:(OSErrorHolder nonexistentSignal ).
126
8b42761a09ef checkin from browser
Claus Gittinger <cg@exept.de>
parents: 125
diff changeset
   113
8b42761a09ef checkin from browser
Claus Gittinger <cg@exept.de>
parents: 125
diff changeset
   114
    "/ raised signal should be a child of OsError
274
14bd9bd8c7f2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 134
diff changeset
   115
    self
132
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   116
	should:[
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   117
	    OperatingSystem createFileForReadWrite:fn name]
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   118
	raise:(OsError ).
126
8b42761a09ef checkin from browser
Claus Gittinger <cg@exept.de>
parents: 125
diff changeset
   119
8b42761a09ef checkin from browser
Claus Gittinger <cg@exept.de>
parents: 125
diff changeset
   120
    "
8b42761a09ef checkin from browser
Claus Gittinger <cg@exept.de>
parents: 125
diff changeset
   121
     self new testFailCreate1
8b42761a09ef checkin from browser
Claus Gittinger <cg@exept.de>
parents: 125
diff changeset
   122
    "
8b42761a09ef checkin from browser
Claus Gittinger <cg@exept.de>
parents: 125
diff changeset
   123
8b42761a09ef checkin from browser
Claus Gittinger <cg@exept.de>
parents: 125
diff changeset
   124
    "Modified: / 12.8.1998 / 13:29:55 / cg"
8b42761a09ef checkin from browser
Claus Gittinger <cg@exept.de>
parents: 125
diff changeset
   125
!
8b42761a09ef checkin from browser
Claus Gittinger <cg@exept.de>
parents: 125
diff changeset
   126
125
c2d1c9253563 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 124
diff changeset
   127
testFailOpen1
c2d1c9253563 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 124
diff changeset
   128
    "open a non-existing file; must fail"
122
b4cd14f69cb0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   129
b4cd14f69cb0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   130
    |h|
b4cd14f69cb0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   131
125
c2d1c9253563 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 124
diff changeset
   132
    'xxx2' asFilename delete.
c2d1c9253563 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 124
diff changeset
   133
274
14bd9bd8c7f2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 134
diff changeset
   134
    self
132
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   135
	should:[
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   136
		h := OperatingSystem openFileForRead:'xxx2'.]
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   137
	raise:(OSErrorHolder nonexistentSignal).
125
c2d1c9253563 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 124
diff changeset
   138
c2d1c9253563 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 124
diff changeset
   139
c2d1c9253563 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 124
diff changeset
   140
    "
c2d1c9253563 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 124
diff changeset
   141
     self new testFailOpen1
c2d1c9253563 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 124
diff changeset
   142
    "
c2d1c9253563 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 124
diff changeset
   143
c2d1c9253563 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 124
diff changeset
   144
    "Modified: / 12.8.1998 / 13:29:55 / cg"
c2d1c9253563 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 124
diff changeset
   145
!
c2d1c9253563 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 124
diff changeset
   146
128
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   147
testFailOpen2
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   148
    "open a non-existing file for writing; must fail"
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   149
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   150
    |h|
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   151
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   152
    'xxx2' asFilename delete.
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   153
274
14bd9bd8c7f2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 134
diff changeset
   154
    self
132
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   155
	should:[
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   156
		h := OperatingSystem openFileForWrite:'xxx2'.]
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   157
	raise:(OSErrorHolder nonexistentSignal).
128
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   158
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   159
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   160
    "
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   161
     self new testFailOpen2
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   162
    "
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   163
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   164
    "Modified: / 12.8.1998 / 13:29:55 / cg"
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   165
!
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   166
125
c2d1c9253563 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 124
diff changeset
   167
testOpen1
128
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   168
    "open an existing file for reading"
125
c2d1c9253563 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 124
diff changeset
   169
c2d1c9253563 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 124
diff changeset
   170
    |h|
c2d1c9253563 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 124
diff changeset
   171
c2d1c9253563 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 124
diff changeset
   172
    self createWithSize10:'xxx2'.
c2d1c9253563 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 124
diff changeset
   173
c2d1c9253563 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 124
diff changeset
   174
    h := OperatingSystem openFileForRead:'xxx2'.
122
b4cd14f69cb0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   175
    self assert:(h notNil).
123
26413f4624d6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 122
diff changeset
   176
    self assert:(h isValid).
26413f4624d6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 122
diff changeset
   177
    OperatingSystem isMSDOSlike ifTrue:[
132
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   178
	self assert:(h address ~~ 0).
123
26413f4624d6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 122
diff changeset
   179
    ].
122
b4cd14f69cb0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   180
b4cd14f69cb0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   181
    h close.
123
26413f4624d6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 122
diff changeset
   182
    self assert:(h isValid not).
26413f4624d6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 122
diff changeset
   183
    OperatingSystem isMSDOSlike ifTrue:[
132
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   184
	self assert:(h address == 0).
123
26413f4624d6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 122
diff changeset
   185
    ].
122
b4cd14f69cb0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   186
128
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   187
    self assert:('xxx2' asFilename fileSize == 10).   "/ should not change size
125
c2d1c9253563 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 124
diff changeset
   188
    'xxx2' asFilename delete.
c2d1c9253563 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 124
diff changeset
   189
122
b4cd14f69cb0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   190
    "
b4cd14f69cb0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   191
     self new testOpen1
b4cd14f69cb0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   192
    "
b4cd14f69cb0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   193
b4cd14f69cb0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   194
    "Modified: / 12.8.1998 / 13:29:55 / cg"
128
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   195
!
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   196
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   197
testOpen2
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   198
    "open an existing file for writing; should be truncated"
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   199
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   200
    |h|
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   201
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   202
    self createWithSize10:'xxx2'.
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   203
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   204
    h := OperatingSystem openFileForWrite:'xxx2'.
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   205
    self assert:(h notNil).
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   206
    self assert:(h isValid).
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   207
    OperatingSystem isMSDOSlike ifTrue:[
132
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   208
	self assert:(h address ~~ 0).
128
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   209
    ].
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   210
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   211
    h close.
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   212
    self assert:(h isValid not).
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   213
    OperatingSystem isMSDOSlike ifTrue:[
132
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   214
	self assert:(h address == 0).
128
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   215
    ].
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   216
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   217
    self assert:('xxx2' asFilename fileSize == 10).   "/ should not change size
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   218
    'xxx2' asFilename delete.
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   219
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   220
    "
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   221
     self new testOpen2
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   222
    "
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   223
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   224
    "Modified: / 12.8.1998 / 13:29:55 / cg"
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   225
!
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   226
132
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   227
testPosition1
133
7dc6003e9657 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 132
diff changeset
   228
    |h pos buffer nBytesRead|
132
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   229
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   230
    self createWithSize10:'xxx2'.
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   231
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   232
    h := OperatingSystem openFileForRead:'xxx2'.
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   233
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   234
    buffer := ExternalBytes new:10.
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   235
133
7dc6003e9657 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 132
diff changeset
   236
    pos := h seekTo:1 from:#begin.
7dc6003e9657 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 132
diff changeset
   237
    self assert:(pos == 1).
7dc6003e9657 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 132
diff changeset
   238
132
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   239
    nBytesRead := h readBytes:9 into:buffer startingAt:1.
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   240
133
7dc6003e9657 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 132
diff changeset
   241
    pos := h seekTo:0 from:#current.
7dc6003e9657 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 132
diff changeset
   242
    self assert:(pos == 10).
7dc6003e9657 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 132
diff changeset
   243
132
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   244
    h close.
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   245
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   246
    self assert:(nBytesRead == 9).
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   247
    self assert:(buffer asString startsWith: '234567890').
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   248
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   249
    'xxx2' asFilename delete.
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   250
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   251
    "
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   252
     self new testPosition1
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   253
    "
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   254
!
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   255
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   256
testPosition2
133
7dc6003e9657 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 132
diff changeset
   257
    |h pos buffer nBytesRead|
132
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   258
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   259
    self createWithSize10:'xxx2'.
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   260
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   261
    h := OperatingSystem openFileForRead:'xxx2'.
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   262
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   263
    buffer := ExternalBytes new:10.
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   264
134
c0d7256b8c00 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 133
diff changeset
   265
    pos := h seekTo:0 from:#begin.
c0d7256b8c00 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 133
diff changeset
   266
    self assert:(pos == 0).
c0d7256b8c00 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 133
diff changeset
   267
133
7dc6003e9657 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 132
diff changeset
   268
    pos := h seekTo:1 from:#begin.
134
c0d7256b8c00 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 133
diff changeset
   269
    self assert:(pos == 1).
c0d7256b8c00 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 133
diff changeset
   270
133
7dc6003e9657 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 132
diff changeset
   271
    pos := h seekTo:2 from:#current.
134
c0d7256b8c00 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 133
diff changeset
   272
    self assert:(pos == 3).
132
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   273
    nBytesRead := h readBytes:7 into:buffer startingAt:1.
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   274
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   275
    h close.
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   276
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   277
    self assert:(nBytesRead == 7).
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   278
    self assert:(buffer asString startsWith: '4567890').
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   279
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   280
    'xxx2' asFilename delete.
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   281
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   282
    "
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   283
     self new testPosition2
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   284
    "
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   285
!
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   286
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   287
testPosition3
133
7dc6003e9657 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 132
diff changeset
   288
    |h pos buffer nBytesRead|
132
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   289
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   290
    self createWithSize10:'xxx2'.
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   291
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   292
    h := OperatingSystem openFileForRead:'xxx2'.
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   293
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   294
    buffer := ExternalBytes new:10.
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   295
133
7dc6003e9657 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 132
diff changeset
   296
    pos := h seekTo:0 from:#end.
134
c0d7256b8c00 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 133
diff changeset
   297
    self assert:(pos == 10).
133
7dc6003e9657 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 132
diff changeset
   298
    pos := h seekTo:-2 from:#current.
134
c0d7256b8c00 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 133
diff changeset
   299
    self assert:(pos == 8).
c0d7256b8c00 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 133
diff changeset
   300
132
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   301
    nBytesRead := h readBytes:2 into:buffer startingAt:1.
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   302
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   303
    h close.
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   304
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   305
    self assert:(nBytesRead == 2).
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   306
    self assert:(buffer asString startsWith: '90').
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   307
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   308
    'xxx2' asFilename delete.
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   309
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   310
    "
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   311
     self new testPosition3
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   312
    "
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   313
!
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   314
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   315
testPosition4
133
7dc6003e9657 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 132
diff changeset
   316
    |h pos buffer nBytesRead|
132
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   317
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   318
    self createWithSize10:'xxx2'.
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   319
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   320
    h := OperatingSystem openFileForRead:'xxx2'.
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   321
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   322
    buffer := ExternalBytes new:10.
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   323
133
7dc6003e9657 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 132
diff changeset
   324
    pos := h seekTo:-2 from:#end.
134
c0d7256b8c00 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 133
diff changeset
   325
    self assert:(pos == 8).
132
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   326
    nBytesRead := h readBytes:2 into:buffer startingAt:1.
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   327
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   328
    h close.
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   329
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   330
    self assert:(nBytesRead == 2).
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   331
    self assert:(buffer asString startsWith: '90').
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   332
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   333
    'xxx2' asFilename delete.
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   334
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   335
    "
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   336
     self new testPosition4
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   337
    "
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   338
!
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   339
128
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   340
testRead1
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   341
    "open an existing file for reading; should read 10 chars"
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   342
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   343
    |h buffer nBytesRead|
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   344
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   345
    self createWithSize10:'xxx2'.
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   346
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   347
    h := OperatingSystem openFileForRead:'xxx2'.
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   348
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   349
    buffer := ExternalBytes new:10.
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   350
    nBytesRead := h readBytes:10 into:buffer startingAt:1.
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   351
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   352
    h close.
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   353
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   354
    self assert:(nBytesRead == 10).
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   355
    self assert:(buffer asString = '1234567890').
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   356
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   357
    'xxx2' asFilename delete.
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   358
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   359
    "
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   360
     self new testRead1
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   361
    "
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   362
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   363
    "Modified: / 12.8.1998 / 13:29:55 / cg"
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   364
!
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   365
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   366
testRead2
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   367
    "open an existing file for reading; should read 10 chars"
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   368
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   369
    |h buffer nBytesRead|
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   370
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   371
    self createWithSize10:'xxx2'.
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   372
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   373
    h := OperatingSystem openFileForRead:'xxx2'.
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   374
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   375
    buffer := ExternalBytes new:20.
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   376
    nBytesRead := h readBytes:20 into:buffer startingAt:1.
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   377
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   378
    h close.
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   379
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   380
    self assert:(nBytesRead == 10).
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   381
    self assert:(buffer asString startsWith:'1234567890').
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   382
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   383
    'xxx2' asFilename delete.
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   384
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   385
    "
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   386
     self new testRead2
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   387
    "
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   388
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   389
    "Modified: / 12.8.1998 / 13:29:55 / cg"
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   390
!
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   391
129
91f95833c58c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 128
diff changeset
   392
testWrite1
91f95833c58c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 128
diff changeset
   393
    "create a new file (initially not existing); write some data into it"
91f95833c58c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 128
diff changeset
   394
91f95833c58c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 128
diff changeset
   395
    |h buffer nBytesWritten|
91f95833c58c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 128
diff changeset
   396
91f95833c58c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 128
diff changeset
   397
    buffer := ExternalBytes new:10.
91f95833c58c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 128
diff changeset
   398
    buffer replaceFrom:1 with:'1234567890'.
91f95833c58c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 128
diff changeset
   399
91f95833c58c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 128
diff changeset
   400
    ('xxx1' asFilename exists) ifTrue:[
132
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   401
	'xxx1' asFilename delete
129
91f95833c58c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 128
diff changeset
   402
    ].
91f95833c58c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 128
diff changeset
   403
91f95833c58c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 128
diff changeset
   404
    h := OperatingSystem createFileForReadWrite:'xxx1'.
91f95833c58c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 128
diff changeset
   405
91f95833c58c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 128
diff changeset
   406
    nBytesWritten := h writeBytes:10 from:buffer startingAt:1.
91f95833c58c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 128
diff changeset
   407
91f95833c58c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 128
diff changeset
   408
    h close.
91f95833c58c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 128
diff changeset
   409
91f95833c58c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 128
diff changeset
   410
    self assert:('xxx1' asFilename fileSize == 10).
91f95833c58c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 128
diff changeset
   411
    self assert:('xxx1' asFilename contentsOfEntireFile = '1234567890').
91f95833c58c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 128
diff changeset
   412
91f95833c58c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 128
diff changeset
   413
    'xxx1' asFilename delete
91f95833c58c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 128
diff changeset
   414
91f95833c58c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 128
diff changeset
   415
    "
91f95833c58c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 128
diff changeset
   416
     self new testWrite1
91f95833c58c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 128
diff changeset
   417
    "
91f95833c58c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 128
diff changeset
   418
91f95833c58c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 128
diff changeset
   419
    "Modified: / 12.8.1998 / 13:29:55 / cg"
91f95833c58c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 128
diff changeset
   420
!
91f95833c58c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 128
diff changeset
   421
128
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   422
xtestFailCreate1
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   423
    "try to create an uncreatable new file (directory not existing)"
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   424
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   425
    |fn|
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   426
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   427
    fn := (('.' asFilename construct:'foo')  construct:'bar') construct:'xxx1'.
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   428
    OperatingSystem createFileForReadWrite:fn name
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   429
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   430
    "
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   431
     self new xtestFailCreate1
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   432
    "
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   433
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   434
    "Modified: / 12.8.1998 / 13:29:55 / cg"
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   435
!
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   436
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   437
xtestFailOpen2
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   438
    "open a non-existing file for writing; must fail"
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   439
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   440
    |h|
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   441
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   442
    'xxx2' asFilename delete.
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   443
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   444
    h := OperatingSystem openFileForWrite:'xxx2'.
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   445
    h close
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   446
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   447
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   448
    "
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   449
     self new xtestFailOpen2
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   450
    "
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   451
ed7f4270d061 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   452
    "Modified: / 12.8.1998 / 13:29:55 / cg"
130
93a0b6e77c51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 129
diff changeset
   453
!
93a0b6e77c51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 129
diff changeset
   454
93a0b6e77c51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 129
diff changeset
   455
xtestFinalization1
93a0b6e77c51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 129
diff changeset
   456
    "open an existing file; check if GC closes it"
93a0b6e77c51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 129
diff changeset
   457
93a0b6e77c51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 129
diff changeset
   458
    |h|
93a0b6e77c51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 129
diff changeset
   459
93a0b6e77c51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 129
diff changeset
   460
    self createWithSize10:'xxx2'.
93a0b6e77c51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 129
diff changeset
   461
93a0b6e77c51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 129
diff changeset
   462
    h := OperatingSystem openFileForWrite:'xxx2'.
93a0b6e77c51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 129
diff changeset
   463
93a0b6e77c51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 129
diff changeset
   464
    self assert:(h notNil).
93a0b6e77c51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 129
diff changeset
   465
    self assert:(h isValid).
93a0b6e77c51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 129
diff changeset
   466
    OperatingSystem isMSDOSlike ifTrue:[
132
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   467
	self assert:(h address ~~ 0).
130
93a0b6e77c51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 129
diff changeset
   468
    ].
93a0b6e77c51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 129
diff changeset
   469
93a0b6e77c51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 129
diff changeset
   470
    h := nil.
93a0b6e77c51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 129
diff changeset
   471
    ObjectMemory tenure.
93a0b6e77c51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 129
diff changeset
   472
    ObjectMemory garbageCollect.
93a0b6e77c51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 129
diff changeset
   473
93a0b6e77c51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 129
diff changeset
   474
    self assert:(h isValid not).
93a0b6e77c51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 129
diff changeset
   475
    OperatingSystem isMSDOSlike ifTrue:[
132
d0cf1c1a5733 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   476
	self assert:(h address == 0).
130
93a0b6e77c51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 129
diff changeset
   477
    ].
93a0b6e77c51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 129
diff changeset
   478
93a0b6e77c51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 129
diff changeset
   479
    self assert:('xxx2' asFilename fileSize == 10).   "/ should not change size
93a0b6e77c51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 129
diff changeset
   480
    'xxx2' asFilename delete.
93a0b6e77c51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 129
diff changeset
   481
93a0b6e77c51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 129
diff changeset
   482
    "
93a0b6e77c51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 129
diff changeset
   483
     self new testFinalization1
93a0b6e77c51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 129
diff changeset
   484
    "
93a0b6e77c51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 129
diff changeset
   485
93a0b6e77c51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 129
diff changeset
   486
    "Modified: / 12.8.1998 / 13:29:55 / cg"
122
b4cd14f69cb0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   487
! !
b4cd14f69cb0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   488
b4cd14f69cb0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   489
!FileOpenTest class methodsFor:'documentation'!
b4cd14f69cb0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   490
b4cd14f69cb0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   491
version
b4cd14f69cb0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   492
    ^ '$Header$'
b4cd14f69cb0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   493
! !
1406
0f0b3492eba6 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 274
diff changeset
   494