mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-23 15:23:46 +00:00
37 lines
1.1 KiB
Rust
37 lines
1.1 KiB
Rust
// 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, cmd, 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() {
|
|
// FIXME: `readelf` might need to be replaced with `llvm-readelf`.
|
|
cmd("readelf").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");
|
|
}
|