From c94a97a2a9d75d224bd2c31e9a33c90ec6e05444 Mon Sep 17 00:00:00 2001 From: Aaron Merey Date: Thu, 29 Feb 2024 19:46:09 -0500 Subject: [PATCH] tests/run-getsrc-die.sh: Avoid using objcopy run-getsrc-die.sh uses objcopy to remove .debug_aranges from some testfiles. However depending how objcopy is built, it may fail to recognize the format of these testfiles. Avoid using objcopy and instead add versions of the testfiles to the testsuite with .debug_aranges already stripped. Signed-off-by: Aaron Merey --- tests/run-getsrc-die.sh | 11 ++++------- tests/testfile-inlines-no-aranges.bz2 | Bin 0 -> 2673 bytes tests/testfile-lex-inlines-no-aranges.bz2 | Bin 0 -> 2486 bytes tests/testfile-no-aranges.bz2 | Bin 0 -> 7918 bytes 4 files changed, 4 insertions(+), 7 deletions(-) create mode 100644 tests/testfile-inlines-no-aranges.bz2 create mode 100644 tests/testfile-lex-inlines-no-aranges.bz2 create mode 100644 tests/testfile-no-aranges.bz2 diff --git a/tests/run-getsrc-die.sh b/tests/run-getsrc-die.sh index 54c7ad8c..40f62480 100755 --- a/tests/run-getsrc-die.sh +++ b/tests/run-getsrc-die.sh @@ -21,21 +21,18 @@ # Output/files/lines matched should equal what is done through addr2line # which uses dwfl_module_getsrc. This test uses dwarf_addrdie and # dwarf_getsrc_die -testfiles testfile testfile-inlines testfile-lex-inlines -tempfiles testfile-no-aranges testfile-inlines-no-aranges +testfiles testfile testfile-inlines testfile-no-aranges +testfiles testfile-lex-inlines testfile-inlines-no-aranges tempfiles testfile-lex-inlines-no-aranges good.out getsrc_die.out -# Each test should also pass with no .debug_aranges present. -objcopy --remove-section .debug_aranges testfile testfile-no-aranges -objcopy --remove-section .debug_aranges testfile-inlines testfile-inlines-no-aranges -objcopy --remove-section .debug_aranges testfile-lex-inlines testfile-lex-inlines-no-aranges - cat > good.out <<\EOF /home/drepper/gnu/new-bu/build/ttt/f.c:3 /home/drepper/gnu/new-bu/build/ttt/b.c:4 EOF cat good.out | testrun_compare ${abs_top_builddir}/tests/getsrc_die testfile 0x08048468 0x0804845c + +# Each test should also pass with no .debug_aranges present. cat good.out | testrun_compare ${abs_top_builddir}/tests/getsrc_die testfile-no-aranges 0x08048468 0x0804845c cat > good.out <<\EOF diff --git a/tests/testfile-inlines-no-aranges.bz2 b/tests/testfile-inlines-no-aranges.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..ab66b17e25c376bc80bf80aa753aea48c9074aed GIT binary patch literal 2673 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 AP5=M^ literal 0 Hc-jL100001 diff --git a/tests/testfile-no-aranges.bz2 b/tests/testfile-no-aranges.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..a01db39ccbe93126fe95ae189aa0ca6be57fe582 GIT binary patch literal 7918 zc-jH(9ueU}T4*^jL0KkKS+pX-V*n&2fB*mg|NsC0|NsC0|NsC0|NH;{@Bjb*-`@ZH z{_lVPe|_K}k2~D$@4Rb$<^k=ZR*fXtytdNXdS&*`un(u!``-2k-3tNp8l@rtYZssg zT=b@@4FDMc1qu`@fG7vw2fn@Cb&zSKK$<25(@j&_H5!?wAx|2n$nt7!4NW$UDdDN; zN&1>-^$jP0Q_?r2%6UzSZBI>48l&2f)7qI&O-(kD;%Yxs^*v8e)6~<{4=D8>qfM#m zHc{ysXnLNf>YLM48VEqqPeH1BDeR~{PgB(O9-2S~kIJ5>l4!(fw16}K0iYQg4GkI% z9-wFjfB*sNG-Ln(01W^Eqd+tPs(yfq3VNA9)6^cOKmZy50MG%T2dD;t>KXt5XaE2j z02%-TKmZ1TkN^Mx000tcB!o=~vY47_C+ZrWQRtgf#TsUWHl~0*Km*iipawyvO*8{f zQJ@+C9-slC>HyFH27#ar0iXZ?00v1^{ZmX&YEMz8q-YvFMnC|1fB3001-q0009`0U|*H00aOKO%rN*Bh+b;lSE)mGyu_| zrY1(1nq<+YfuI8>ng9laOol)J0002c4FJ#vfH1@zVt@{7$8I-b7_OoSHK+!rE<2dL zfm|{f$q+*d1bsX^iddXQ;&R~$GTr71En5b#I?b=rU8DZpIKEbwe zjnpu6V8qDRTo51%NZu+Tyy5+2dn6xqbgDz~4~!j0$o zFAvpuf5GjzZy$?&3US4`&3_LOPUc!n`*od6zbDRmlP7Q&YEx8h$)J@&sa2t}byDXd z4-llIyeI-c((QFWH}-#7sM`I$2Z6@q$`;%#)%?s=D$i92D+&w%K_%nG08Z%&$VdmF zo_`SRS-`NOiKqf)Zu?s(SdjFGXbAAxTWl(Sl`gpbFU|NIo|k98zPg+wK5>K&NB2JZ zfChrB7&i~Hq4_6F)&U-S5JN=Z#xj!9U>21 zIOpQkM@k-pJR^mOHZVk#PtQi7CzmT=5w33Q-Kp`lk>7<~1&kA1eSy#%->@(egEj62 z^m1W)Qr;EKuHZ$KgSjX{BOy-hJO6!}OCjs2aoR$(DBopgJm^7C0I)q3+qnh&*V$qj zMk8b9h&Gv=wJ^bD_Oz$h3>cISKFHiD}EC+f5oL!BmhsES`lSf_ukPoy8YnKSqN9PM<~86(L#du6t_E&Dmk>NKPC8cM4r8H?cmjgU3GBnWWG}9TFYXO2P@+{tU{nkm@&yp zR=u;)O_u7(mp!`c^E)$HO4ZHpP9)O$``|2P9`=GJ&%kLBd;r<0-t;t%;0H#Rw0T$- zvM|rP4cj+coM<=N!GrbA41U=u&n>hKwC5V4F>A4h!?E{N;d4?s#Zs#D0+>@95t*A? z+dZOn;aI%)b9()Wvsu`^D_eS**B-hm_cI1923-C@>kaEQxS1(R$2g+g!(y_wZK5%< z{g5pphR9Kmi{j)l=cVmSnJj|IINk3nCM1gpbZ0F3?Ayl``a3=y`#;6FW!6>vWaWGA zZ-dD=G7=pmhcV(=F$tlQsm{zKkVKPk{yLC*b?!R-3}=_=sy_v!UcoGFAt(>Wf&r}z z$s^_1BigXi#BlQ1lI*mR3=!LYhLChM!)k_%iv)(Z-s`%Z>UC2=(tK7!?3vF%2ad>7 z7D;J;4|cyjBRyg)*%mUcu}MQMZ6RL8?AmORf&%#vh=I7?w}%u@2%V~-gLUi-g-=Nw zYrNzjIibQKHDW9-!b=~Gf{)`p`xNGF@8arGQk1kE>x5A**#7QG6m>Q-7Xh^DR^1q4 zzW^t_R3=TF6(quT8 z5Z0{TBs|9oc~|HW5^}Z4=pdh*d8C(%l7lRHbmif&F*LN`VU8HXgMWt?H2dy2IxVd2 z>vwYNVbNLsH><8DXr$C6Vu(W4-xNb*J#(P?Neej>s+v}%^ku!ps}L9-TdR5VQ`>yk zlrni9E#?vR#ufI4RYYA_RUTfyVC*c>zm{IEzGq~jYF5Ix+VM}d$+FA5Z{$b|FL4mr z5XD%861SpUttk6gD>z6q;grXHj=H4Bw_Ic5vi20A4zpFUYiUsjjDWTq>L6q0N4$io z0~Q1lb+f_&nHh_@T%|`QVYtlpE%y~!AtyzJ5Dp$r;I7Q5Biy~)nrrNIE8tUx6hm)b zz0SR>JZ|E^+kH1ACNvF*z4=Cp-wMwF3>C8lwf8MAd#uyf@4d9a$B?D&8{J<2;o4Jh zWWb0aprH_e2%*zaj&I|=tia8CP3PqqlEjlbpo04qg|IcTJ(%@x!7KSL;+3;@8NK(n z_r2cCGJlJ^9u8~hZaZ847mthD@Ckc1yB`JGOViDEUoT1MBfLDRZBTY!GGKTuDYYf# zr3)F5STc5L^Ii?}Og&5I(|;x7iO^x)MtB72R15-*^|L&7fFGEtme_Y$+Gzd9k!?d+ z3TaI?SCr3xP@?33?ESJwxA-^%(=i*(FHpi07iZV+;XW70*S%wj-aR!5I9hfQ3tT=GqtLTCL*FT$DoK6`!+Rz zD{kLW6BREr@K5(2+3Bv#C7s~F@qxFgGyCrnesA< z9w*axo~xn$ANl5W&#$Ea6&*inqe%yE%av`Q4hdpe*T*FTCg?CCcsR@4i_efEQBZ@I zW(UO-JoIxQ{a&tFrFDggo$HekeL-NY9fNFvr)`Wb39XH^b4cQD1XF(VKxMEXKx}EH z96QL7Bq>5mIwaJJ+6YLtQG*d-5rNz=DHDL^X&Eb+Fsm|A=4QJkmj`X5yX?-Q}V_43U!%0`|8|7h(o9I zW*t3p&GnCi^qZJmhCu=$ArKZJPzqwPHq-#xP>>pd04R-AP=YC=sQo1+V>Y`!d>-~& z|6S52d^sZ$T6?F!)Prt(|X_uqv^AUVF&=o{?N~LG1jfx0~ffX!ME1_#V-j_~hpKjvV%nOSfl3(I(C``5f190DXyyvXXl+{)T zgw=gJ3U-vx#YSXeoK+M67(xY4O5UdeyHDNyTgYMn_yh<{Wl%DV4;?CC*bAlYaoxDx z==w<*3B(Gb1rkU>Z3fZy=gu$9vee{MF?GCpZL&mzP1#wH(rJ}PoN^{V%E!lty?4K* zrj$r1zM0G#$B@iHdVmULOFr%Anouer0wD-FK?ydZfjUl4kJsjHxA=mZ1)1 z0R+GS11Z&$meKS_!Pew(`={Xq^(u3i=PKQ(&-ayZ*3iXfGWQjH>pn(8x5%#ROv3zy zIOhjk#s*v7yeJv~r-)E##u+5i-Kwy8A&fJ5_*MF?Od}{jw2)K=kt7sPihXn2_b*~O z)ocEMXdX~6InbM1&bP`KTE#)EKcNms3 z^_vHCzUF@a>YxR33c*mJPXj(MRGNGL=lj{wVg9`nMA|3d;zaB3Rx%}uOGymHlbCPM zvw7*SyJd}4>9<}$^2`4liK!@y(dOj;=DU5ShBfu0@u{QB1qc!nbVddu6i_+W{J+t- z?YT|w+Cdu9J3Z+(#BwnD561mSGJD<4pRA9Gt$osuzKEQUaS+ z@(Tbi-Bsc=m~-9_s0JyYvdj(yXD^6@MW&9u%{OOZLfO+Ow1J)7!)kkwt{Kd%Q4Wi8D^f5< z?uHn|7;a0dSTHJWg_9zN?7>yE!Z?bqtyeW`=p+t8ay{Rk3CejdO|R6~oi0;r==R3z zQ+lOPQXU+*@ve-D#1HfRygNE2#JMNh#%0v`lfmjsfWQ*8J zL#vw**clMpN12taQj&tG^hhl*?)0K5qoqj(Y8_+~2F?dVRJJA z-YGD-R z%;M1MmokZ_*IKo@b2V|AxvbWj;$2-h&G4J8fl|a#f^fRx)Y*ZiDxKGWxk9;2&C+r0w*DLXynJ!C8kDchRKUku(;m5(hDccbT&E?qE8i%D9ev55 z7Uo1LW(=zl3ZMv-yGhs()De7fZ5nK98bYX=CNzk?Tyys9fSC>tkw_<4b)~4aqr%^W zf04fYVMTt4yWHEhYMojJl=8o)rd5qqZ%7+sQP zhgBj2m$TWJLz+hl;vZvPsh!OtHF18bLQj)GgAL9yqB3AXktFXpzzQUG0>-cdC=g1D z1g)t>oztw+@OEFHz0cm=WH|_Q7$^$@3p!V!oZQz+>1|oKplC9IjZr9KG=R~hX?mT~ zWP)fCVR$hZFr^n*2@2K$J8^8$qjsMr^K2YoX=Ut9_D@e$<>}j-t8ty2FrLDS?ztSZ zsD6n#ytIef%aXQ98^o5s46d84$Hidr)GdX zT0jn`UemNGoDgGoxNkm;bCn>ZJn~Z=S&p#QI18ywN*k;(FR)El~29cQJJI1@t)X5WSbKc)BR}UKlUb2Yr z@s!gL?Ul2f*``Gtw4nx`qDBc81%?7HT=&wO?lo#PJ*<(YM z9UGL~p2A_u*4skBk-j+^>&TZFQaE>JT{#h!#zBuXV{)Y=(~QeB!=M!sYZfe7F|IT* z89Lvo@8EfZv>qz&9R#HM=kItDot=W&_uK_yL-l0v4*|rc6b3r~YCz^VD#T>~lnFqP zO}0ggllOF;4VD4)iS|*WOWB_uSD1PRF~b2ikhCzP1f~<>|ilUy&uB*J!n~kbuDH; z8p|JYJdj39A{l}qPNOs|hq1X(-lmKui|~t#MSLOJIV4Ze*S}s+4S;Ae5CZT_rJF^g zFFxCg5qhm?9}2?S`@bSWI7S%iq_txAUbXk}8BY$*jashEFS=%_Y{`Pjbi10* z&3<551>h)-!fsr|gUx{;4&w=(XffiynId)m?1gSSS|Yzh+GI(soZE%Rob&t0fi9K^ z4849LB@R_M!RsOQtcl$FJ ztm4c_1`8O49b9I9>?};|f?d`&)L@-R=74oH_<)H5vhg zh1f{PZP>3ZleEA34ii8{Zna&;8uj-S@dztW-LT4Yn)^-ElAVRf$J2C{MF|}`i-6pD z)#EK7Z&z;={N5Z*0{$-{O8;zEfB9rDoRu$bE`;@+B8ZVoM;Z$8%AyDmMFyWdL7Xk1 zf_F`$x(71~<`krOfs=m_b_!5r`B%opMgp_R7@@Y?Rb2t!adBI4`Q5z7*T>UlL5$e) zCq$&;MD?#X<4SiKoKWb$8}Ev$s;{@TRlXOyP1}`ckMNyoyf)jzF*N|ZMiE93R0RPn zOeRnkg~?_mLat(}s;pkG!cfIxs;b9ru4XP`s;cH@W_5#FS;cPKDyzY(t!6G_sbY-E z>ZGkp;)A;ju}O#~!bwLq1Q3Lh?%P?c%*9qQRp8xeRaJ8pRp@IiTxR8O4du5l#5tDjZd)jcMBJ$nL}T=2u_AYRH%$TY`of`LglIFuJtUrP29A$g zkg10za^Tt>qr606P@QL&F&O>@S?I z$CmLa5RmT-sz^~*sJ%+s47aGFfvt%Q*HAs_EwxFrE@Lg0=B%%V%Ufmo0FY7xGZ-<9 zXlPu67}2(;F(V?{;3+NF-zo;w}QN6^0wP; zPTlKbo{F+9^-E1zL7IZqD_6i|gc>n#rf!16h?$x}j5O&xD41mCFxF2uogzvLr69Z( zvjhVMCZ>ykIF4pEHaP*Mmm!9*Vz(;R#G4xhfiM_X7Hs!(2{?g60}DwZm!5j!W>R$v zQSqLm%l5kgIhb_pOT7__@F{>813@|h6xx&!!JLw9Y>c`K&pPQkeU&5yN)-`Y;0&-D zED4M`%v!?oj0!7)^=UIk(B2N!S!j z6kB8~YgJ(Y`o%i*h;~RTD%|Gw%$%mllhTq6RSQGs6eFpIS{@oiA!9G8OYCY@ouZI1 z*}Mf*!k|{F(t)3rim8_aBKSHrC?wHg!dPS`u(o+j4Q1FYPN4xrpvNdN zsRjapwikuVSR33~^bDeC%#a={ife>MBQRBLc`-tKa1}~jVUk?!LlKdNM8yXtYIhvB zoYIlrOiO!=tdVA*)}U(`lEx7Tu?tBclv<#K7~PAS0M^4z7|h-saXXVjwOhiZC6t+s zG`4^fBFtv2aQUB&ca!&8Wr;joi7sj4By8++&o?}&NTn$)^N5-kfdOiv5pZ}I!-!b} za+QWq3}Uy$8B(elP~W{ck=%492ah~*`(>DqNkv6ORaJM$33p>IXOl?1C^KY$*OYq+ z7_2si}pE5Yuqn_)gq96tZ<)I<>hWru=Ha?A}Q$7SkRc8WW z${bB+*tDWXLGdE1w4ZctjJgQG)DqTO6jCx6(3}}d&G>bih3Vefx@m#W@tuaYt81F* z^*MR80njNpAo165y9tyo6bvM~^pj{NS;Zp2nqXLSvI&Io3K5}1lD1;877s{LOA~>E z4iW=!&I>{9zQTeF1i_$y#+XRPgzW=axk8~dn_^5G5M>!5t5`=da3YBqahnjtcTxvV zBM`$Zh7rJL08VsLfdrBPjb`1vLYJ6ZHWn5Z7AnqKO2Hzd;}%<=c1Z}ZuFcCb8H&|s zk%(yEH>|Wwn3QDV zh0%8@Gps9&g$n{j`NeFgGNWT0CWaZvjS?nWA)Gya4jk4#oLH1}=Qm=h9+QzwI9YM(5 z!7+t1sV%$h!IGr&(TLJ#?#BB1p}OKY@GQiPptbL*9K}dN=xMbviixJfD;+}elC70D zVX8*KmUG#OEVh-X)_6;gR7^l%(oKXhG8Ax10I?!XM5SHr8B@7?E}idoxZc!?ho$(i zNK#p^GKnaCB(t(ZrJI+Q$(kaF2O2{X8_@o=QLDn}0i*y=<6)*!!3x*67x~5F%v&ZQ<^!T_L4Q2xlzV=($G-7R; z-Te9w`x+(@7b|uU(ZWgJV(9tf#3O z+*-ODg^RwUh;WsNv5O1^JI_2Y5CIsX9Tl#z^YD8wnTa0scnSnL*Y1;B_^WOqKl ztf>$UvYp-g{>t#DKe5R_Gu;*MoeT3m<()T7EO9|>z6WQ<(p%2KlOB>VINZF3Hv!on zEz9fo8uZ2!UT#=mHlt;&R)AgdE+OY@%@`(crYD?bOan0Hq8oD{P~HwXr6Fo8{CeMD zBMBF<$lLI`l7SuVM_ZHR2<4$WlbPI4qJE`gygNMS2B#pbw(J?|8SB{pOV Ymto@JtS80Q{crv*