20
20
// USE OR OTHER DEALINGS IN THE SOFTWARE.
21
21
22
22
'use strict' ;
23
- require ( '../common' ) ;
23
+ const common = require ( '../common' ) ;
24
24
const fixtures = require ( '../common/fixtures' ) ;
25
25
const assert = require ( 'assert' ) ;
26
26
const fs = require ( 'fs' ) ;
@@ -29,72 +29,95 @@ const existingFile = fixtures.path('exit.js');
29
29
const existingFile2 = fixtures . path ( 'create-file.js' ) ;
30
30
const existingDir = fixtures . path ( 'empty' ) ;
31
31
const existingDir2 = fixtures . path ( 'keys' ) ;
32
+ const uv = process . binding ( 'uv' ) ;
32
33
33
34
// ASYNC_CALL
34
35
35
- fs . stat ( fn , function ( err ) {
36
+ fs . stat ( fn , common . mustCall ( ( err ) => {
36
37
assert . strictEqual ( fn , err . path ) ;
37
- assert . ok ( err . message . includes ( fn ) ) ;
38
- } ) ;
39
-
40
- fs . lstat ( fn , function ( err ) {
41
- assert . ok ( err . message . includes ( fn ) ) ;
42
- } ) ;
38
+ assert . strictEqual (
39
+ err . message ,
40
+ `ENOENT: no such file or directory, stat '${ fn } '` ) ;
41
+ assert . strictEqual ( err . errno , uv . UV_ENOENT ) ;
42
+ assert . strictEqual ( err . code , 'ENOENT' ) ;
43
+ assert . strictEqual ( err . syscall , 'stat' ) ;
44
+ } ) ) ;
45
+
46
+ fs . lstat ( fn , common . mustCall ( ( err ) => {
47
+ assert . strictEqual ( fn , err . path ) ;
48
+ assert . strictEqual (
49
+ err . message ,
50
+ `ENOENT: no such file or directory, lstat '${ fn } '` ) ;
51
+ assert . strictEqual ( err . errno , uv . UV_ENOENT ) ;
52
+ assert . strictEqual ( err . code , 'ENOENT' ) ;
53
+ assert . strictEqual ( err . syscall , 'lstat' ) ;
54
+ } ) ) ;
55
+
56
+ {
57
+ const fd = fs . openSync ( existingFile , 'r' ) ;
58
+ fs . closeSync ( fd ) ;
59
+ fs . fstat ( fd , common . mustCall ( ( err ) => {
60
+ assert . strictEqual ( err . message , 'EBADF: bad file descriptor, fstat' ) ;
61
+ assert . strictEqual ( err . errno , uv . UV_EBADF ) ;
62
+ assert . strictEqual ( err . code , 'EBADF' ) ;
63
+ assert . strictEqual ( err . syscall , 'fstat' ) ;
64
+ } ) ) ;
65
+ }
43
66
44
- fs . readlink ( fn , function ( err ) {
67
+ fs . readlink ( fn , common . mustCall ( ( err ) => {
45
68
assert . ok ( err . message . includes ( fn ) ) ;
46
- } ) ;
69
+ } ) ) ;
47
70
48
- fs . link ( fn , 'foo' , function ( err ) {
71
+ fs . link ( fn , 'foo' , common . mustCall ( ( err ) => {
49
72
assert . ok ( err . message . includes ( fn ) ) ;
50
- } ) ;
73
+ } ) ) ;
51
74
52
- fs . link ( existingFile , existingFile2 , function ( err ) {
75
+ fs . link ( existingFile , existingFile2 , common . mustCall ( ( err ) => {
53
76
assert . ok ( err . message . includes ( existingFile ) ) ;
54
77
assert . ok ( err . message . includes ( existingFile2 ) ) ;
55
- } ) ;
78
+ } ) ) ;
56
79
57
- fs . symlink ( existingFile , existingFile2 , function ( err ) {
80
+ fs . symlink ( existingFile , existingFile2 , common . mustCall ( ( err ) => {
58
81
assert . ok ( err . message . includes ( existingFile ) ) ;
59
82
assert . ok ( err . message . includes ( existingFile2 ) ) ;
60
- } ) ;
83
+ } ) ) ;
61
84
62
- fs . unlink ( fn , function ( err ) {
85
+ fs . unlink ( fn , common . mustCall ( ( err ) => {
63
86
assert . ok ( err . message . includes ( fn ) ) ;
64
- } ) ;
87
+ } ) ) ;
65
88
66
- fs . rename ( fn , 'foo' , function ( err ) {
89
+ fs . rename ( fn , 'foo' , common . mustCall ( ( err ) => {
67
90
assert . ok ( err . message . includes ( fn ) ) ;
68
- } ) ;
91
+ } ) ) ;
69
92
70
- fs . rename ( existingDir , existingDir2 , function ( err ) {
93
+ fs . rename ( existingDir , existingDir2 , common . mustCall ( ( err ) => {
71
94
assert . ok ( err . message . includes ( existingDir ) ) ;
72
95
assert . ok ( err . message . includes ( existingDir2 ) ) ;
73
- } ) ;
96
+ } ) ) ;
74
97
75
- fs . rmdir ( fn , function ( err ) {
98
+ fs . rmdir ( fn , common . mustCall ( ( err ) => {
76
99
assert . ok ( err . message . includes ( fn ) ) ;
77
- } ) ;
100
+ } ) ) ;
78
101
79
- fs . mkdir ( existingFile , 0o666 , function ( err ) {
102
+ fs . mkdir ( existingFile , 0o666 , common . mustCall ( ( err ) => {
80
103
assert . ok ( err . message . includes ( existingFile ) ) ;
81
- } ) ;
104
+ } ) ) ;
82
105
83
- fs . rmdir ( existingFile , function ( err ) {
106
+ fs . rmdir ( existingFile , common . mustCall ( ( err ) => {
84
107
assert . ok ( err . message . includes ( existingFile ) ) ;
85
- } ) ;
108
+ } ) ) ;
86
109
87
- fs . chmod ( fn , 0o666 , function ( err ) {
110
+ fs . chmod ( fn , 0o666 , common . mustCall ( ( err ) => {
88
111
assert . ok ( err . message . includes ( fn ) ) ;
89
- } ) ;
112
+ } ) ) ;
90
113
91
- fs . open ( fn , 'r' , 0o666 , function ( err ) {
114
+ fs . open ( fn , 'r' , 0o666 , common . mustCall ( ( err ) => {
92
115
assert . ok ( err . message . includes ( fn ) ) ;
93
- } ) ;
116
+ } ) ) ;
94
117
95
- fs . readFile ( fn , function ( err ) {
118
+ fs . readFile ( fn , common . mustCall ( ( err ) => {
96
119
assert . ok ( err . message . includes ( fn ) ) ;
97
- } ) ;
120
+ } ) ) ;
98
121
99
122
// Sync
100
123
@@ -106,7 +129,13 @@ try {
106
129
fs . statSync ( fn ) ;
107
130
} catch ( err ) {
108
131
errors . push ( 'stat' ) ;
109
- assert . ok ( err . message . includes ( fn ) ) ;
132
+ assert . strictEqual ( fn , err . path ) ;
133
+ assert . strictEqual (
134
+ err . message ,
135
+ `ENOENT: no such file or directory, stat '${ fn } '` ) ;
136
+ assert . strictEqual ( err . errno , uv . UV_ENOENT ) ;
137
+ assert . strictEqual ( err . code , 'ENOENT' ) ;
138
+ assert . strictEqual ( err . syscall , 'stat' ) ;
110
139
}
111
140
112
141
try {
@@ -130,7 +159,26 @@ try {
130
159
fs . lstatSync ( fn ) ;
131
160
} catch ( err ) {
132
161
errors . push ( 'lstat' ) ;
133
- assert . ok ( err . message . includes ( fn ) ) ;
162
+ assert . strictEqual ( fn , err . path ) ;
163
+ assert . strictEqual (
164
+ err . message ,
165
+ `ENOENT: no such file or directory, lstat '${ fn } '` ) ;
166
+ assert . strictEqual ( err . errno , uv . UV_ENOENT ) ;
167
+ assert . strictEqual ( err . code , 'ENOENT' ) ;
168
+ assert . strictEqual ( err . syscall , 'lstat' ) ;
169
+ }
170
+
171
+ try {
172
+ ++ expected ;
173
+ const fd = fs . openSync ( existingFile , 'r' ) ;
174
+ fs . closeSync ( fd ) ;
175
+ fs . fstatSync ( fd ) ;
176
+ } catch ( err ) {
177
+ errors . push ( 'fstat' ) ;
178
+ assert . strictEqual ( err . message , 'EBADF: bad file descriptor, fstat' ) ;
179
+ assert . strictEqual ( err . errno , uv . UV_EBADF ) ;
180
+ assert . strictEqual ( err . code , 'EBADF' ) ;
181
+ assert . strictEqual ( err . syscall , 'fstat' ) ;
134
182
}
135
183
136
184
try {
@@ -224,9 +272,4 @@ try {
224
272
assert . ok ( err . message . includes ( fn ) ) ;
225
273
}
226
274
227
- process . on ( 'exit' , function ( ) {
228
- assert . strictEqual (
229
- expected , errors . length ,
230
- `Test fs sync exceptions raised, got ${ errors . length } expected ${ expected } `
231
- ) ;
232
- } ) ;
275
+ assert . strictEqual ( expected , errors . length ) ;
0 commit comments