| //@ no-prefer-dynamic |
| //@ compile-flags: --test -Cpanic=abort -Zpanic_abort_tests |
| //@ run-flags: --test-threads=1 |
| //@ run-fail |
| //@ check-run-results |
| //@ exec-env:RUST_BACKTRACE=0 |
| //@ normalize-stdout-test: "finished in \d+\.\d+s" -> "finished in $$TIME" |
| |
| //@ ignore-android #120567 |
| //@ ignore-wasm no panic or subprocess support |
| //@ ignore-emscripten no panic or subprocess support |
| //@ ignore-sgx no subprocess support |
| |
| #![cfg(test)] |
| #![feature(test)] |
| |
| extern crate test; |
| |
| use std::io::Write; |
| use std::env; |
| use test::Bencher; |
| |
| #[test] |
| fn it_works() { |
| assert_eq!(1 + 1, 2); |
| } |
| |
| #[test] |
| #[should_panic] |
| fn it_panics() { |
| assert_eq!(1 + 1, 4); |
| } |
| |
| #[test] |
| fn it_fails() { |
| println!("hello, world"); |
| writeln!(std::io::stdout(), "testing123").unwrap(); |
| writeln!(std::io::stderr(), "testing321").unwrap(); |
| assert_eq!(1 + 1, 5); |
| } |
| |
| #[test] |
| fn it_exits() { |
| std::process::exit(123); |
| } |
| |
| #[test] |
| fn no_residual_environment() { |
| for (key, _) in env::vars() { |
| // Look for keys like __RUST_TEST_INVOKE. |
| if key.contains("TEST_INVOKE") { |
| panic!("shouldn't have '{}' in environment", key); |
| } |
| } |
| } |
| |
| #[bench] |
| fn benchmark(b: &mut Bencher) { |
| b.iter(|| assert_eq!(1 + 1, 2)); |
| } |