2014-06-27 21:06:50 +00:00
|
|
|
use support::{project, execs, basic_bin_manifest, COMPILING, cargo_dir};
|
2014-06-26 22:14:31 +00:00
|
|
|
use hamcrest::{assert_that, existing_file};
|
|
|
|
use cargo::util::process;
|
|
|
|
|
|
|
|
fn setup() {}
|
|
|
|
|
|
|
|
test!(cargo_test_simple {
|
|
|
|
let p = project("foo")
|
|
|
|
.file("Cargo.toml", basic_bin_manifest("foo").as_slice())
|
|
|
|
.file("src/foo.rs", r#"
|
|
|
|
fn hello() -> &'static str {
|
|
|
|
"hello"
|
|
|
|
}
|
|
|
|
|
|
|
|
pub fn main() {
|
|
|
|
println!("{}", hello())
|
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn test_hello() {
|
|
|
|
assert_eq!(hello(), "hello")
|
|
|
|
}"#);
|
|
|
|
|
|
|
|
assert_that(p.cargo_process("cargo-build"), execs());
|
|
|
|
assert_that(&p.bin("foo"), existing_file());
|
|
|
|
|
|
|
|
assert_that(
|
|
|
|
process(p.bin("foo")),
|
|
|
|
execs().with_stdout("hello\n"));
|
|
|
|
|
2014-06-27 21:06:50 +00:00
|
|
|
assert_that(p.process(cargo_dir().join("cargo-test")),
|
2014-06-26 22:14:31 +00:00
|
|
|
execs().with_stdout(format!("{} foo v0.5.0 (file:{})\n\n\
|
|
|
|
running 1 test\n\
|
|
|
|
test test_hello ... ok\n\n\
|
|
|
|
test result: ok. 1 passed; 0 failed; \
|
|
|
|
0 ignored; 0 measured\n\n",
|
|
|
|
COMPILING, p.root().display())));
|
2014-06-27 21:06:50 +00:00
|
|
|
|
2014-07-07 22:17:34 +00:00
|
|
|
assert_that(&p.bin("test/foo"), existing_file());
|
2014-06-26 22:14:31 +00:00
|
|
|
})
|
2014-07-09 20:08:44 +00:00
|
|
|
|
|
|
|
test!(test_with_lib_dep {
|
|
|
|
let p = project("foo")
|
|
|
|
.file("Cargo.toml", r#"
|
|
|
|
[project]
|
|
|
|
name = "foo"
|
|
|
|
version = "0.0.1"
|
|
|
|
authors = []
|
|
|
|
"#)
|
|
|
|
.file("src/lib.rs", "pub fn foo(){}")
|
|
|
|
.file("src/main.rs", "
|
|
|
|
extern crate foo;
|
|
|
|
fn main() {}
|
|
|
|
");
|
|
|
|
|
|
|
|
assert_that(p.cargo_process("cargo-test"), execs().with_status(0));
|
|
|
|
})
|
2014-07-09 20:55:00 +00:00
|
|
|
|
|
|
|
test!(test_with_deep_lib_dep {
|
|
|
|
let p = project("foo")
|
|
|
|
.file("Cargo.toml", r#"
|
|
|
|
[project]
|
|
|
|
name = "bar"
|
|
|
|
version = "0.0.1"
|
|
|
|
authors = []
|
|
|
|
|
|
|
|
[dependencies.foo]
|
|
|
|
path = "foo"
|
|
|
|
"#)
|
|
|
|
.file("src/lib.rs", "
|
|
|
|
extern crate foo;
|
|
|
|
pub fn bar() {}
|
|
|
|
")
|
|
|
|
.file("Cargo.toml", r#"
|
|
|
|
[project]
|
|
|
|
name = "foo"
|
|
|
|
version = "0.0.1"
|
|
|
|
authors = []
|
|
|
|
"#)
|
|
|
|
.file("src/lib.rs", "");
|
|
|
|
|
|
|
|
assert_that(p.cargo_process("cargo-test"), execs().with_status(0));
|
|
|
|
})
|