diff options
Diffstat (limited to 'test/simple/test-vm-run-timeout.js')
-rw-r--r-- | test/simple/test-vm-run-timeout.js | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/test/simple/test-vm-run-timeout.js b/test/simple/test-vm-run-timeout.js index ccc95f9ddb..26833c61ce 100644 --- a/test/simple/test-vm-run-timeout.js +++ b/test/simple/test-vm-run-timeout.js @@ -23,15 +23,34 @@ var common = require('../common'); var assert = require('assert'); var vm = require('vm'); +// Test 1: Timeout of 100ms executing endless loop assert.throws(function() { vm.runInThisContext('while(true) {}', '', 100); }); +// Test 2: Timeout must be >= 0ms assert.throws(function() { vm.runInThisContext('', '', -1); }); -assert.doesNotThrow(function() { - vm.runInThisContext('', '', 0); - vm.runInThisContext('', '', 100); -}); +// Test 3: Timeout of 0ms +vm.runInThisContext('', '', 0); + +// Test 4: Timeout of 1000ms, script finishes first +vm.runInThisContext('', '', 1000); + +// Test 5: Nested vm timeouts, inner timeout propagates out +try { + var context = { + log: console.log, + runInVM: function(timeout) { + vm.runInNewContext('while(true) {}', context, '', timeout); + } + }; + vm.runInNewContext('runInVM(10)', context, '', 100); + throw new Error('Test 5 failed'); +} catch (e) { + if (-1 === e.message.search(/Script execution timed out./)) { + throw e; + } +} |