From b60de8a1f6fe343f99203036e39ec82c3c6fd1b9 Mon Sep 17 00:00:00 2001 From: Tim Chevalier Date: Fri, 8 Nov 2013 15:42:20 -0800 Subject: [PATCH] rustpkg: Add a test that `rustpkg install` doesn't copy a non-changed file This bug was already fixed, just needed a test. Closes #9569 --- src/librustpkg/tests.rs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/librustpkg/tests.rs b/src/librustpkg/tests.rs index b45e4ff1755f4..4460d1701b54a 100644 --- a/src/librustpkg/tests.rs +++ b/src/librustpkg/tests.rs @@ -1096,6 +1096,24 @@ fn no_rebuilding() { } } +#[test] +fn no_recopying() { + let p_id = PkgId::new("foo"); + let workspace = create_local_package(&p_id); + let workspace = workspace.path(); + command_line_test([~"install", ~"foo"], workspace); + let foo_lib = installed_library_in_workspace(&p_id.path, workspace); + assert!(foo_lib.is_some()); + // Now make `foo` read-only so that subsequent attempts to copy to it will fail + assert!(chmod_read_only(&foo_lib.unwrap())); + + match command_line_test_partial([~"install", ~"foo"], workspace) { + Success(*) => (), // ok + Fail(65) => fail!("no_recopying failed: it tried to re-copy foo"), + Fail(_) => fail!("no_copying failed for some other reason") + } +} + #[test] fn no_rebuilding_dep() { let p_id = PkgId::new("foo");