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 ./foo.rs $(SRC_DIR) 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