1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 20:37:36 +00:00

LibJS: Reorganize tests into subfolders

This commit is contained in:
Matthew Olsson 2020-07-02 16:09:21 -07:00 committed by Andreas Kling
parent 21064a1883
commit 4c48c9d69d
213 changed files with 10 additions and 2 deletions

View file

@ -0,0 +1,14 @@
load("test-common.js");
try {
var j = 0;
for (var i = 0; i < 9; ++i) {
if (i == 3)
continue;
++j;
}
assert(j == 8);
console.log("PASS");
} catch {
}

View file

@ -0,0 +1,17 @@
load("test-common.js");
try {
var number = 0;
do {
number++;
} while (number < 9);
assert(number === 9);
number = 0;
do number++; while(number < 3);
assert(number === 3);
console.log("PASS");
} catch (e) {
console.log("FAIL: " + e);
}

View file

@ -0,0 +1,24 @@
load("test-common.js");
try {
var a = [];
for (var i = 0; i < 3; ++i) {
a.push(i);
}
assert(a.length === 3);
assert(a[0] === 0);
assert(a[1] === 1);
assert(a[2] === 2);
for (; a.length < 6;) {
a.push('x');
}
assert(a.length === 6);
assert(a[3] === 'x');
assert(a[4] === 'x');
assert(a[5] === 'x');
console.log("PASS");
} catch (e) {
console.log("FAIL: " + e);
}

View file

@ -0,0 +1,36 @@
load("test-common.js");
try {
assertThrowsError(() => {
for (var i = foo; i < 100; ++i) {
assertNotReached();
}
}, {
error: ReferenceError,
message: "'foo' is not defined"
});
assertThrowsError(() => {
for (var i = 0; i < foo; ++i) {
assertNotReached();
}
}, {
error: ReferenceError,
message: "'foo' is not defined"
});
var loopCount = 0;
assertThrowsError(() => {
for (var i = 0; i < 100; ++foo) {
loopCount++;
}
}, {
error: ReferenceError,
message: "'foo' is not defined"
});
assert(loopCount === 1);
console.log("PASS");
} catch (e) {
console.log("FAIL: " + e);
}

View file

@ -0,0 +1,41 @@
load("test-common.js");
try {
assertVisitsAll(visit => {
for (const property in "") {
visit(property);
}
}, []);
assertVisitsAll(visit => {
for (const property in 123) {
visit(property);
}
}, []);
assertVisitsAll(visit => {
for (const property in {}) {
visit(property);
}
}, []);
assertVisitsAll(visit => {
for (const property in "hello") {
visit(property);
}
}, ["0", "1", "2", "3", "4"]);
assertVisitsAll(visit => {
for (const property in {a: 1, b: 2, c: 2}) {
visit(property);
}
}, ["a", "b", "c"]);
var property;
for (property in "abc");
assert(property === "2");
console.log("PASS");
} catch (e) {
console.log("FAIL: " + e);
}

View file

@ -0,0 +1,14 @@
load("test-common.js");
try {
var number = 0;
for (var i = 0; i < 3; ++i)
for (var j = 0; j < 3; ++j)
number++;
assert(number === 9);
console.log("PASS");
} catch (e) {
console.log("FAIL: " + e);
}

View file

@ -0,0 +1,43 @@
load("test-common.js");
try {
assertThrowsError(() => {
for (const _ of 123) {}
}, {
error: TypeError,
message: "for..of right-hand side must be iterable"
});
assertThrowsError(() => {
for (const _ of {foo: 1, bar: 2}) {}
}, {
error: TypeError,
message: "for..of right-hand side must be iterable"
});
assertVisitsAll(visit => {
for (const num of [1, 2, 3]) {
visit(num);
}
}, [1, 2, 3]);
assertVisitsAll(visit => {
for (const char of "hello") {
visit(char);
}
}, ["h", "e", "l", "l", "o"]);
assertVisitsAll(visit => {
for (const char of new String("hello")) {
visit(char);
}
}, ["h", "e", "l", "l", "o"]);
var char;
for (char of "abc");
assert(char === "c");
console.log("PASS");
} catch (e) {
console.log("FAIL: " + e);
}

View file

@ -0,0 +1,22 @@
load("test-common.js");
try {
for (var v = 5; false; );
assert(v == 5);
const options = {error: ReferenceError};
assertThrowsError(() => {
for (let l = 5; false; );
l;
}, options);
assertThrowsError(() => {
for (const c = 5; false; );
c;
}, options)
console.log("PASS");
} catch (e) {
console.log("FAIL: " + e);
}

View file

@ -0,0 +1,21 @@
load("test-common.js");
try {
var number = 0;
while (number < 9) {
number++;
}
assert(number === 9);
number = 0;
while(number < 3) number++;
assert(number === 3);
while (false) {
assertNotReached();
}
console.log("PASS");
} catch (e) {
console.log("FAIL: " + e);
}