about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMichael Woerister <michaelwoerister@posteo>2023-05-17 10:45:57 +0200
committerMichael Woerister <michaelwoerister@posteo>2023-05-17 11:39:11 +0200
commitcfca5b0b8772a807e5b12577b30198515d6264bc (patch)
treeeb6e4a6f51dac3365cc1330211f7dbb9b42871df
parentd6236685516420bbc70399fcfc74f3b7e46e8349 (diff)
downloadrust-cfca5b0b8772a807e5b12577b30198515d6264bc.tar.gz
rust-cfca5b0b8772a807e5b12577b30198515d6264bc.zip
Add/improve tests for debugger_visualizer change detection.
-rw-r--r--tests/run-make/debugger-visualizer-dep-info/Makefile7
-rw-r--r--tests/run-make/debugger-visualizer-dep-info/main.rs2
-rw-r--r--tests/run-make/debugger-visualizer-dep-info/my_visualizers/bar.natvis1
-rw-r--r--tests/run-make/debugger-visualizer-dep-info/my_visualizers/bar.py1
-rw-r--r--tests/run-make/incremental-debugger-visualizer/Makefile51
-rw-r--r--tests/run-make/incremental-debugger-visualizer/foo.rs6
6 files changed, 63 insertions, 5 deletions
diff --git a/tests/run-make/debugger-visualizer-dep-info/Makefile b/tests/run-make/debugger-visualizer-dep-info/Makefile
index 0a2493144ea..0877998a74f 100644
--- a/tests/run-make/debugger-visualizer-dep-info/Makefile
+++ b/tests/run-make/debugger-visualizer-dep-info/Makefile
@@ -1,8 +1,9 @@
-# ignore-windows-gnu
-
 include ../tools.mk
 
+# This test makes sure that files referenced via #[debugger_visualizer] are
+# included in `--emit dep-info` output.
+
 all:
 	$(RUSTC) --emit dep-info main.rs
 	$(CGREP) "foo.py" < $(TMPDIR)/main.d
-	$(CGREP) "my_visualizers/bar.py" < $(TMPDIR)/main.d
+	$(CGREP) "my_visualizers/bar.natvis" < $(TMPDIR)/main.d
diff --git a/tests/run-make/debugger-visualizer-dep-info/main.rs b/tests/run-make/debugger-visualizer-dep-info/main.rs
index 6caf2afe9a5..3aede2215ea 100644
--- a/tests/run-make/debugger-visualizer-dep-info/main.rs
+++ b/tests/run-make/debugger-visualizer-dep-info/main.rs
@@ -3,7 +3,7 @@
 fn main() {
     const _UNUSED: u32 = {
         mod inner {
-            #![debugger_visualizer(gdb_script_file = "my_visualizers/bar.py")]
+            #![debugger_visualizer(natvis_file = "my_visualizers/bar.natvis")]
             pub const XYZ: u32 = 123;
         }
 
diff --git a/tests/run-make/debugger-visualizer-dep-info/my_visualizers/bar.natvis b/tests/run-make/debugger-visualizer-dep-info/my_visualizers/bar.natvis
new file mode 100644
index 00000000000..c341a403902
--- /dev/null
+++ b/tests/run-make/debugger-visualizer-dep-info/my_visualizers/bar.natvis
@@ -0,0 +1 @@
+<!-- empty -->
diff --git a/tests/run-make/debugger-visualizer-dep-info/my_visualizers/bar.py b/tests/run-make/debugger-visualizer-dep-info/my_visualizers/bar.py
deleted file mode 100644
index 1bb8bf6d7fd..00000000000
--- a/tests/run-make/debugger-visualizer-dep-info/my_visualizers/bar.py
+++ /dev/null
@@ -1 +0,0 @@
-# empty
diff --git a/tests/run-make/incremental-debugger-visualizer/Makefile b/tests/run-make/incremental-debugger-visualizer/Makefile
new file mode 100644
index 00000000000..3084dde7e99
--- /dev/null
+++ b/tests/run-make/incremental-debugger-visualizer/Makefile
@@ -0,0 +1,51 @@
+include ../tools.mk
+
+# This test makes sure that changes to files referenced via #[debugger_visualizer]
+# are picked up when compiling incrementally.
+
+# We have to copy the source to $(TMPDIR) because Github CI mounts the source
+# directory as readonly. We need to apply modifications to some of the source
+# file.
+SRC_DIR := $(TMPDIR)/src
+
+INCR_CACHE_DIR := $(TMPDIR)/incremental
+
+
+all:
+	rm -rf $(TMPDIR)/*
+	mkdir $(SRC_DIR)
+	cp -t $(SRC_DIR) ./foo.rs
+	echo "GDB script v1" > $(SRC_DIR)/foo.py
+	echo "Natvis v1" > $(SRC_DIR)/foo.natvis
+	$(RUSTC) $(SRC_DIR)/foo.rs \
+	  --crate-type=rlib \
+	  --emit metadata \
+	  -C incremental=$(INCR_CACHE_DIR) \
+	  -Z incremental-verify-ich
+	$(CGREP) "GDB script v1" < $(TMPDIR)/libfoo.rmeta
+	$(CGREP) "Natvis v1" < $(TMPDIR)/libfoo.rmeta
+
+	# Change only the GDB script and check that the change has been picked up
+	echo "GDB script v2" > $(SRC_DIR)/foo.py
+	$(RUSTC) $(SRC_DIR)/foo.rs \
+	  --crate-type=rlib \
+	  --emit metadata \
+	  -C incremental=$(INCR_CACHE_DIR) \
+	  -Z incremental-verify-ich
+
+	$(CGREP) "GDB script v2" < $(TMPDIR)/libfoo.rmeta
+	$(CGREP) -v "GDB script v1" < $(TMPDIR)/libfoo.rmeta
+	$(CGREP) "Natvis v1" < $(TMPDIR)/libfoo.rmeta
+
+	# Now change the Natvis version and check that the change has been picked up
+	echo "Natvis v2" > $(SRC_DIR)/foo.natvis
+	$(RUSTC) $(SRC_DIR)/foo.rs \
+	  --crate-type=rlib \
+	  --emit metadata \
+	  -C incremental=$(INCR_CACHE_DIR) \
+	  -Z incremental-verify-ich
+
+	$(CGREP) "GDB script v2" < $(TMPDIR)/libfoo.rmeta
+	$(CGREP) -v "GDB script v1" < $(TMPDIR)/libfoo.rmeta
+	$(CGREP) "Natvis v2" < $(TMPDIR)/libfoo.rmeta
+	$(CGREP) -v "Natvis v1" < $(TMPDIR)/libfoo.rmeta
diff --git a/tests/run-make/incremental-debugger-visualizer/foo.rs b/tests/run-make/incremental-debugger-visualizer/foo.rs
new file mode 100644
index 00000000000..8daa36a12d3
--- /dev/null
+++ b/tests/run-make/incremental-debugger-visualizer/foo.rs
@@ -0,0 +1,6 @@
+#![debugger_visualizer(natvis_file = "./foo.natvis")]
+#![debugger_visualizer(gdb_script_file = "./foo.py")]
+
+pub struct Foo {
+    pub x: u32,
+}