1+ const { promisify } = require ( 'util' )
12const test = require ( 'tape' )
23const randomAccessTest = require ( 'random-access-test' )
34const racf = require ( './' )
@@ -14,20 +15,8 @@ test('write/read concurrent requests', async t => {
1415 const st = storage ( 'random' )
1516
1617 const rand = ( min , max ) => Math . floor ( Math . random ( ) * max ) + min
17-
18- const read = ( ...args ) => new Promise ( ( resolve , reject ) => {
19- st . read ( ...args , ( err ) => {
20- if ( err ) return reject ( err )
21- resolve ( )
22- } )
23- } )
24-
25- const write = ( ...args ) => new Promise ( ( resolve , reject ) => {
26- st . write ( ...args , ( err ) => {
27- if ( err ) return reject ( err )
28- resolve ( )
29- } )
30- } )
18+ const read = promisify ( st . read . bind ( st ) )
19+ const write = promisify ( st . write . bind ( st ) )
3120
3221 try {
3322 await new Promise ( resolve => st . open ( ( ) => resolve ( ) ) )
@@ -55,3 +44,24 @@ test('write/read concurrent requests', async t => {
5544 t . end ( err )
5645 }
5746} )
47+
48+ test ( 'write concurrent requests over the same offset different size' , async t => {
49+ const st = storage ( 'random' )
50+
51+ const write = promisify ( st . write . bind ( st ) )
52+
53+ try {
54+ await new Promise ( resolve => st . open ( ( ) => resolve ( ) ) )
55+
56+ await Promise . all ( [
57+ write ( 0 , Buffer . alloc ( 10 ) ) ,
58+ write ( 0 , Buffer . alloc ( 1 ) ) ,
59+ write ( 0 , Buffer . alloc ( 5 ) )
60+ ] )
61+
62+ t . pass ( 'should write multiple requests over the same offset different size' )
63+ t . end ( )
64+ } catch ( err ) {
65+ t . end ( err )
66+ }
67+ } )
0 commit comments