summaryrefslogtreecommitdiff
path: root/deps/v8/test/mjsunit/wasm/shared-memory-worker-explicit-gc-stress.js
blob: aa9088ecbc3c1c82c0e288eefdf4883fd2ae740c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// 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.

// Flags: --experimental-wasm-threads --expose-gc

load("test/mjsunit/worker-ping-test.js");

let kDisabledAbort = false; // TODO(9380): enable abort for this test

let config = {
  numThings: 4,       // size of circular buffer
  numWorkers: 4,      // number of workers
  numMessages: 500,   // number of messages sent to each worker
  allocInterval: 11,  // interval for allocating new things per worker
  traceScript: false, // print the script
  traceAlloc: true,   // print each allocation attempt
  traceIteration: 10, // print diagnostics every so many iterations
  abortOnFail: kDisabledAbort,  // kill worker if allocation fails

  AllocThing: function AllocThing(id) {
    let pages = 1, max = 1;
    return new WebAssembly.Memory({initial : pages, maximum : max, shared : true});
  },
  BeforeSend: function BeforeSend(msg) {
    gc();
  },
  BeforeReceive: function BeforeReceive(msg) {
    gc();
  }
}

RunWorkerPingTest(config);