8306599e9b
This is a follow up CL for https://crrev.com/c/3538284. Tests credited to https://crrev.com/c/3468352. - Add unicode filename path test. - Convert ansi encoded filename argv to utf8 encoded on windows. Because the ansi encoded filename argv may lose some information for unicode filename, and we need to use GetCommandLineW to get the actual unicode filename argument. And we convert it to utf8 encoded to be consistent with subsequent processing. - Use REPLACEMENT CHARACTER to replace the characters which cannot be encoded with sys.stdout.encoding in progress.py. This CL should be **reverted** if new unicode filenames cause problems. Bug: v8:12541 Change-Id: Ic5c5ae342b3a5b11c3119452af03c9165d429ed7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3568926 Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: 王澳 <wangao.james@bytedance.com> Cr-Commit-Position: refs/heads/main@{#79850} |
||
---|---|---|
.. | ||
fail | ||
mjsunit | ||
regress/fail | ||
asm-assignment-undeclared.js | ||
asm-assignment-undeclared.out | ||
asm-function-mismatch-def.js | ||
asm-function-mismatch-def.out | ||
asm-function-mismatch-use.js | ||
asm-function-mismatch-use.out | ||
asm-function-redefined.js | ||
asm-function-redefined.out | ||
asm-function-undefined.js | ||
asm-function-undefined.out | ||
asm-function-variable-collision.js | ||
asm-function-variable-collision.out | ||
asm-import-wrong-annotation.js | ||
asm-import-wrong-annotation.out | ||
asm-import-wrong-object.js | ||
asm-import-wrong-object.out | ||
asm-linking-bogus-heap.js | ||
asm-linking-bogus-heap.out | ||
asm-linking-bogus-stdlib.js | ||
asm-linking-bogus-stdlib.out | ||
asm-linking-missing-heap.js | ||
asm-linking-missing-heap.out | ||
asm-missing-parameter-annotation.js | ||
asm-missing-parameter-annotation.out | ||
asm-missing-return-annotation.js | ||
asm-missing-return-annotation.out | ||
asm-table-mismatch-def.js | ||
asm-table-mismatch-def.out | ||
asm-table-mismatch-use.js | ||
asm-table-mismatch-use.out | ||
asm-table-redefined.js | ||
asm-table-redefined.out | ||
asm-table-undefined.js | ||
asm-table-undefined.out | ||
asm-table-variable-collision.js | ||
asm-table-variable-collision.out | ||
BUILD.gn | ||
empty.js | ||
empty.out | ||
message.status | ||
non-use-strict-hex-escape.js | ||
non-use-strict-hex-escape.out | ||
non-use-strict-octal-escape.js | ||
non-use-strict-octal-escape.out | ||
non-use-strict-uhex-escape.js | ||
non-use-strict-uhex-escape.out | ||
nonstrict-arguments.js | ||
nonstrict-arguments.out | ||
nonstrict-eval.js | ||
nonstrict-eval.out | ||
nonstrict-with.js | ||
nonstrict-with.out | ||
object-binding-pattern-await-computed-name.js | ||
object-binding-pattern-await-computed-name.out | ||
README.md | ||
strict-octal-indirect-regexp.js | ||
strict-octal-indirect-regexp.out | ||
strict-octal-regexp.js | ||
strict-octal-regexp.out | ||
testcfg.py | ||
try-catch-finally-no-message.js | ||
try-catch-finally-no-message.out | ||
try-catch-finally-return-in-finally.js | ||
try-catch-finally-return-in-finally.out | ||
try-finally-return-in-finally.js | ||
try-finally-return-in-finally.out | ||
unicode-filename-🎅🎄.js | ||
unicode-filename-🎅🎄.out | ||
wasm-finish-compilation.js | ||
wasm-finish-compilation.out | ||
wasm-function-name-async.js | ||
wasm-function-name-async.out | ||
wasm-function-name-streaming.js | ||
wasm-function-name-streaming.out | ||
wasm-module-and-function-name-async.js | ||
wasm-module-and-function-name-async.out | ||
wasm-module-and-function-name-streaming.js | ||
wasm-module-and-function-name-streaming.out | ||
wasm-module-name-async.js | ||
wasm-module-name-async.out | ||
wasm-module-name-streaming.js | ||
wasm-module-name-streaming.out | ||
wasm-no-name-async.js | ||
wasm-no-name-async.out | ||
wasm-no-name-streaming.js | ||
wasm-no-name-streaming.out | ||
wasm-trace-liftoff.js | ||
wasm-trace-liftoff.out | ||
wasm-trace-memory-liftoff.js | ||
wasm-trace-memory-liftoff.out | ||
wasm-trace-memory.js | ||
wasm-trace-memory.out | ||
wasm-trace-turbofan.js | ||
wasm-trace-turbofan.out | ||
weakref-finalizationregistry-error.js | ||
weakref-finalizationregistry-error.out |
JavaScript tests with expected output
Tests in test/message
pass if the output matches the expected output.
Message tests are particularly useful when checking for exact error messages.
Tests and their expected output must have the same filename, with the .js
and
.out
extension.
foo.js
foo.out
You can use a regex in the expected output instead of the exact path:
*%(basename)s:7: SyntaxError: Detected cycle while resolving name 'a'
Empty lines are ignored in the comparison, but whitespaces are not.
Exact details of the test runner are in testcfg.py.