1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 17:57:35 +00:00

LibJS: Convert most builtin tests to new system

This commit is contained in:
Matthew Olsson 2020-07-04 10:09:48 -07:00 committed by Andreas Kling
parent 46581773c1
commit 3f97d75778
107 changed files with 2031 additions and 2243 deletions

View file

@ -42,6 +42,86 @@
// FIXME: Will eventually not be necessary when all tests are converted
Vector<String> tests_to_run = {
"builtins/Boolean/Boolean.js",
"builtins/Boolean/Boolean.prototype.js",
"builtins/Boolean/Boolean.prototype.toString.js",
"builtins/Boolean/Boolean.prototype.valueOf.js",
"builtins/Date/Date.js",
"builtins/Date/Date.now.js",
"builtins/Date/Date.prototype.getDate.js",
"builtins/Date/Date.prototype.getDay.js",
"builtins/Date/Date.prototype.getFullYear.js",
"builtins/Date/Date.prototype.getHours.js",
"builtins/Date/Date.prototype.getMilliseconds.js",
"builtins/Date/Date.prototype.getMinutes.js",
"builtins/Date/Date.prototype.getMonth.js",
"builtins/Date/Date.prototype.getSeconds.js",
"builtins/Date/Date.prototype.getTime.js",
"builtins/Error/Error.js",
"builtins/Error/Error.prototype.name.js",
"builtins/Error/Error.prototype.toString.js",
"builtins/Function/Function.js",
"builtins/Function/Function.prototype.apply.js",
"builtins/Function/Function.prototype.bind.js",
"builtins/Function/Function.prototype.call.js",
"builtins/Function/Function.prototype.toString.js",
"builtins/functions/isFinite.js",
"builtins/functions/isNaN.js",
"builtins/functions/parseFloat.js",
"builtins/Infinity/Infinity.js",
"builtins/JSON/JSON.parse.js",
"builtins/JSON/JSON.parse-reviver.js",
"builtins/JSON/JSON.stringify.js",
"builtins/JSON/JSON.stringify-order.js",
"builtins/JSON/JSON.stringify-proxy.js",
"builtins/JSON/JSON.stringify-replacer.js",
"builtins/JSON/JSON.stringify-space.js",
"builtins/Math/Math-constants.js",
"builtins/Math/Math.abs.js",
"builtins/Math/Math.acosh.js",
"builtins/Math/Math.asinh.js",
"builtins/Math/Math.atanh.js",
"builtins/Math/Math.cbrt.js",
"builtins/Math/Math.ceil.js",
"builtins/Math/Math.clz32.js",
"builtins/Math/Math.cos.js",
"builtins/Math/Math.exp.js",
"builtins/Math/Math.expm1.js",
"builtins/Math/Math.floor.js",
"builtins/Math/Math.log1p.js",
"builtins/Math/Math.max.js",
"builtins/Math/Math.min.js",
"builtins/Math/Math.pow.js",
"builtins/Math/Math.sign.js",
"builtins/Math/Math.sqrt.js",
"builtins/Math/Math.tan.js",
"builtins/Math/Math.trunc.js",
"builtins/NaN/NaN.js",
"builtins/Number/Number.js",
"builtins/Number/Number-constants.js",
"builtins/Number/Number.isFinite.js",
"builtins/Number/Number.isInteger.js",
"builtins/Number/Number.isNaN.js",
"builtins/Number/Number.isSafeInteger.js",
"builtins/Number/Number.parseFloat.js",
"builtins/Number/Number.prototype.js",
"builtins/Object/Object.js",
"builtins/Object/Object.defineProperty.js",
"builtins/Object/Object.entries.js",
"builtins/Object/Object.getOwnPropertyDescriptor.js",
"builtins/Object/Object.getOwnPropertyNames.js",
"builtins/Object/Object.getPrototypeOf.js",
"builtins/Object/Object.is.js",
"builtins/Object/Object.isExtensible.js",
"builtins/Object/Object.keys.js",
"builtins/Object/Object.preventExtensions.js",
"builtins/Object/Object.prototype.js",
"builtins/Object/Object.prototype.constructor.js",
"builtins/Object/Object.prototype.hasOwnProperty.js",
"builtins/Object/Object.prototype.toLocaleString.js",
"builtins/Object/Object.prototype.toString.js",
"builtins/Object/Object.setPrototypeOf.js",
"builtins/Object/Object.values.js",
"builtins/Proxy/Proxy.js",
"builtins/Proxy/Proxy.handler-apply.js",
"builtins/Proxy/Proxy.handler-construct.js",
@ -54,7 +134,7 @@ Vector<String> tests_to_run = {
"builtins/Proxy/Proxy.handler-isExtensible.js",
"builtins/Proxy/Proxy.handler-preventExtensions.js",
"builtins/Proxy/Proxy.handler-set.js",
"builtins/Proxy/Proxy.handler-setPrototypeOf.js",
"builtins/Proxy/Proxy.handler-setPrototypeOf.js",\
"builtins/Reflect/Reflect.apply.js",
"builtins/Reflect/Reflect.construct.js",
"builtins/Reflect/Reflect.defineProperty.js",
@ -67,7 +147,27 @@ Vector<String> tests_to_run = {
"builtins/Reflect/Reflect.ownKeys.js",
"builtins/Reflect/Reflect.preventExtensions.js",
"builtins/Reflect/Reflect.set.js",
"builtins/Reflect/Reflect.setPrototypeOf.js",
"builtins/Reflect/Reflect.setPrototypeOf.js",\
"builtins/String/String.js",
"builtins/String/String.fromCharCode.js",
"builtins/String/String.prototype.js",
"builtins/String/String.prototype-generic-functions.js",
"builtins/String/String.prototype.charAt.js",
"builtins/String/String.prototype.includes.js",
"builtins/String/String.prototype.indexOf.js",
"builtins/String/String.prototype.lastIndexOf.js",
"builtins/String/String.prototype.padEnd.js",
"builtins/String/String.prototype.padStart.js",
"builtins/String/String.prototype.repeat.js",
"builtins/String/String.prototype.slice.js",
"builtins/String/String.prototype.startsWith.js",
"builtins/String/String.prototype.substring.js",
"builtins/String/String.prototype.toLowerCase.js",
"builtins/String/String.prototype.toString.js",
"builtins/String/String.prototype.toUpperCase.js",
"builtins/String/String.prototype.trim.js",
"builtins/String/String.prototype.valueOf.js",
"builtins/String/String.raw.js",\
"add-values-to-primitive.js",
"automatic-semicolon-insertion.js",
"comments-basic.js",
@ -122,7 +222,10 @@ Optional<TestError> parse_and_run_file(JS::Interpreter& interpreter, const Strin
{
auto file = Core::File::construct(path);
auto result = file->open(Core::IODevice::ReadOnly);
ASSERT(result);
if (!result) {
dbg() << "Failed to open file " << path;
exit(1);
}
auto contents = file->read_all();
String test_file_string(reinterpret_cast<const char*>(contents.data()), contents.size());
@ -158,7 +261,7 @@ FileResults run_test(const String& path, const String& test_root)
// FIXME: Should be printed to stdout in a nice format
auto& arr = interpreter->get_variable("__UserOutput__", interpreter->global_object()).as_array();
for (auto& entry : arr.indexed_properties()) {
dbg() << "OUTPUT: " << entry.value_and_attributes(&interpreter->global_object()).value.to_string_without_side_effects();
dbg() << path << ": " << entry.value_and_attributes(&interpreter->global_object()).value.to_string_without_side_effects();
}
// FIXME: This is _so_ scuffed