892d322432
Currently, errors somewhere deep in a promise chain are not reported as test failures. We would print the error, but still return with exit status 0. This CL fixes this to treat any uncaught exception as failure, as we already do in {Shell::ExecuteString}. R=yangguo@chromium.org Change-Id: Idc4e58cc0d45f8fca3f7b2c5070ab68d317fc00b Reviewed-on: https://chromium-review.googlesource.com/c/1439378 Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#59165}
32 lines
1.1 KiB
JavaScript
32 lines
1.1 KiB
JavaScript
// Copyright 2019 the V8 project authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
// Test wasm compilation explicitly, since this creates a promise which is only
|
|
// resolved later, i.e. the message queue gets empty in-between.
|
|
// The important part here is that d8 exits with a non-zero exit code.
|
|
|
|
load('test/mjsunit/mjsunit.js');
|
|
load('test/mjsunit/wasm/wasm-constants.js');
|
|
load('test/mjsunit/wasm/wasm-module-builder.js');
|
|
|
|
assertPromiseResult((async function test() {
|
|
let ok_buffer = (() => {
|
|
let builder = new WasmModuleBuilder();
|
|
builder.addFunction(undefined, kSig_i_v).addBody([kExprI32Const, 42]);
|
|
return builder.toBuffer();
|
|
})();
|
|
let bad_buffer = new ArrayBuffer(0);
|
|
let kNumCompiles = 3;
|
|
|
|
// Three compilations of the OK module should succeed.
|
|
for (var i = 0; i < kNumCompiles; ++i) {
|
|
await WebAssembly.compile(ok_buffer);
|
|
}
|
|
|
|
// Three compilations of the bad module should fail.
|
|
for (var i = 0; i < kNumCompiles; ++i) {
|
|
await WebAssembly.compile(bad_buffer);
|
|
}
|
|
})());
|