Skip to content

Commit 9bcc083

Browse files
committed
run-make-fulldeps: fix split debuginfo test
Add lots of comments to this test and enable parts of the test that were added but never ran. Signed-off-by: David Wood <[email protected]>
1 parent 391ba78 commit 9bcc083

File tree

1 file changed

+145
-15
lines changed
  • src/test/run-make-fulldeps/split-debuginfo

1 file changed

+145
-15
lines changed

src/test/run-make-fulldeps/split-debuginfo/Makefile

+145-15
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ include ../tools.mk
33
all: off packed unpacked
44

55
ifeq ($(UNAME),Darwin)
6-
# If disabled, don't run dsymutil
6+
# If disabled, don't run `dsymutil`.
77
off:
88
rm -rf $(TMPDIR)/*.dSYM
99
$(RUSTC) foo.rs -g -C split-debuginfo=off
@@ -29,98 +29,228 @@ unpacked:
2929
[ ! -d $(TMPDIR)/foo.dSYM ]
3030
else
3131
ifdef IS_WINDOWS
32-
# Windows only supports =packed
32+
# Windows only supports packed debuginfo - nothing to test.
3333
off:
3434
packed:
3535
unpacked:
3636
else
37+
# Some non-Windows, non-Darwin platforms are not stable, and some are.
3738
ifeq ($(UNAME),Linux)
3839
UNSTABLEOPTS :=
3940
else
4041
UNSTABLEOPTS := -Zunstable-options
4142
endif
4243

44+
# - Debuginfo in `.o` files
45+
# - `.o` deleted
46+
# - `.dwo` never created
47+
# - `.dwp` never created
4348
off:
4449
$(RUSTC) foo.rs -g -C $(UNSTABLEOPTS) split-debuginfo=off
4550
[ ! -f $(TMPDIR)/*.dwp ]
4651
[ ! -f $(TMPDIR)/*.dwo ]
47-
4852
$(RUSTC) foo.rs -g
4953
[ ! -f $(TMPDIR)/*.dwp ]
5054
[ ! -f $(TMPDIR)/*.dwo ]
5155

52-
packed: packed-split packed-single
56+
packed: packed-split packed-single packed-remapped packed-crosscrate
5357

58+
# - Debuginfo in `.dwo` files
59+
# - `.o` deleted
60+
# - `.dwo` deleted
61+
# - `.dwp` present
5462
packed-split:
5563
$(RUSTC) foo.rs -g $(UNSTABLEOPTS) -C split-debuginfo=packed -Zsplit-dwarf-kind=split
56-
ls $(TMPDIR)/*.dwp
57-
rm -rf $(TMPDIR)/*.dwp $(TMPDIR)/*.dwo
64+
ls $(TMPDIR)/*.o && exit 1 || exit 0
65+
ls $(TMPDIR)/*.dwo && exit 1 || exit 0
66+
rm $(TMPDIR)/foo.dwp
67+
rm $(TMPDIR)/$(call BIN,foo)
5868

69+
# - Debuginfo in `.o` files
70+
# - `.o` deleted
71+
# - `.dwo` never created
72+
# - `.dwp` present
5973
packed-single:
6074
$(RUSTC) foo.rs -g $(UNSTABLEOPTS) -C split-debuginfo=packed -Zsplit-dwarf-kind=single
61-
ls $(TMPDIR)/*.dwp
75+
ls $(TMPDIR)/*.o && exit 1 || exit 0
6276
ls $(TMPDIR)/*.dwo && exit 1 || exit 0
63-
rm -rf $(TMPDIR)/*.dwp
77+
rm $(TMPDIR)/foo.dwp
78+
rm $(TMPDIR)/$(call BIN,foo)
6479

6580
packed-remapped: packed-remapped-split packed-remapped-single
6681

82+
# - Debuginfo in `.dwo` files
83+
# - `.o` and binary refer to remapped `.dwo` paths which do not exist
84+
# - `.o` deleted
85+
# - `.dwo` deleted
86+
# - `.dwp` present
6787
packed-remapped-split:
6888
$(RUSTC) $(UNSTABLEOPTS) -C split-debuginfo=packed -C debuginfo=2 \
6989
-Z split-dwarf-kind=split --remap-path-prefix $(TMPDIR)=/a foo.rs -g
7090
objdump -Wi $(TMPDIR)/foo | grep DW_AT_GNU_dwo_name | (! grep $(TMPDIR)) || exit 1
91+
ls $(TMPDIR)/*.o && exit 1 || exit 0
92+
ls $(TMPDIR)/*.dwo && exit 1 || exit 0
93+
rm $(TMPDIR)/foo.dwp
94+
rm $(TMPDIR)/$(call BIN,foo)
7195

96+
# - Debuginfo in `.o` files
97+
# - `.o` and binary refer to remapped `.o` paths which do not exist
98+
# - `.o` deleted
99+
# - `.dwo` never created
100+
# - `.dwp` present
72101
packed-remapped-single:
73102
$(RUSTC) $(UNSTABLEOPTS) -C split-debuginfo=packed -C debuginfo=2 \
74103
-Z split-dwarf-kind=single --remap-path-prefix $(TMPDIR)=/a foo.rs -g
75104
objdump -Wi $(TMPDIR)/foo | grep DW_AT_GNU_dwo_name | (! grep $(TMPDIR)) || exit 1
105+
ls $(TMPDIR)/*.o && exit 1 || exit 0
106+
ls $(TMPDIR)/*.dwo && exit 1 || exit 0
107+
rm $(TMPDIR)/foo.dwp
108+
rm $(TMPDIR)/$(call BIN,foo)
76109

77110
packed-crosscrate: packed-crosscrate-split packed-crosscrate-single
78111

112+
# - Debuginfo in `.dwo` files
113+
# - (bar) `.rlib` file created, contains `.dwo`
114+
# - (bar) `.o` deleted
115+
# - (bar) `.dwo` deleted
116+
# - (bar) `.dwp` never created
117+
# - (main) `.o` deleted
118+
# - (main) `.dwo` deleted
119+
# - (main) `.dwp` present
79120
packed-crosscrate-split:
80121
$(RUSTC) --crate-type lib $(UNSTABLEOPTS) -C split-debuginfo=packed \
81122
-Zsplit-dwarf-kind=split -C debuginfo=2 -g bar.rs
82123
ls $(TMPDIR)/*.rlib
124+
ls $(TMPDIR)/*.o && exit 1 || exit 0
83125
ls $(TMPDIR)/*.dwo && exit 1 || exit 0
84126
ls $(TMPDIR)/*.dwp && exit 1 || exit 0
85-
$(RUSTC) --extern bar=$(TMPDIR)/libbar.rlib -Z unstable-options $(UNSTABLEOPTS) \
127+
$(RUSTC) --extern bar=$(TMPDIR)/libbar.rlib $(UNSTABLEOPTS) \
86128
-C split-debuginfo=packed -Zsplit-dwarf-kind=split -C debuginfo=2 -g main.rs
87-
rm $(TMPDIR)/*.dwo
129+
ls $(TMPDIR)/*.o && exit 1 || exit 0
130+
ls $(TMPDIR)/*.dwo && exit 1 || exit 0
88131
rm $(TMPDIR)/main.dwp
89132
rm $(TMPDIR)/$(call BIN,main)
90133

134+
# - Debuginfo in `.o` files
135+
# - (bar) `.rlib` file created, contains `.o`
136+
# - (bar) `.o` deleted
137+
# - (bar) `.dwo` never created
138+
# - (bar) `.dwp` never created
139+
# - (main) `.o` deleted
140+
# - (main) `.dwo` never created
141+
# - (main) `.dwp` present
91142
packed-crosscrate-single:
92143
$(RUSTC) --crate-type lib $(UNSTABLEOPTS) -C split-debuginfo=packed \
93144
-Zsplit-dwarf-kind=single -C debuginfo=2 -g bar.rs
94145
ls $(TMPDIR)/*.rlib
146+
ls $(TMPDIR)/*.o && exit 1 || exit 0
95147
ls $(TMPDIR)/*.dwo && exit 1 || exit 0
96148
ls $(TMPDIR)/*.dwp && exit 1 || exit 0
97-
$(RUSTC) --extern bar=$(TMPDIR)/libbar.rlib -Z unstable-options $(UNSTABLEOPTS) \
149+
$(RUSTC) --extern bar=$(TMPDIR)/libbar.rlib $(UNSTABLEOPTS) \
98150
-C split-debuginfo=packed -Zsplit-dwarf-kind=single -C debuginfo=2 -g main.rs
151+
ls $(TMPDIR)/*.o && exit 1 || exit 0
99152
ls $(TMPDIR)/*.dwo && exit 1 || exit 0
100153
rm $(TMPDIR)/main.dwp
101154
rm $(TMPDIR)/$(call BIN,main)
102155

103-
unpacked: unpacked-split unpacked-single unpacked-remapped-split unpacked-remapped-single
156+
unpacked: unpacked-split unpacked-single unpacked-remapped unpacked-crosscrate
104157

158+
# - Debuginfo in `.dwo` files
159+
# - `.o` deleted
160+
# - `.dwo` present
161+
# - `.dwp` never created
105162
unpacked-split:
106163
$(RUSTC) foo.rs -g $(UNSTABLEOPTS) -C split-debuginfo=unpacked -Zsplit-dwarf-kind=split
164+
ls $(TMPDIR)/*.o && exit 1 || exit 0
165+
rm $(TMPDIR)/*.dwo
107166
ls $(TMPDIR)/*.dwp && exit 1 || exit 0
108-
ls $(TMPDIR)/*.dwo
109-
rm -rf $(TMPDIR)/*.dwp $(TMPDIR)/*.dwo
167+
rm $(TMPDIR)/$(call BIN,foo)
110168

169+
# - Debuginfo in `.o` files
170+
# - `.o` present
171+
# - `.dwo` never created
172+
# - `.dwp` never created
111173
unpacked-single:
112174
$(RUSTC) foo.rs -g $(UNSTABLEOPTS) -C split-debuginfo=unpacked -Zsplit-dwarf-kind=single
113-
ls $(TMPDIR)/*.dwp && exit 1 || exit 0
175+
ls $(TMPDIR)/*.o
114176
ls $(TMPDIR)/*.dwo && exit 1 || exit 0
177+
ls $(TMPDIR)/*.dwp && exit 1 || exit 0
178+
rm $(TMPDIR)/$(call BIN,foo)
179+
180+
unpacked-remapped: unpacked-remapped-split unpacked-remapped-single
115181

182+
# - Debuginfo in `.dwo` files
183+
# - `.o` and binary refer to remapped `.dwo` paths which do not exist
184+
# - `.o` deleted
185+
# - `.dwo` present
186+
# - `.dwp` never created
116187
unpacked-remapped-split:
117188
$(RUSTC) $(UNSTABLEOPTS) -C split-debuginfo=unpacked -C debuginfo=2 \
118189
-Z split-dwarf-kind=split --remap-path-prefix $(TMPDIR)=/a foo.rs -g
119190
objdump -Wi $(TMPDIR)/foo | grep DW_AT_GNU_dwo_name | (! grep $(TMPDIR)) || exit 1
191+
ls $(TMPDIR)/*.o && exit 1 || exit 0
192+
rm $(TMPDIR)/*.dwo
193+
ls $(TMPDIR)/*.dwp && exit 1 || exit 0
194+
rm $(TMPDIR)/$(call BIN,foo)
120195

196+
# - Debuginfo in `.o` files
197+
# - `.o` and binary refer to remapped `.o` paths which do not exist
198+
# - `.o` present
199+
# - `.dwo` never created
200+
# - `.dwp` never created
121201
unpacked-remapped-single:
122202
$(RUSTC) $(UNSTABLEOPTS) -C split-debuginfo=unpacked -C debuginfo=2 \
123203
-Z split-dwarf-kind=single --remap-path-prefix $(TMPDIR)=/a foo.rs -g
124204
objdump -Wi $(TMPDIR)/foo | grep DW_AT_GNU_dwo_name | (! grep $(TMPDIR)) || exit 1
205+
ls $(TMPDIR)/*.o
206+
ls $(TMPDIR)/*.dwo && exit 1 || exit 0
207+
ls $(TMPDIR)/*.dwp && exit 1 || exit 0
208+
rm $(TMPDIR)/$(call BIN,foo)
209+
210+
unpacked-crosscrate: packed-crosscrate-split packed-crosscrate-single
211+
212+
# - Debuginfo in `.dwo` files
213+
# - (bar) `.rlib` file created, contains `.dwo`
214+
# - (bar) `.o` deleted
215+
# - (bar) `.dwo` present
216+
# - (bar) `.dwp` never created
217+
# - (main) `.o` deleted
218+
# - (main) `.dwo` present
219+
# - (main) `.dwp` never created
220+
unpacked-crosscrate-split:
221+
$(RUSTC) --crate-type lib $(UNSTABLEOPTS) -C split-debuginfo=unpacked \
222+
-Zsplit-dwarf-kind=split -C debuginfo=2 -g bar.rs
223+
ls $(TMPDIR)/*.rlib
224+
ls $(TMPDIR)/*.o && exit 1 || exit 0
225+
ls $(TMPDIR)/*.dwo
226+
ls $(TMPDIR)/*.dwp && exit 1 || exit 0
227+
$(RUSTC) --extern bar=$(TMPDIR)/libbar.rlib $(UNSTABLEOPTS) \
228+
-C split-debuginfo=unpacked -Zsplit-dwarf-kind=split -C debuginfo=2 -g main.rs
229+
ls $(TMPDIR)/*.o && exit 1 || exit 0
230+
rm $(TMPDIR)/*.dwo
231+
ls $(TMPDIR)/*.dwp && exit 1 || exit 0
232+
rm $(TMPDIR)/$(call BIN,main)
233+
234+
# - Debuginfo in `.o` files
235+
# - (bar) `.rlib` file created, contains `.o`
236+
# - (bar) `.o` present
237+
# - (bar) `.dwo` never created
238+
# - (bar) `.dwp` never created
239+
# - (main) `.o` present
240+
# - (main) `.dwo` never created
241+
# - (main) `.dwp` never created
242+
unpacked-crosscrate-single:
243+
$(RUSTC) --crate-type lib $(UNSTABLEOPTS) -C split-debuginfo=unpacked \
244+
-Zsplit-dwarf-kind=single -C debuginfo=2 -g bar.rs
245+
ls $(TMPDIR)/*.rlib
246+
ls $(TMPDIR)/*.o
247+
ls $(TMPDIR)/*.dwo && exit 1 || exit 0
248+
ls $(TMPDIR)/*.dwp && exit 1 || exit 0
249+
$(RUSTC) --extern bar=$(TMPDIR)/libbar.rlib $(UNSTABLEOPTS) \
250+
-C split-debuginfo=unpacked -Zsplit-dwarf-kind=single -C debuginfo=2 -g main.rs
251+
ls $(TMPDIR)/*.o
252+
ls $(TMPDIR)/*.dwo && exit 1 || exit 0
253+
ls $(TMPDIR)/*.dwp && exit 1 || exit 0
254+
rm $(TMPDIR)/$(call BIN,main)
125255
endif
126256
endif

0 commit comments

Comments
 (0)