@@ -22,7 +22,7 @@ tmpdir.refresh();
22
22
23
23
async function validateReadFile ( ) {
24
24
const filePath = path . resolve ( tmpDir , 'tmp-read-file.txt' ) ;
25
- const fileHandle = await open ( filePath , 'w+' ) ;
25
+ await using fileHandle = await open ( filePath , 'w+' ) ;
26
26
const buffer = Buffer . from ( 'Hello world' . repeat ( 100 ) , 'utf8' ) ;
27
27
28
28
const fd = fs . openSync ( filePath , 'w+' ) ;
@@ -31,8 +31,6 @@ async function validateReadFile() {
31
31
32
32
const readFileData = await fileHandle . readFile ( ) ;
33
33
assert . deepStrictEqual ( buffer , readFileData ) ;
34
-
35
- await fileHandle . close ( ) ;
36
34
}
37
35
38
36
async function validateReadFileProc ( ) {
@@ -46,48 +44,36 @@ async function validateReadFileProc() {
46
44
if ( ! common . isLinux )
47
45
return ;
48
46
49
- const fileHandle = await open ( '/proc/sys/kernel/hostname' , 'r' ) ;
50
- try {
51
- const hostname = await fileHandle . readFile ( ) ;
52
- assert . ok ( hostname . length > 0 ) ;
53
- } finally {
54
- await fileHandle . close ( ) ;
55
- }
47
+ await using fileHandle = await open ( '/proc/sys/kernel/hostname' , 'r' ) ;
48
+ const hostname = await fileHandle . readFile ( ) ;
49
+ assert . ok ( hostname . length > 0 ) ;
56
50
}
57
51
58
52
async function doReadAndCancel ( ) {
59
53
// Signal aborted from the start
60
54
{
61
55
const filePathForHandle = path . resolve ( tmpDir , 'dogs-running.txt' ) ;
62
- const fileHandle = await open ( filePathForHandle , 'w+' ) ;
63
- try {
64
- const buffer = Buffer . from ( 'Dogs running' . repeat ( 10000 ) , 'utf8' ) ;
65
- fs . writeFileSync ( filePathForHandle , buffer ) ;
66
- const signal = AbortSignal . abort ( ) ;
67
- await assert . rejects ( readFile ( fileHandle , common . mustNotMutateObjectDeep ( { signal } ) ) , {
68
- name : 'AbortError'
69
- } ) ;
70
- } finally {
71
- await fileHandle . close ( ) ;
72
- }
56
+ await using fileHandle = await open ( filePathForHandle , 'w+' ) ;
57
+ const buffer = Buffer . from ( 'Dogs running' . repeat ( 10000 ) , 'utf8' ) ;
58
+ fs . writeFileSync ( filePathForHandle , buffer ) ;
59
+ const signal = AbortSignal . abort ( ) ;
60
+ await assert . rejects ( readFile ( fileHandle , common . mustNotMutateObjectDeep ( { signal } ) ) , {
61
+ name : 'AbortError'
62
+ } ) ;
73
63
}
74
64
75
65
// Signal aborted on first tick
76
66
{
77
67
const filePathForHandle = path . resolve ( tmpDir , 'dogs-running1.txt' ) ;
78
- const fileHandle = await open ( filePathForHandle , 'w+' ) ;
79
- try {
80
- const buffer = Buffer . from ( 'Dogs running' . repeat ( 10000 ) , 'utf8' ) ;
81
- fs . writeFileSync ( filePathForHandle , buffer ) ;
82
- const controller = new AbortController ( ) ;
83
- const { signal } = controller ;
84
- process . nextTick ( ( ) => controller . abort ( ) ) ;
85
- await assert . rejects ( readFile ( fileHandle , common . mustNotMutateObjectDeep ( { signal } ) ) , {
86
- name : 'AbortError'
87
- } , 'tick-0' ) ;
88
- } finally {
89
- await fileHandle . close ( ) ;
90
- }
68
+ await using fileHandle = await open ( filePathForHandle , 'w+' ) ;
69
+ const buffer = Buffer . from ( 'Dogs running' . repeat ( 10000 ) , 'utf8' ) ;
70
+ fs . writeFileSync ( filePathForHandle , buffer ) ;
71
+ const controller = new AbortController ( ) ;
72
+ const { signal } = controller ;
73
+ process . nextTick ( ( ) => controller . abort ( ) ) ;
74
+ await assert . rejects ( readFile ( fileHandle , common . mustNotMutateObjectDeep ( { signal } ) ) , {
75
+ name : 'AbortError'
76
+ } , 'tick-0' ) ;
91
77
}
92
78
93
79
// Signal aborted right before buffer read
@@ -96,18 +82,14 @@ async function doReadAndCancel() {
96
82
const buffer = Buffer . from ( 'Dogs running' . repeat ( 1000 ) , 'utf8' ) ;
97
83
fs . writeFileSync ( newFile , buffer ) ;
98
84
99
- const fileHandle = await open ( newFile , 'r' ) ;
100
- try {
101
- const controller = new AbortController ( ) ;
102
- const { signal } = controller ;
103
- tick ( 1 , ( ) => controller . abort ( ) ) ;
104
- await assert . rejects ( fileHandle . readFile (
105
- common . mustNotMutateObjectDeep ( { signal, encoding : 'utf8' } ) ) , {
106
- name : 'AbortError'
107
- } , 'tick-1' ) ;
108
- } finally {
109
- await fileHandle . close ( ) ;
110
- }
85
+ await using fileHandle = await open ( newFile , 'r' ) ;
86
+ const controller = new AbortController ( ) ;
87
+ const { signal } = controller ;
88
+ tick ( 1 , ( ) => controller . abort ( ) ) ;
89
+ await assert . rejects ( fileHandle . readFile (
90
+ common . mustNotMutateObjectDeep ( { signal, encoding : 'utf8' } ) ) , {
91
+ name : 'AbortError'
92
+ } , 'tick-1' ) ;
111
93
}
112
94
113
95
// Validate file size is within range for reading
@@ -123,13 +105,12 @@ async function doReadAndCancel() {
123
105
await writeFile ( newFile , Buffer . from ( '0' ) ) ;
124
106
await truncate ( newFile , kIoMaxLength + 1 ) ;
125
107
126
- const fileHandle = await open ( newFile , 'r' ) ;
108
+ await using fileHandle = await open ( newFile , 'r' ) ;
127
109
128
110
await assert . rejects ( fileHandle . readFile ( ) , {
129
111
name : 'RangeError' ,
130
112
code : 'ERR_FS_FILE_TOO_LARGE'
131
113
} ) ;
132
- await fileHandle . close ( ) ;
133
114
}
134
115
}
135
116
}
0 commit comments