44 lines
1.3 KiB
CoffeeScript
44 lines
1.3 KiB
CoffeeScript
exec = require '../js/sync-exec'
|
|
|
|
|
|
delay_count = 0
|
|
delay_check = ->
|
|
now = (new Date).getTime()
|
|
unless res1 and res2 and t + 10000 <= now < t + 12000
|
|
throw new Error 'Timing error'
|
|
console.log 'DONE'
|
|
|
|
t = (new Date).getTime()
|
|
setTimeout delay_check, 10
|
|
|
|
process.stdout.write 'Test #1 (takes ~3 seconds) ... '
|
|
# { stdout: '1\n',
|
|
# stderr: '',
|
|
# status: 0 }
|
|
res1 = exec __dirname + '/sh/out.sh', {forceEmulation: true}
|
|
unless res1.stdout is '1\n' and res1.stderr is '' and res1.status is 0
|
|
throw new Error 'Result #1 error:\n' + JSON.stringify res1, null, 2
|
|
console.log 'DONE'
|
|
|
|
# { stdout: '2\n',
|
|
# stderr: '3\n',
|
|
# status: 1 }
|
|
process.stdout.write 'Test #2 (takes ~3 seconds) ... '
|
|
res2 = exec __dirname + '/sh/err.sh', {forceEmulation: true}
|
|
unless res2.stdout is '2\n' and res2.stderr is '3\n' and res2.status is 1
|
|
throw new Error 'Result #2 error:\n' + JSON.stringify res2, null, 2
|
|
console.log 'DONE'
|
|
|
|
process.stdout.write 'Test #3 (takes ~1 second) ... '
|
|
try
|
|
exec __dirname + '/sh/out.sh', 1000, {forceEmulation: true}
|
|
failed_to_stop = true
|
|
if failed_to_stop
|
|
throw new Error 'Failed timeout'
|
|
console.log 'DONE'
|
|
|
|
process.stdout.write 'Test #4 (takes ~3 second) ... '
|
|
exec './out.sh', {cwd: __dirname + '/sh', forceEmulation: true}
|
|
console.log 'DONE'
|
|
|
|
process.stdout.write 'Test #5 ... ' # Timeout order test
|