|  | // Checks the `debuginfo-compression` option. | 
|  |  | 
|  | //@ only-linux | 
|  | //@ ignore-cross-compile | 
|  |  | 
|  | // FIXME: This test isn't comprehensive and isn't covering all possible combinations. | 
|  |  | 
|  | use run_make_support::{assert_contains, llvm_readobj, run_in_tmpdir, rustc}; | 
|  |  | 
|  | fn check_compression(compression: &str, to_find: &str) { | 
|  | run_in_tmpdir(|| { | 
|  | let out = rustc() | 
|  | .crate_name("foo") | 
|  | .crate_type("lib") | 
|  | .emit("obj") | 
|  | .arg("-Cdebuginfo=full") | 
|  | .arg(&format!("-Zdebuginfo-compression={compression}")) | 
|  | .input("foo.rs") | 
|  | .run(); | 
|  | let stderr = out.stderr_utf8(); | 
|  | if stderr.is_empty() { | 
|  | llvm_readobj().arg("-t").arg("foo.o").run().assert_stdout_contains(to_find); | 
|  | } else { | 
|  | assert_contains( | 
|  | stderr, | 
|  | format!("unknown debuginfo compression algorithm {compression}"), | 
|  | ); | 
|  | } | 
|  | }); | 
|  | } | 
|  |  | 
|  | fn main() { | 
|  | check_compression("zlib", "ZLIB"); | 
|  | check_compression("zstd", "ZSTD"); | 
|  | } |