diff --git a/tests/run-make/emit-notify/lib.rs b/tests/run-make/emit-notify/lib.rs new file mode 100644 index 0000000000000..6c8ffeab6e924 --- /dev/null +++ b/tests/run-make/emit-notify/lib.rs @@ -0,0 +1,23 @@ +//@ compile-flags: -C codegen-units=1 --emit asm,llvm-ir,llvm-bc,obj --json=artifacts --error-format=json + +fn one() -> usize { + 1 +} + +pub mod a { + pub fn two() -> usize { + ::one() + ::one() + } +} + +pub mod b { + pub fn three() -> usize { + ::one() + ::a::two() + } +} + +#[inline(never)] +pub fn main() { + a::two(); + b::three(); +} diff --git a/tests/run-make/emit-notify/rmake.rs b/tests/run-make/emit-notify/rmake.rs new file mode 100644 index 0000000000000..973662cce5412 --- /dev/null +++ b/tests/run-make/emit-notify/rmake.rs @@ -0,0 +1,37 @@ +extern crate run_make_support; + +use run_make_support::{rustc, tmp_dir, ErrorFormat}; + +fn main() { + let inc_dir = tmp_dir(); + + for _ in 0..=1 { + let output = rustc() + .input("lib.rs") + .emit("obj,asm,llvm-ir,llvm-bc,mir") + .codegen_units(1) + .json("artifacts") + .error_format(ErrorFormat::Json) + .incremental(&inc_dir) + .run(); + let stderr = String::from_utf8_lossy(&output.stderr); + for file in &["lib.o", "lib.ll", "lib.bc", "lib.s"] { + assert!(stderr.contains(file), "No {:?} in {:?}", file, stderr); + } + } + + for _ in 0..=1 { + let output = rustc() + .input("lib.rs") + .emit("obj,asm,llvm-ir,llvm-bc,mir") + .codegen_units(2) + .json("artifacts") + .error_format(ErrorFormat::Json) + .incremental(&inc_dir) + .run(); + let stderr = String::from_utf8_lossy(&output.stderr); + for file in &["rcgu.o", "rcgu.ll", "rcgu.bc", "rcgu.s"] { + assert!(stderr.contains(file), "No {:?} in {:?}", file, stderr); + } + } +}