summaryrefslogtreecommitdiff
path: root/test/simple/test-vm-run-timeout.js
diff options
context:
space:
mode:
Diffstat (limited to 'test/simple/test-vm-run-timeout.js')
-rw-r--r--test/simple/test-vm-run-timeout.js27
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;
+ }
+}