@@ -9,156 +9,202 @@ const existingFile2 = path.join(common.fixturesDir, 'create-file.js');
9
9
const existingDir = path . join ( common . fixturesDir , 'empty' ) ;
10
10
const existingDir2 = path . join ( common . fixturesDir , 'keys' ) ;
11
11
12
- // Test all operations failing with ENOENT errors
13
- function testEnoentError ( file , endMessage , syscal , err ) {
14
- const sufix = ( endMessage ) ? endMessage : '' ;
12
+ // ASYNC_CALL
15
13
16
- assert ( err instanceof Error ) ;
14
+ fs . stat ( fn , function ( err ) {
17
15
assert . strictEqual ( fn , err . path ) ;
18
- assert . strictEqual (
19
- err . message ,
20
- `ENOENT: no such file or directory, ${ syscal } '${ file } '${ sufix } `
21
- ) ;
22
-
23
- return true ;
24
- }
16
+ assert . ok ( 0 <= err . message . indexOf ( fn ) ) ;
17
+ } ) ;
25
18
26
- // Test all operations failing with EEXIST errors
27
- function testEexistError ( source , dest , syscal , err ) {
28
- const sufix = ( dest ) ? ` -> ' ${ dest } '` : '' ;
19
+ fs . lstat ( fn , function ( err ) {
20
+ assert . ok ( 0 <= err . message . indexOf ( fn ) ) ;
21
+ } ) ;
29
22
30
- assert ( err instanceof Error ) ;
31
- assert . strictEqual ( source , err . path ) ;
32
- assert . strictEqual (
33
- err . message ,
34
- `EEXIST: file already exists, ${ syscal } '${ source } '${ sufix } `
35
- ) ;
23
+ fs . readlink ( fn , function ( err ) {
24
+ assert . ok ( 0 <= err . message . indexOf ( fn ) ) ;
25
+ } ) ;
36
26
37
- return true ;
38
- }
27
+ fs . link ( fn , 'foo' , function ( err ) {
28
+ assert . ok ( 0 <= err . message . indexOf ( fn ) ) ;
29
+ } ) ;
39
30
40
- // Test all operations failing with ENOTEMPTY errors
41
- function testEnoemptyError ( source , dest , err ) {
42
- assert ( err instanceof Error ) ;
43
- assert . strictEqual ( source , err . path ) ;
44
- assert . strictEqual (
45
- err . message ,
46
- `ENOTEMPTY: directory not empty, rename '${ source } ' ` +
47
- `-> '${ dest } '`
48
- ) ;
49
-
50
- return true ;
51
- }
31
+ fs . link ( existingFile , existingFile2 , function ( err ) {
32
+ assert . ok ( 0 <= err . message . indexOf ( existingFile ) ) ;
33
+ assert . ok ( 0 <= err . message . indexOf ( existingFile2 ) ) ;
34
+ } ) ;
52
35
53
- // Test all operations failing with ENOTDIR errors
54
- function testEnotdirError ( dir , err ) {
55
- assert ( err instanceof Error ) ;
56
- assert . strictEqual ( dir , err . path ) ;
57
- assert . strictEqual (
58
- err . message ,
59
- `ENOTDIR: not a directory, rmdir '${ dir } '`
60
- ) ;
36
+ fs . symlink ( existingFile , existingFile2 , function ( err ) {
37
+ assert . ok ( 0 <= err . message . indexOf ( existingFile ) ) ;
38
+ assert . ok ( 0 <= err . message . indexOf ( existingFile2 ) ) ;
39
+ } ) ;
61
40
62
- return true ;
63
- }
41
+ fs . unlink ( fn , function ( err ) {
42
+ assert . ok ( 0 <= err . message . indexOf ( fn ) ) ;
43
+ } ) ;
64
44
65
- // Generating ENOENTS errors
66
- fs . stat ( fn , ( err ) => testEnoentError ( fn , '' , 'stat' , err ) ) ;
67
- fs . lstat ( fn , ( err ) => testEnoentError ( fn , '' , 'lstat' , err ) ) ;
68
- fs . readlink ( fn , ( err ) => testEnoentError ( fn , '' , 'readlink' , err ) ) ;
69
- fs . link ( fn , 'foo' , ( err ) => testEnoentError ( fn , ' -> \'foo\'' , 'link' , err ) ) ;
70
- fs . unlink ( fn , ( err ) => testEnoentError ( fn , '' , 'unlink' , err ) ) ;
71
- fs . rmdir ( fn , ( err ) => testEnoentError ( fn , '' , 'rmdir' , err ) ) ;
72
- fs . chmod ( fn , 0o666 , ( err ) => testEnoentError ( fn , '' , 'chmod' , err ) ) ;
73
- fs . open ( fn , 'r' , 0o666 , ( err ) => testEnoentError ( fn , '' , 'open' , err ) ) ;
74
- fs . readFile ( fn , ( err ) => testEnoentError ( fn , '' , 'open' , err ) ) ;
75
- fs . readdir ( fn , ( err ) => testEnoentError ( fn , '' , 'scandir' , err ) ) ;
45
+ fs . rename ( fn , 'foo' , function ( err ) {
46
+ assert . ok ( 0 <= err . message . indexOf ( fn ) ) ;
47
+ } ) ;
76
48
77
- fs . rename ( fn , 'foo' , ( err ) => {
78
- testEnoentError ( fn , ' -> \'foo\'' , 'rename' , err ) ;
49
+ fs . rename ( existingDir , existingDir2 , function ( err ) {
50
+ assert . ok ( 0 <= err . message . indexOf ( existingDir ) ) ;
51
+ assert . ok ( 0 <= err . message . indexOf ( existingDir2 ) ) ;
79
52
} ) ;
80
53
81
- assert . throws ( ( ) => {
82
- fs . statSync ( fn ) ;
83
- } , ( err ) => testEnoentError ( fn , '' , 'stat' , err ) ) ;
54
+ fs . rmdir ( fn , function ( err ) {
55
+ assert . ok ( 0 <= err . message . indexOf ( fn ) ) ;
56
+ } ) ;
84
57
85
- assert . throws ( ( ) => {
86
- fs . lstatSync ( fn ) ;
87
- } , ( err ) => testEnoentError ( fn , '' , 'lstat' , err ) ) ;
58
+ fs . mkdir ( existingFile , 0o666 , function ( err ) {
59
+ assert . ok ( 0 <= err . message . indexOf ( existingFile ) ) ;
60
+ } ) ;
88
61
89
- assert . throws ( ( ) => {
90
- fs . readlinkSync ( fn ) ;
91
- } , ( err ) => testEnoentError ( fn , '' , 'readlink' , err ) ) ;
62
+ fs . rmdir ( existingFile , function ( err ) {
63
+ assert . ok ( 0 <= err . message . indexOf ( existingFile ) ) ;
64
+ } ) ;
92
65
93
- assert . throws ( ( ) => {
94
- fs . linkSync ( fn , 'foo' ) ;
95
- } , ( err ) => testEnoentError ( fn , ' -> \'foo\'' , 'link' , err ) ) ;
66
+ fs . chmod ( fn , 0o666 , function ( err ) {
67
+ assert . ok ( 0 <= err . message . indexOf ( fn ) ) ;
68
+ } ) ;
96
69
97
- assert . throws ( ( ) => {
98
- fs . unlinkSync ( fn ) ;
99
- } , ( err ) => testEnoentError ( fn , '' , 'unlink' , err ) ) ;
70
+ fs . open ( fn , 'r' , 0o666 , function ( err ) {
71
+ assert . ok ( 0 <= err . message . indexOf ( fn ) ) ;
72
+ } ) ;
100
73
101
- assert . throws ( ( ) => {
102
- fs . rmdirSync ( fn ) ;
103
- } , ( err ) => testEnoentError ( fn , '' , 'rmdir' , err ) ) ;
74
+ fs . readFile ( fn , function ( err ) {
75
+ assert . ok ( 0 <= err . message . indexOf ( fn ) ) ;
76
+ } ) ;
104
77
105
- assert . throws ( ( ) => {
106
- fs . chmodSync ( fn , 0o666 ) ;
107
- } , ( err ) => testEnoentError ( fn , '' , 'chmod' , err ) ) ;
78
+ // Sync
108
79
109
- assert . throws ( ( ) => {
110
- fs . openSync ( fn , 'r' ) ;
111
- } , ( err ) => testEnoentError ( fn , '' , 'open' , err ) ) ;
80
+ const errors = [ ] ;
81
+ let expected = 0 ;
112
82
113
- assert . throws ( ( ) => {
114
- fs . readFileSync ( fn ) ;
115
- } , ( err ) => testEnoentError ( fn , '' , 'open' , err ) ) ;
83
+ try {
84
+ ++ expected ;
85
+ fs . statSync ( fn ) ;
86
+ } catch ( err ) {
87
+ errors . push ( 'stat' ) ;
88
+ assert . ok ( 0 <= err . message . indexOf ( fn ) ) ;
89
+ }
116
90
117
- assert . throws ( ( ) => {
118
- fs . readdirSync ( fn ) ;
119
- } , ( err ) => testEnoentError ( fn , '' , 'scandir' , err ) ) ;
91
+ try {
92
+ ++ expected ;
93
+ fs . mkdirSync ( existingFile , 0o666 ) ;
94
+ } catch ( err ) {
95
+ errors . push ( 'mkdir' ) ;
96
+ assert . ok ( 0 <= err . message . indexOf ( existingFile ) ) ;
97
+ }
120
98
121
- assert . throws ( ( ) => {
122
- fs . renameSync ( fn , 'foo' ) ;
123
- } , ( err ) => testEnoentError ( fn , ' -> \'foo\'' , 'rename' , err ) ) ;
99
+ try {
100
+ ++ expected ;
101
+ fs . chmodSync ( fn , 0o666 ) ;
102
+ } catch ( err ) {
103
+ errors . push ( 'chmod' ) ;
104
+ assert . ok ( 0 <= err . message . indexOf ( fn ) ) ;
105
+ }
124
106
125
- // Generating EEXIST errors
126
- fs . link ( existingFile , existingFile2 , ( err ) => {
127
- testEexistError ( existingFile , existingFile2 , 'link' , err ) ;
128
- } ) ;
107
+ try {
108
+ ++ expected ;
109
+ fs . lstatSync ( fn ) ;
110
+ } catch ( err ) {
111
+ errors . push ( 'lstat' ) ;
112
+ assert . ok ( 0 <= err . message . indexOf ( fn ) ) ;
113
+ }
129
114
130
- fs . symlink ( existingFile , existingFile2 , ( err ) => {
131
- testEexistError ( existingFile , existingFile2 , 'symlink' , err ) ;
132
- } ) ;
115
+ try {
116
+ ++ expected ;
117
+ fs . readlinkSync ( fn ) ;
118
+ } catch ( err ) {
119
+ errors . push ( 'readlink' ) ;
120
+ assert . ok ( 0 <= err . message . indexOf ( fn ) ) ;
121
+ }
133
122
134
- fs . mkdir ( existingFile , 0o666 , ( err ) => {
135
- testEexistError ( existingFile , null , 'mkdir' , err ) ;
136
- } ) ;
123
+ try {
124
+ ++ expected ;
125
+ fs . linkSync ( fn , 'foo' ) ;
126
+ } catch ( err ) {
127
+ errors . push ( 'link' ) ;
128
+ assert . ok ( 0 <= err . message . indexOf ( fn ) ) ;
129
+ }
137
130
138
- assert . throws ( ( ) => {
131
+ try {
132
+ ++ expected ;
139
133
fs . linkSync ( existingFile , existingFile2 ) ;
140
- } , ( err ) => testEexistError ( existingFile , existingFile2 , 'link' , err ) ) ;
134
+ } catch ( err ) {
135
+ errors . push ( 'link' ) ;
136
+ assert . ok ( 0 <= err . message . indexOf ( existingFile ) ) ;
137
+ assert . ok ( 0 <= err . message . indexOf ( existingFile2 ) ) ;
138
+ }
141
139
142
- assert . throws ( ( ) => {
140
+ try {
141
+ ++ expected ;
143
142
fs . symlinkSync ( existingFile , existingFile2 ) ;
144
- } , ( err ) => testEexistError ( existingFile , existingFile2 , 'symlink' , err ) ) ;
143
+ } catch ( err ) {
144
+ errors . push ( 'symlink' ) ;
145
+ assert . ok ( 0 <= err . message . indexOf ( existingFile ) ) ;
146
+ assert . ok ( 0 <= err . message . indexOf ( existingFile2 ) ) ;
147
+ }
145
148
146
- assert . throws ( ( ) => {
147
- fs . mkdirSync ( existingFile , 0o666 ) ;
148
- } , ( err ) => testEexistError ( existingFile , null , 'mkdir' , err ) ) ;
149
+ try {
150
+ ++ expected ;
151
+ fs . unlinkSync ( fn ) ;
152
+ } catch ( err ) {
153
+ errors . push ( 'unlink' ) ;
154
+ assert . ok ( 0 <= err . message . indexOf ( fn ) ) ;
155
+ }
149
156
150
- // Generating ENOTEMPTY errors
151
- fs . rename ( existingDir , existingDir2 , ( err ) => {
152
- testEnoemptyError ( existingDir , existingDir2 , err ) ;
153
- } ) ;
157
+ try {
158
+ ++ expected ;
159
+ fs . rmdirSync ( fn ) ;
160
+ } catch ( err ) {
161
+ errors . push ( 'rmdir' ) ;
162
+ assert . ok ( 0 <= err . message . indexOf ( fn ) ) ;
163
+ }
164
+
165
+ try {
166
+ ++ expected ;
167
+ fs . rmdirSync ( existingFile ) ;
168
+ } catch ( err ) {
169
+ errors . push ( 'rmdir' ) ;
170
+ assert . ok ( 0 <= err . message . indexOf ( existingFile ) ) ;
171
+ }
172
+
173
+ try {
174
+ ++ expected ;
175
+ fs . openSync ( fn , 'r' ) ;
176
+ } catch ( err ) {
177
+ errors . push ( 'opens' ) ;
178
+ assert . ok ( 0 <= err . message . indexOf ( fn ) ) ;
179
+ }
154
180
155
- assert . throws ( ( ) => {
181
+ try {
182
+ ++ expected ;
183
+ fs . renameSync ( fn , 'foo' ) ;
184
+ } catch ( err ) {
185
+ errors . push ( 'rename' ) ;
186
+ assert . ok ( 0 <= err . message . indexOf ( fn ) ) ;
187
+ }
188
+
189
+ try {
190
+ ++ expected ;
156
191
fs . renameSync ( existingDir , existingDir2 ) ;
157
- } , ( err ) => testEnoemptyError ( existingDir , existingDir2 , err ) ) ;
192
+ } catch ( err ) {
193
+ errors . push ( 'rename' ) ;
194
+ assert . ok ( 0 <= err . message . indexOf ( existingDir ) ) ;
195
+ assert . ok ( 0 <= err . message . indexOf ( existingDir2 ) ) ;
196
+ }
158
197
159
- // Generating ENOTDIR errors
160
- fs . rmdir ( existingFile , ( err ) => testEnotdirError ( existingFile , err ) ) ;
198
+ try {
199
+ ++ expected ;
200
+ fs . readdirSync ( fn ) ;
201
+ } catch ( err ) {
202
+ errors . push ( 'readdir' ) ;
203
+ assert . ok ( 0 <= err . message . indexOf ( fn ) ) ;
204
+ }
161
205
162
- assert . throws ( ( ) => {
163
- fs . rmdirSync ( existingFile ) ;
164
- } , ( err ) => testEnotdirError ( existingFile , err ) ) ;
206
+ process . on ( 'exit' , function ( ) {
207
+ assert . strictEqual ( expected , errors . length ,
208
+ 'Test fs sync exceptions raised, got ' + errors . length +
209
+ ' expected ' + expected ) ;
210
+ } ) ;
0 commit comments