about summary refs log tree commit diff
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2016-01-06 19:21:28 +0000
committerBrian Anderson <banderson@mozilla.com>2016-02-06 20:56:31 +0000
commit7afb56f51e52030fbdda07c38f9ae09a1daeed9f (patch)
tree83257dd207b6d5636ce4a24aedb03df23a8e54d3
parentbd3fe498e5d1587e8081607731113593cee1c0dc (diff)
downloadrust-7afb56f51e52030fbdda07c38f9ae09a1daeed9f.tar.gz
rust-7afb56f51e52030fbdda07c38f9ae09a1daeed9f.zip
Add emscripten support to compiletest
-rw-r--r--src/compiletest/runtest.rs13
-rw-r--r--src/compiletest/util.rs2
2 files changed, 14 insertions, 1 deletions
diff --git a/src/compiletest/runtest.rs b/src/compiletest/runtest.rs
index 4abc4cce727..ada6ea200d1 100644
--- a/src/compiletest/runtest.rs
+++ b/src/compiletest/runtest.rs
@@ -1357,7 +1357,12 @@ fn make_lib_name(config: &Config, auxfile: &Path, testfile: &Path) -> PathBuf {
 
 fn make_exe_name(config: &Config, testfile: &Path) -> PathBuf {
     let mut f = output_base_name(config, testfile);
-    if !env::consts::EXE_SUFFIX.is_empty() {
+    // FIXME: This is using the host architecture exe suffix, not target!
+    if config.target == "asmjs-unknown-emscripten" {
+        let mut fname = f.file_name().unwrap().to_os_string();
+        fname.push(".js");
+        f.set_file_name(&fname);
+    } else if !env::consts::EXE_SUFFIX.is_empty() {
         let mut fname = f.file_name().unwrap().to_os_string();
         fname.push(env::consts::EXE_SUFFIX);
         f.set_file_name(&fname);
@@ -1370,6 +1375,12 @@ fn make_run_args(config: &Config, props: &TestProps, testfile: &Path)
     // If we've got another tool to run under (valgrind),
     // then split apart its command
     let mut args = split_maybe_args(&config.runtool);
+
+    // If this is emscripten, then run tests under nodejs
+    if config.target == "asmjs-unknown-emscripten" {
+        args.push("nodejs".to_owned());
+    }
+
     let exe_file = make_exe_name(config, testfile);
 
     // FIXME (#9639): This needs to handle non-utf8 paths
diff --git a/src/compiletest/util.rs b/src/compiletest/util.rs
index 027d5610380..69b839c5b7d 100644
--- a/src/compiletest/util.rs
+++ b/src/compiletest/util.rs
@@ -26,6 +26,7 @@ const OS_TABLE: &'static [(&'static str, &'static str)] = &[
     ("win32", "windows"),
     ("windows", "windows"),
     ("solaris", "solaris"),
+    ("emscripten", "emscripten"),
 ];
 
 const ARCH_TABLE: &'static [(&'static str, &'static str)] = &[
@@ -44,6 +45,7 @@ const ARCH_TABLE: &'static [(&'static str, &'static str)] = &[
     ("sparc", "sparc"),
     ("x86_64", "x86_64"),
     ("xcore", "xcore"),
+    ("asmjs", "asmjs"),
 ];
 
 pub fn get_os(triple: &str) -> &'static str {