about summary refs log tree commit diff
diff options
context:
space:
mode:
authorTim Chevalier <chevalier@alum.wellesley.edu>2013-09-12 18:48:02 -0700
committerTim Chevalier <chevalier@alum.wellesley.edu>2013-09-15 09:55:11 -0700
commit84f2d3397392ac496c23908776ad5afbb38e107f (patch)
tree9dd9cf9338181f7f4338616d5c2ed221ad45ebe5
parente0528a50779f3608d7e623b938cdb239e3d94d51 (diff)
downloadrust-84f2d3397392ac496c23908776ad5afbb38e107f.tar.gz
rust-84f2d3397392ac496c23908776ad5afbb38e107f.zip
rustpkg: Cleanup
-rw-r--r--src/librustpkg/tests.rs101
1 files changed, 42 insertions, 59 deletions
diff --git a/src/librustpkg/tests.rs b/src/librustpkg/tests.rs
index aa663a4b273..83110e22ed5 100644
--- a/src/librustpkg/tests.rs
+++ b/src/librustpkg/tests.rs
@@ -95,17 +95,17 @@ fn mk_empty_workspace(short_name: &Path, version: &Version, tag: &str) -> Path {
 
 fn mk_workspace(workspace: &Path, short_name: &Path, version: &Version) -> Path {
     // include version number in directory name
-    let package_dir = workspace.push("src").push(fmt!("%s-%s",
-                                                      short_name.to_str(), version.to_str()));
+    let package_dir = workspace.push_many([~"src", fmt!("%s-%s",
+                                                      short_name.to_str(), version.to_str())]);
     assert!(os::mkdir_recursive(&package_dir, U_RWX));
     package_dir
 }
 
 fn mk_temp_workspace(short_name: &Path, version: &Version) -> Path {
     let package_dir = mk_empty_workspace(short_name,
-                          version, "temp_workspace").push("src").push(fmt!("%s-%s",
+                          version, "temp_workspace").push_many([~"src", fmt!("%s-%s",
                                                             short_name.to_str(),
-                                                            version.to_str()));
+                                                            version.to_str())]);
 
     debug!("Created %s and does it exist? %?", package_dir.to_str(),
           os::path_is_dir(&package_dir));
@@ -207,13 +207,13 @@ fn test_sysroot() -> Path {
 // Returns the path to rustpkg
 fn rustpkg_exec() -> Path {
     // Ugh
-    let first_try = test_sysroot().push("lib").push("rustc")
-        .push(host_triple()).push("bin").push("rustpkg");
+    let first_try = test_sysroot().push_many(
+        [~"lib", ~"rustc", host_triple(), ~"bin", ~"rustpkg"]);
     if is_executable(&first_try) {
         first_try
     }
     else {
-        let second_try = test_sysroot().push("bin").push("rustpkg");
+        let second_try = test_sysroot().push_many([~"bin", ~"rustpkg"]);
         if is_executable(&second_try) {
             second_try
         }
@@ -237,8 +237,11 @@ fn command_line_test_partial(args: &[~str], cwd: &Path) -> Option<ProcessOutput>
 fn command_line_test_with_env(args: &[~str], cwd: &Path, env: Option<~[(~str, ~str)]>)
     -> Option<ProcessOutput> {
     let cmd = rustpkg_exec().to_str();
-    debug!("cd %s; %s %s",
-           cwd.to_str(), cmd, args.connect(" "));
+    let env_str = match env {
+        Some(ref pairs) => pairs.map(|&(ref k, ref v)| { fmt!("%s=%s", *k, *v) }).connect(","),
+        None        => ~""
+    };
+    debug!("%s cd %s; %s %s", env_str, cwd.to_str(), cmd, args.connect(" "));
     assert!(os::path_is_dir(&*cwd));
     let cwd = (*cwd).clone();
     let mut prog = run::Process::new(cmd, args, run::ProcessOptions {
@@ -278,7 +281,7 @@ fn create_local_package(pkgid: &PkgId) -> Path {
 
 fn create_local_package_in(pkgid: &PkgId, pkgdir: &Path) -> Path {
 
-    let package_dir = pkgdir.push("src").push(pkgid.to_str());
+    let package_dir = pkgdir.push_many([~"src", pkgid.to_str()]);
 
     // Create main, lib, test, and bench files
     assert!(os::mkdir_recursive(&package_dir, U_RWX));
@@ -306,16 +309,12 @@ fn create_local_package_with_dep(pkgid: &PkgId, subord_pkgid: &PkgId) -> Path {
     let package_dir = create_local_package(pkgid);
     create_local_package_in(subord_pkgid, &package_dir);
     // Write a main.rs file into pkgid that references subord_pkgid
-    writeFile(&package_dir.push("src").push(pkgid.to_str()).push("main.rs"),
+    writeFile(&package_dir.push_many([~"src", pkgid.to_str(), ~"main.rs"]),
               fmt!("extern mod %s;\nfn main() {}",
                    subord_pkgid.short_name));
     // Write a lib.rs file into subord_pkgid that has something in it
-    writeFile(&package_dir.push("src").push(subord_pkgid.to_str()).push("lib.rs"),
+    writeFile(&package_dir.push_many([~"src", subord_pkgid.to_str(), ~"lib.rs"]),
               "pub fn f() {}");
-    debug!("Dry run -- would create packages %s and %s in %s",
-           pkgid.to_str(),
-           subord_pkgid.to_str(),
-           package_dir.to_str());
     package_dir
 }
 
@@ -432,13 +431,13 @@ fn lib_output_file_name(workspace: &Path, parent: &str, short_name: &str) -> Pat
                          &NoVersion).expect("lib_output_file_name")
 }
 
-fn output_file_name(workspace: &Path, short_name: &str) -> Path {
+fn output_file_name(workspace: &Path, short_name: ~str) -> Path {
     target_build_dir(workspace).push(short_name).push(fmt!("%s%s", short_name, os::EXE_SUFFIX))
 }
 
 fn touch_source_file(workspace: &Path, pkgid: &PkgId) {
     use conditions::bad_path::cond;
-    let pkg_src_dir = workspace.push("src").push(pkgid.to_str());
+    let pkg_src_dir = workspace.push_many([~"src", pkgid.to_str()]);
     let contents = os::list_dir_path(&pkg_src_dir);
     for p in contents.iter() {
         if p.filetype() == Some(".rs") {
@@ -453,7 +452,7 @@ fn touch_source_file(workspace: &Path, pkgid: &PkgId) {
 /// Add a comment at the end
 fn frob_source_file(workspace: &Path, pkgid: &PkgId) {
     use conditions::bad_path::cond;
-    let pkg_src_dir = workspace.push("src").push(pkgid.to_str());
+    let pkg_src_dir = workspace.push_many([~"src", pkgid.to_str()]);
     let contents = os::list_dir_path(&pkg_src_dir);
     let mut maybe_p = None;
     for p in contents.iter() {
@@ -544,7 +543,7 @@ fn test_install_git() {
     let temp_pkg_id = git_repo_pkg();
     let repo = init_git_repo(&temp_pkg_id.path);
     debug!("repo = %s", repo.to_str());
-    let repo_subdir = repo.push("mockgithub.com").push("catamorphism").push("test-pkg");
+    let repo_subdir = repo.push_many([~"mockgithub.com", ~"catamorphism", ~"test-pkg"]);
     debug!("repo_subdir = %s", repo_subdir.to_str());
 
     writeFile(&repo_subdir.push("main.rs"),
@@ -632,7 +631,7 @@ fn test_package_ids_must_be_relative_path_like() {
 fn test_package_version() {
     let local_path = "mockgithub.com/catamorphism/test_pkg_version";
     let repo = init_git_repo(&Path(local_path));
-    let repo_subdir = repo.push("mockgithub.com").push("catamorphism").push("test_pkg_version");
+    let repo_subdir = repo.push_many([~"mockgithub.com", ~"catamorphism", ~"test_pkg_version"]);
     debug!("Writing files in: %s", repo_subdir.to_str());
     writeFile(&repo_subdir.push("main.rs"),
               "fn main() { let _x = (); }");
@@ -667,7 +666,7 @@ fn test_package_version() {
 fn test_package_request_version() {
     let local_path = "mockgithub.com/catamorphism/test_pkg_version";
     let repo = init_git_repo(&Path(local_path));
-    let repo_subdir = repo.push("mockgithub.com").push("catamorphism").push("test_pkg_version");
+    let repo_subdir = repo.push_many([~"mockgithub.com", ~"catamorphism", ~"test_pkg_version"]);
     debug!("Writing files in: %s", repo_subdir.to_str());
     writeFile(&repo_subdir.push("main.rs"),
               "fn main() { let _x = (); }");
@@ -693,16 +692,16 @@ fn test_package_request_version() {
     });
     let temp_pkg_id = PkgId::new("mockgithub.com/catamorphism/test_pkg_version#0.3");
     assert!(target_executable_in_workspace(&temp_pkg_id, &repo.push(".rust"))
-            == repo.push(".rust").push("bin").push("test_pkg_version"));
+            == repo.push_many([~".rust", ~"bin", ~"test_pkg_version"]));
+
+    let dir = &repo.push_many([~".rust",
+                               ~"src",
+                               ~"mockgithub.com",
+                               ~"catamorphism",
+                               ~"test_pkg_version-0.3"]);
 
-    assert!(os::path_exists(&repo.push(".rust").push("src")
-                            .push("mockgithub.com").push("catamorphism")
-                            .push("test_pkg_version-0.3")
-                            .push("version-0.3-file.txt")));
-    assert!(!os::path_exists(&repo.push(".rust").push("src")
-                            .push("mockgithub.com").push("catamorphism")
-                             .push("test_pkg_version-0.3")
-                            .push("version-0.4-file.txt")));
+    assert!(os::path_exists(&dir.push("version-0.3-file.txt")));
+    assert!(!os::path_exists(&dir.push("version-0.4-file.txt")));
 }
 
 #[test]
@@ -745,11 +744,11 @@ fn rustpkg_local_pkg() {
 fn package_script_with_default_build() {
     let dir = create_local_package(&PkgId::new("fancy-lib"));
     debug!("dir = %s", dir.to_str());
-    let source = test_sysroot().pop().pop().pop().push("src").push("librustpkg").
-        push("testsuite").push("pass").push("src").push("fancy-lib").push("pkg.rs");
+    let source = test_sysroot().pop().pop().pop().push_many(
+        [~"src", ~"librustpkg", ~"testsuite", ~"pass", ~"src", ~"fancy-lib", ~"pkg.rs"]);
     debug!("package_script_with_default_build: %s", source.to_str());
     if !os::copy_file(&source,
-                      &dir.push("src").push("fancy-lib-0.1").push("pkg.rs")) {
+                      &dir.push_many([~"src", ~"fancy-lib-0.1", ~"pkg.rs"])) {
         fail!("Couldn't copy file");
     }
     command_line_test([~"install", ~"fancy-lib"], &dir);
@@ -761,7 +760,7 @@ fn package_script_with_default_build() {
 fn rustpkg_build_no_arg() {
     let tmp = mkdtemp(&os::tmpdir(), "rustpkg_build_no_arg").expect("rustpkg_build_no_arg failed")
               .push(".rust");
-    let package_dir = tmp.push("src").push("foo");
+    let package_dir = tmp.push_many([~"src", ~"foo"]);
     assert!(os::mkdir_recursive(&package_dir, U_RWX));
 
     writeFile(&package_dir.push("main.rs"),
@@ -776,7 +775,7 @@ fn rustpkg_install_no_arg() {
     let tmp = mkdtemp(&os::tmpdir(),
                       "rustpkg_install_no_arg").expect("rustpkg_install_no_arg failed")
               .push(".rust");
-    let package_dir = tmp.push("src").push("foo");
+    let package_dir = tmp.push_many([~"src", ~"foo"]);
     assert!(os::mkdir_recursive(&package_dir, U_RWX));
     writeFile(&package_dir.push("lib.rs"),
               "fn main() { let _x = (); }");
@@ -789,7 +788,7 @@ fn rustpkg_install_no_arg() {
 fn rustpkg_clean_no_arg() {
     let tmp = mkdtemp(&os::tmpdir(), "rustpkg_clean_no_arg").expect("rustpkg_clean_no_arg failed")
               .push(".rust");
-    let package_dir = tmp.push("src").push("foo");
+    let package_dir = tmp.push_many([~"src", ~"foo"]);
     assert!(os::mkdir_recursive(&package_dir, U_RWX));
 
     writeFile(&package_dir.push("main.rs"),
@@ -822,7 +821,7 @@ fn rust_path_test() {
 #[ignore] // FIXME(#9184) tests can't change the cwd (other tests are sad then)
 fn rust_path_contents() {
     let dir = mkdtemp(&os::tmpdir(), "rust_path").expect("rust_path_contents failed");
-    let abc = &dir.push("A").push("B").push("C");
+    let abc = &dir.push_many([~"A", ~"B", ~"C"]);
     assert!(os::mkdir_recursive(&abc.push(".rust"), U_RWX));
     assert!(os::mkdir_recursive(&abc.pop().push(".rust"), U_RWX));
     assert!(os::mkdir_recursive(&abc.pop().pop().push(".rust"), U_RWX));
@@ -863,7 +862,6 @@ fn test_list() {
 // list doesn't output very much right now...
     command_line_test([~"install", ~"foo"], &dir);
     let env_arg = ~[(~"RUST_PATH", dir.to_str())];
-    debug!("RUST_PATH = %s", dir.to_str());
     let list_output = command_line_test_output_with_env([~"list"], env_arg.clone());
     assert!(list_output.iter().any(|x| x.starts_with("foo")));
 
@@ -949,14 +947,14 @@ fn no_rebuilding_dep() {
     let bar_date_1 = datestamp(&lib_output_file_name(&workspace,
                                                   ".rust",
                                                   "bar"));
-    let foo_date_1 = datestamp(&output_file_name(&workspace, "foo"));
+    let foo_date_1 = datestamp(&output_file_name(&workspace, ~"foo"));
 
     frob_source_file(&workspace, &p_id);
     command_line_test([~"build", ~"foo"], &workspace);
     let bar_date_2 = datestamp(&lib_output_file_name(&workspace,
                                                   ".rust",
                                                   "bar"));
-    let foo_date_2 = datestamp(&output_file_name(&workspace, "foo"));
+    let foo_date_2 = datestamp(&output_file_name(&workspace, ~"foo"));
     assert_eq!(bar_date_1, bar_date_2);
     assert!(foo_date_1 < foo_date_2);
     assert!(foo_date_1 > bar_date_1);
@@ -1043,7 +1041,7 @@ fn test_uninstall() {
 fn test_non_numeric_tag() {
     let temp_pkg_id = git_repo_pkg();
     let repo = init_git_repo(&temp_pkg_id.path);
-    let repo_subdir = repo.push("mockgithub.com").push("catamorphism").push("test-pkg");
+    let repo_subdir = repo.push_many([~"mockgithub.com", ~"catamorphism", ~"test-pkg"]);
     writeFile(&repo_subdir.push("foo"), "foo");
     writeFile(&repo_subdir.push("lib.rs"),
               "pub fn f() { let _x = (); }");
@@ -1085,12 +1083,6 @@ fn test_extern_mod() {
     let env = Some([(~"RUST_PATH", lib_depend_dir.to_str())] + os::env());
     let rustpkg_exec = rustpkg_exec();
     let rustc = rustpkg_exec.with_filename("rustc");
-    debug!("RUST_PATH=%s %s %s \n --sysroot %s -o %s",
-                     lib_depend_dir.to_str(),
-                     rustc.to_str(),
-                     main_file.to_str(),
-                     test_sysroot().to_str(),
-                     exec_file.to_str());
 
     let mut prog = run::Process::new(rustc.to_str(), [main_file.to_str(),
                                                       ~"--sysroot", test_sysroot().to_str(),
@@ -1164,7 +1156,7 @@ fn test_extern_mod_simpler() {
 fn test_import_rustpkg() {
     let p_id = PkgId::new("foo");
     let workspace = create_local_package(&p_id);
-    writeFile(&workspace.push("src").push("foo-0.1").push("pkg.rs"),
+    writeFile(&workspace.push_many([~"src", ~"foo-0.1", ~"pkg.rs"]),
               "extern mod rustpkg; fn main() {}");
     command_line_test([~"build", ~"foo"], &workspace);
     debug!("workspace = %s", workspace.to_str());
@@ -1176,7 +1168,7 @@ fn test_import_rustpkg() {
 fn test_macro_pkg_script() {
     let p_id = PkgId::new("foo");
     let workspace = create_local_package(&p_id);
-    writeFile(&workspace.push("src").push("foo-0.1").push("pkg.rs"),
+    writeFile(&workspace.push_many([~"src", ~"foo-0.1", ~"pkg.rs"]),
               "extern mod rustpkg; fn main() { debug!(\"Hi\"); }");
     command_line_test([~"build", ~"foo"], &workspace);
     debug!("workspace = %s", workspace.to_str());
@@ -1215,8 +1207,6 @@ fn rust_path_hack_test(hack_flag: bool) {
    let dest_workspace = mk_empty_workspace(&Path("bar"), &NoVersion, "dest_workspace");
    let rust_path = Some(~[(~"RUST_PATH",
        fmt!("%s:%s", dest_workspace.to_str(), workspace.push_many(["src", "foo-0.1"]).to_str()))]);
-   debug!("declare -x RUST_PATH=%s:%s",
-       dest_workspace.to_str(), workspace.push_many(["src", "foo-0.1"]).to_str());
    command_line_test_with_env(~[~"install"] + if hack_flag { ~[~"--rust-path-hack"] } else { ~[] } +
                                ~[~"foo"], &dest_workspace, rust_path);
    assert_lib_exists(&dest_workspace, &Path("foo"), NoVersion);
@@ -1256,7 +1246,6 @@ fn rust_path_hack_cwd() {
 
    let dest_workspace = mk_empty_workspace(&Path("bar"), &NoVersion, "dest_workspace");
    let rust_path = Some(~[(~"RUST_PATH", dest_workspace.to_str())]);
-   debug!("declare -x RUST_PATH=%s", dest_workspace.to_str());
    command_line_test_with_env([~"install", ~"--rust-path-hack", ~"foo"], &cwd, rust_path);
    debug!("Checking that foo exists in %s", dest_workspace.to_str());
    assert_lib_exists(&dest_workspace, &Path("foo"), NoVersion);
@@ -1276,7 +1265,6 @@ fn rust_path_hack_multi_path() {
 
    let dest_workspace = mk_empty_workspace(&Path("bar"), &NoVersion, "dest_workspace");
    let rust_path = Some(~[(~"RUST_PATH", dest_workspace.to_str())]);
-   debug!("declare -x RUST_PATH=%s", dest_workspace.to_str());
    command_line_test_with_env([~"install", ~"--rust-path-hack", name.clone()], &subdir, rust_path);
    debug!("Checking that %s exists in %s", name, dest_workspace.to_str());
    assert_lib_exists(&dest_workspace, &Path("quux"), NoVersion);
@@ -1295,7 +1283,6 @@ fn rust_path_hack_install_no_arg() {
 
    let dest_workspace = mk_empty_workspace(&Path("bar"), &NoVersion, "dest_workspace");
    let rust_path = Some(~[(~"RUST_PATH", dest_workspace.to_str())]);
-   debug!("declare -x RUST_PATH=%s", dest_workspace.to_str());
    command_line_test_with_env([~"install", ~"--rust-path-hack"], &source_dir, rust_path);
    debug!("Checking that foo exists in %s", dest_workspace.to_str());
    assert_lib_exists(&dest_workspace, &Path("foo"), NoVersion);
@@ -1314,7 +1301,6 @@ fn rust_path_hack_build_no_arg() {
 
    let dest_workspace = mk_empty_workspace(&Path("bar"), &NoVersion, "dest_workspace");
    let rust_path = Some(~[(~"RUST_PATH", dest_workspace.to_str())]);
-   debug!("declare -x RUST_PATH=%s", dest_workspace.to_str());
    command_line_test_with_env([~"build", ~"--rust-path-hack"], &source_dir, rust_path);
    debug!("Checking that foo exists in %s", dest_workspace.to_str());
    assert_built_library_exists(&dest_workspace, "foo");
@@ -1336,8 +1322,6 @@ fn rust_path_install_target() {
     let rust_path = Some(~[(~"RUST_PATH", fmt!("%s:%s", dir_to_install_to.to_str(),
                                                dir.to_str()))]);
     let cwd = os::getcwd();
-
-    debug!("RUST_PATH=%s:%s", dir_to_install_to.to_str(), dir.to_str());
     command_line_test_with_env([~"install", ~"foo"],
                                &cwd,
                                rust_path);
@@ -1623,7 +1607,6 @@ fn pkgid_pointing_to_subdir() {
                use foo::f; use bar::g; \n
                fn main() { f(); g(); }");
 
-    debug!("RUST_PATH=%s", workspace.to_str());
     command_line_test([~"install", ~"testpkg"], &workspace);
     assert_executable_exists(&workspace, "testpkg");
 }