| // 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!("unsupported debuginfo compression algorithm {compression}"), | |
| ); | |
| } | |
| }); | |
| } | |
| fn main() { | |
| check_compression("zlib", "ZLIB"); | |
| check_compression("zstd", "ZSTD"); | |
| } |