Fix wasm tests on CI (#616)

* wasm: Improve error message on missing language symbol

* Fix source file existence checks in build-wasm command
This commit is contained in:
Max Brunsfeld 2020-05-13 15:14:43 -07:00 committed by GitHub
parent 2934e219cf
commit 40993195b8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 4 deletions

View file

@ -89,11 +89,11 @@ pub fn compile_language_to_wasm(language_dir: &Path, force_docker: bool) -> Resu
let scanner_cc_path = src.join("scanner.cc");
let scanner_cpp_path = src.join("scanner.cpp");
if scanner_cc_path.exists() {
if language_dir.join(&scanner_cc_path).exists() {
command.arg("-xc++").arg(&scanner_cc_path);
} else if scanner_cpp_path.exists() {
} else if language_dir.join(&scanner_cpp_path).exists() {
command.arg("-xc++").arg(&scanner_cpp_path);
} else if scanner_c_path.exists() {
} else if language_dir.join(&scanner_c_path).exists() {
command.arg(&scanner_c_path);
}

View file

@ -872,10 +872,14 @@ class Language {
return bytes
.then(bytes => loadWebAssemblyModule(bytes, {loadAsync: true}))
.then(mod => {
const functionName = Object.keys(mod).find(key =>
const symbolNames = Object.keys(mod)
const functionName = symbolNames.find(key =>
LANGUAGE_FUNCTION_REGEX.test(key) &&
!key.includes("external_scanner_")
);
if (!functionName) {
console.log(`Couldn't find language function in WASM file. Symbols:\n${JSON.stringify(symbolNames, null, 2)}`)
}
const languageAddress = mod[functionName]();
return new Language(INTERNAL, languageAddress);
});