about summary refs log tree commit diff
path: root/tests/codegen-llvm/remap_path_prefix
diff options
context:
space:
mode:
Diffstat (limited to 'tests/codegen-llvm/remap_path_prefix')
-rw-r--r--tests/codegen-llvm/remap_path_prefix/aux_mod.rs6
-rw-r--r--tests/codegen-llvm/remap_path_prefix/auxiliary/remap_path_prefix_aux.rs8
-rw-r--r--tests/codegen-llvm/remap_path_prefix/auxiliary/xcrate-generic.rs8
-rw-r--r--tests/codegen-llvm/remap_path_prefix/issue-73167-remap-std.rs15
-rw-r--r--tests/codegen-llvm/remap_path_prefix/main.rs28
-rw-r--r--tests/codegen-llvm/remap_path_prefix/xcrate-generic.rs14
6 files changed, 79 insertions, 0 deletions
diff --git a/tests/codegen-llvm/remap_path_prefix/aux_mod.rs b/tests/codegen-llvm/remap_path_prefix/aux_mod.rs
new file mode 100644
index 00000000000..3217e9e51e7
--- /dev/null
+++ b/tests/codegen-llvm/remap_path_prefix/aux_mod.rs
@@ -0,0 +1,6 @@
+//@ ignore-auxiliary (used by `./main.rs`)
+
+#[inline]
+pub fn some_aux_mod_function() -> i32 {
+    1234
+}
diff --git a/tests/codegen-llvm/remap_path_prefix/auxiliary/remap_path_prefix_aux.rs b/tests/codegen-llvm/remap_path_prefix/auxiliary/remap_path_prefix_aux.rs
new file mode 100644
index 00000000000..7afc16ec72f
--- /dev/null
+++ b/tests/codegen-llvm/remap_path_prefix/auxiliary/remap_path_prefix_aux.rs
@@ -0,0 +1,8 @@
+//
+
+//@ compile-flags: -g  --remap-path-prefix={{cwd}}=/the/aux-cwd --remap-path-prefix={{src-base}}/remap_path_prefix/auxiliary=/the/aux-src
+
+#[inline]
+pub fn some_aux_function() -> i32 {
+    1234
+}
diff --git a/tests/codegen-llvm/remap_path_prefix/auxiliary/xcrate-generic.rs b/tests/codegen-llvm/remap_path_prefix/auxiliary/xcrate-generic.rs
new file mode 100644
index 00000000000..9d5cdfe063b
--- /dev/null
+++ b/tests/codegen-llvm/remap_path_prefix/auxiliary/xcrate-generic.rs
@@ -0,0 +1,8 @@
+//
+//@ compile-flags: -g  --remap-path-prefix={{cwd}}=/the/aux-cwd --remap-path-prefix={{src-base}}/remap_path_prefix/auxiliary=/the/aux-src
+
+#![crate_type = "lib"]
+
+pub fn foo<T: Default>() -> T {
+    T::default()
+}
diff --git a/tests/codegen-llvm/remap_path_prefix/issue-73167-remap-std.rs b/tests/codegen-llvm/remap_path_prefix/issue-73167-remap-std.rs
new file mode 100644
index 00000000000..eb610168dd3
--- /dev/null
+++ b/tests/codegen-llvm/remap_path_prefix/issue-73167-remap-std.rs
@@ -0,0 +1,15 @@
+//@ ignore-windows
+
+//@ compile-flags: -g  -C no-prepopulate-passes -Z simulate-remapped-rust-src-base=/rustc/xyz
+
+// Here we check that importing std will not cause real path to std source files
+// to leak. If rustc was compiled with remap-debuginfo = true, this should be
+// true automatically. If paths to std library hasn't been remapped, we use the
+// above simulate-remapped-rust-src-base option to do it temporarily
+
+// CHECK: !DIFile(filename: "{{/rustc/.*/library/std/src/panic.rs}}"
+fn main() {
+    std::thread::spawn(|| {
+        println!("hello");
+    });
+}
diff --git a/tests/codegen-llvm/remap_path_prefix/main.rs b/tests/codegen-llvm/remap_path_prefix/main.rs
new file mode 100644
index 00000000000..7d17b3b67cf
--- /dev/null
+++ b/tests/codegen-llvm/remap_path_prefix/main.rs
@@ -0,0 +1,28 @@
+//@ ignore-windows
+//
+
+//@ compile-flags: -g  -C no-prepopulate-passes --remap-path-prefix={{cwd}}=/the/cwd --remap-path-prefix={{src-base}}=/the/src -Zinline-mir=no
+//@ aux-build:remap_path_prefix_aux.rs
+
+extern crate remap_path_prefix_aux;
+
+// Here we check that submodules and include files are found using the path without
+// remapping. This test requires that rustc is called with an absolute path.
+mod aux_mod;
+include!("aux_mod.rs");
+
+// Here we check that the expansion of the file!() macro is mapped.
+// CHECK: @alloc_5761061597a97f66e13ef2ff92712c4b = private unnamed_addr constant [34 x i8] c"/the/src/remap_path_prefix/main.rs"
+pub static FILE_PATH: &'static str = file!();
+
+fn main() {
+    remap_path_prefix_aux::some_aux_function();
+    aux_mod::some_aux_mod_function();
+    some_aux_mod_function();
+}
+
+// Here we check that local debuginfo is mapped correctly.
+// CHECK: !DIFile(filename: "/the/src/remap_path_prefix/main.rs", directory: ""
+
+// And here that debuginfo from other crates are expanded to absolute paths.
+// CHECK: !DIFile(filename: "/the/aux-src/remap_path_prefix_aux.rs", directory: ""
diff --git a/tests/codegen-llvm/remap_path_prefix/xcrate-generic.rs b/tests/codegen-llvm/remap_path_prefix/xcrate-generic.rs
new file mode 100644
index 00000000000..db69b72d904
--- /dev/null
+++ b/tests/codegen-llvm/remap_path_prefix/xcrate-generic.rs
@@ -0,0 +1,14 @@
+//@ ignore-windows
+//@ compile-flags: -g -C metadata=foo -C no-prepopulate-passes
+//@ aux-build:xcrate-generic.rs
+
+#![crate_type = "lib"]
+
+extern crate xcrate_generic;
+
+pub fn foo() {
+    println!("{}", xcrate_generic::foo::<u32>());
+}
+
+// Here we check that local debuginfo is mapped correctly.
+// CHECK: !DIFile(filename: "/the/aux-src/xcrate-generic.rs", directory: ""