mirror of https://github.com/mongodb/mongo
59 lines
1.6 KiB
JavaScript
59 lines
1.6 KiB
JavaScript
// @tags: [
|
|
// requires_fastcount,
|
|
// uses_multiple_connections,
|
|
// uses_parallel_shell,
|
|
// ]
|
|
|
|
import {funWithArgs} from "jstests/libs/parallel_shell_helpers.js";
|
|
|
|
// verify that join works
|
|
db.sps.drop();
|
|
let awaitShell = startParallelShell("sleep(1000); db.sps.insert({x:1});");
|
|
awaitShell();
|
|
assert.eq(1, db.sps.count(), "join problem?");
|
|
|
|
// test with a throw
|
|
awaitShell = startParallelShell("db.sps.insert({x:1}); throw Error('intentionally_uncaught');");
|
|
let exitCode = awaitShell({checkExitSuccess: false});
|
|
assert.neq(0, exitCode, "expected shell to exit abnormally due to an uncaught exception");
|
|
assert.eq(2, db.sps.count(), "join2 problem?");
|
|
|
|
// test throwing with checking exit success
|
|
function func() {
|
|
throw Error("intentional_throw_to_test_assert_throws");
|
|
}
|
|
assert.throws(() => {
|
|
const awaitShell = startParallelShell(func);
|
|
awaitShell();
|
|
});
|
|
assert.throws(() => {
|
|
const awaitShell = startParallelShell(funWithArgs(func, true));
|
|
awaitShell();
|
|
});
|
|
|
|
async function asyncFunc() {
|
|
throw Error("intentional_throw_to_test_assert_throws");
|
|
}
|
|
assert.throws(() => {
|
|
const awaitShell = startParallelShell(asyncFunc);
|
|
awaitShell();
|
|
});
|
|
assert.throws(() => {
|
|
const awaitShell = startParallelShell(funWithArgs(asyncFunc, true));
|
|
awaitShell();
|
|
});
|
|
|
|
const asyncLambda = async () => {
|
|
throw Error("intentional_throw_to_test_assert_throws");
|
|
};
|
|
assert.throws(() => {
|
|
const awaitShell = startParallelShell(asyncLambda);
|
|
awaitShell();
|
|
});
|
|
assert.throws(() => {
|
|
const awaitShell = startParallelShell(funWithArgs(asyncLambda, true));
|
|
awaitShell();
|
|
});
|
|
|
|
print("shellstartparallel.js SUCCESS");
|