@@ -29,50 +29,28 @@ const filename = path.join(tmpdir.path, 'write.txt');
29
29
30
30
tmpdir . refresh ( ) ;
31
31
32
- // fs.writeSync with all parameters provided:
33
32
{
34
- const fd = fs . openSync ( filename , 'w' ) ;
33
+ const parameters = [ Buffer . from ( 'bár' ) , 0 , Buffer . byteLength ( 'bár' ) ] ;
35
34
36
- let written = fs . writeSync ( fd , '' ) ;
37
- assert . strictEqual ( written , 0 ) ;
35
+ // The first time fs.writeSync is called with all parameters provided.
36
+ // After that, each pop in the cycle removes the final parameter. So:
37
+ // - The 2nd time fs.writeSync with a buffer, without the length parameter.
38
+ // - The 3rd time fs.writeSync with a buffer, without the offset and length
39
+ // parameters.
40
+ while ( parameters . length > 0 ) {
41
+ const fd = fs . openSync ( filename , 'w' ) ;
38
42
39
- fs . writeSync ( fd , 'foo' ) ;
43
+ let written = fs . writeSync ( fd , '' ) ;
44
+ assert . strictEqual ( written , 0 ) ;
40
45
41
- written = fs . writeSync ( fd , Buffer . from ( 'bár' ) , 0 , Buffer . byteLength ( 'bár' ) ) ;
42
- assert . ok ( written > 3 ) ;
43
- fs . closeSync ( fd ) ;
46
+ fs . writeSync ( fd , 'foo' ) ;
44
47
45
- assert . strictEqual ( fs . readFileSync ( filename , 'utf-8' ) , 'foobár' ) ;
46
- }
47
-
48
- // fs.writeSync with a buffer, without the length parameter:
49
- {
50
- const fd = fs . openSync ( filename , 'w' ) ;
51
-
52
- let written = fs . writeSync ( fd , '' ) ;
53
- assert . strictEqual ( written , 0 ) ;
54
-
55
- fs . writeSync ( fd , 'foo' ) ;
56
-
57
- written = fs . writeSync ( fd , Buffer . from ( 'bár' ) , 0 ) ;
58
- assert . ok ( written > 3 ) ;
59
- fs . closeSync ( fd ) ;
60
-
61
- assert . strictEqual ( fs . readFileSync ( filename , 'utf-8' ) , 'foobár' ) ;
62
- }
63
-
64
- // fs.writeSync with a buffer, without the offset and length parameters:
65
- {
66
- const fd = fs . openSync ( filename , 'w' ) ;
67
-
68
- let written = fs . writeSync ( fd , '' ) ;
69
- assert . strictEqual ( written , 0 ) ;
70
-
71
- fs . writeSync ( fd , 'foo' ) ;
48
+ written = fs . writeSync ( fd , ...parameters ) ;
49
+ assert . ok ( written > 3 ) ;
50
+ fs . closeSync ( fd ) ;
72
51
73
- written = fs . writeSync ( fd , Buffer . from ( 'bár' ) ) ;
74
- assert . ok ( written > 3 ) ;
75
- fs . closeSync ( fd ) ;
52
+ assert . strictEqual ( fs . readFileSync ( filename , 'utf-8' ) , 'foobár' ) ;
76
53
77
- assert . strictEqual ( fs . readFileSync ( filename , 'utf-8' ) , 'foobár' ) ;
54
+ parameters . pop ( ) ;
55
+ }
78
56
}
0 commit comments