mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 04:47:35 +00:00
LibJS/Tests: Set failing bytecode tests as xfail when in bytecode mode
This should allow us to enable running test-js in bytecode mode in CI.
This commit is contained in:
parent
9b66e87bd8
commit
d766014787
17 changed files with 145 additions and 110 deletions
|
@ -7,7 +7,7 @@ test("is the same as dispose", () => {
|
|||
});
|
||||
|
||||
describe("used in using functionality", () => {
|
||||
test("make the stack marked as disposed", () => {
|
||||
test.xfailIf(isBytecodeInterpreterEnabled(), "make the stack marked as disposed", () => {
|
||||
let innerStack;
|
||||
{
|
||||
using stack = new DisposableStack();
|
||||
|
|
|
@ -3,12 +3,13 @@ const stackGetter = stackDescriptor.get;
|
|||
const stackSetter = stackDescriptor.set;
|
||||
|
||||
describe("getter - normal behavior", () => {
|
||||
test("basic functionality", () => {
|
||||
test.xfailIf(isBytecodeInterpreterEnabled(), "basic functionality", () => {
|
||||
const stackFrames = [
|
||||
/^ at .*Error \(.*\/Error\.prototype\.stack\.js:\d+:\d+\)$/,
|
||||
/^ at .+\/Error\/Error\.prototype\.stack\.js:\d+:\d+$/,
|
||||
/^ at test \(.+\/test-common.js:\d+:\d+\)$/,
|
||||
/^ at .+\/Error\/Error\.prototype\.stack\.js:6:33$/,
|
||||
/^ at (.+\/test-common.js:\d+:\d+)/,
|
||||
/^ at .+\/Error\/Error\.prototype\.stack\.js:6:73$/,
|
||||
/^ at describe \(.+\/test-common\.js:\d+:\d+\)$/,
|
||||
/^ at .+\/Error\/Error\.prototype\.stack\.js:5:38$/,
|
||||
];
|
||||
|
|
|
@ -8,7 +8,7 @@ function registerInDifferentScope(registry) {
|
|||
return target;
|
||||
}
|
||||
|
||||
test("basic functionality", () => {
|
||||
test.xfailIf(isBytecodeInterpreterEnabled(), "basic functionality", () => {
|
||||
var registry = new FinalizationRegistry(() => {});
|
||||
|
||||
var count = 0;
|
||||
|
|
|
@ -40,7 +40,7 @@ describe("normal behavior", () => {
|
|||
expect(passed).toBeTrue();
|
||||
});
|
||||
|
||||
test("value from async module", () => {
|
||||
test.xfailIf(isBytecodeInterpreterEnabled(), "value from async module", () => {
|
||||
const shadowRealm = new ShadowRealm();
|
||||
const promise = shadowRealm.importValue("./async-module.mjs", "foo");
|
||||
expect(promise).toBeInstanceOf(Promise);
|
||||
|
|
|
@ -21,25 +21,29 @@ test("invalid values", () => {
|
|||
});
|
||||
});
|
||||
|
||||
test("automatic removal of garbage-collected values", () => {
|
||||
const weakMap = new WeakMap();
|
||||
const objectKey = { e: 3 };
|
||||
test.xfailIf(
|
||||
isBytecodeInterpreterEnabled(),
|
||||
"automatic removal of garbage-collected values",
|
||||
() => {
|
||||
const weakMap = new WeakMap();
|
||||
const objectKey = { e: 3 };
|
||||
|
||||
expect(weakMap.set(objectKey, 1)).toBe(weakMap);
|
||||
expect(getWeakMapSize(weakMap)).toBe(1);
|
||||
expect(weakMap.set(objectKey, 1)).toBe(weakMap);
|
||||
expect(getWeakMapSize(weakMap)).toBe(1);
|
||||
|
||||
markAsGarbage("objectKey");
|
||||
gc();
|
||||
markAsGarbage("objectKey");
|
||||
gc();
|
||||
|
||||
expect(getWeakMapSize(weakMap)).toBe(0);
|
||||
expect(getWeakMapSize(weakMap)).toBe(0);
|
||||
|
||||
const symbolKey = Symbol("foo");
|
||||
const symbolKey = Symbol("foo");
|
||||
|
||||
expect(weakMap.set(symbolKey, "bar")).toBe(weakMap);
|
||||
expect(getWeakMapSize(weakMap)).toBe(1);
|
||||
expect(weakMap.set(symbolKey, "bar")).toBe(weakMap);
|
||||
expect(getWeakMapSize(weakMap)).toBe(1);
|
||||
|
||||
markAsGarbage("symbolKey");
|
||||
gc();
|
||||
markAsGarbage("symbolKey");
|
||||
gc();
|
||||
|
||||
expect(getWeakMapSize(weakMap)).toBe(0);
|
||||
});
|
||||
expect(getWeakMapSize(weakMap)).toBe(0);
|
||||
}
|
||||
);
|
||||
|
|
|
@ -16,25 +16,29 @@ test("invalid values", () => {
|
|||
});
|
||||
});
|
||||
|
||||
test("automatic removal of garbage-collected values", () => {
|
||||
const weakSet = new WeakSet();
|
||||
const objectItem = { a: 1 };
|
||||
test.xfailIf(
|
||||
isBytecodeInterpreterEnabled(),
|
||||
"automatic removal of garbage-collected values",
|
||||
() => {
|
||||
const weakSet = new WeakSet();
|
||||
const objectItem = { a: 1 };
|
||||
|
||||
expect(weakSet.add(objectItem)).toBe(weakSet);
|
||||
expect(getWeakSetSize(weakSet)).toBe(1);
|
||||
expect(weakSet.add(objectItem)).toBe(weakSet);
|
||||
expect(getWeakSetSize(weakSet)).toBe(1);
|
||||
|
||||
markAsGarbage("objectItem");
|
||||
gc();
|
||||
markAsGarbage("objectItem");
|
||||
gc();
|
||||
|
||||
expect(getWeakSetSize(weakSet)).toBe(0);
|
||||
expect(getWeakSetSize(weakSet)).toBe(0);
|
||||
|
||||
const symbolItem = Symbol("foo");
|
||||
const symbolItem = Symbol("foo");
|
||||
|
||||
expect(weakSet.add(symbolItem)).toBe(weakSet);
|
||||
expect(getWeakSetSize(weakSet)).toBe(1);
|
||||
expect(weakSet.add(symbolItem)).toBe(weakSet);
|
||||
expect(getWeakSetSize(weakSet)).toBe(1);
|
||||
|
||||
markAsGarbage("symbolItem");
|
||||
gc();
|
||||
markAsGarbage("symbolItem");
|
||||
gc();
|
||||
|
||||
expect(getWeakSetSize(weakSet)).toBe(0);
|
||||
});
|
||||
expect(getWeakSetSize(weakSet)).toBe(0);
|
||||
}
|
||||
);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue