This is the mail archive of the elfutils-devel@sourceware.org mailing list for the elfutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] tests: Add s390 and s390x addrcfi testcases.


Signed-off-by: Mark Wielaard <mjw@redhat.com>
---
 tests/ChangeLog         |   10 +++
 tests/Makefile.am       |    3 +-
 tests/addrcfi.c         |    6 ++
 tests/run-addrcfi.sh    |  154 +++++++++++++++++++++++++++++++++++++++++++++++
 tests/testfiles390.bz2  |  Bin 0 -> 3132 bytes
 tests/testfiles390x.bz2 |  Bin 0 -> 3026 bytes
 6 files changed, 172 insertions(+), 1 deletions(-)
 create mode 100755 tests/testfiles390.bz2
 create mode 100755 tests/testfiles390x.bz2

diff --git a/tests/ChangeLog b/tests/ChangeLog
index 5933d3c..b934555 100644
--- a/tests/ChangeLog
+++ b/tests/ChangeLog
@@ -1,5 +1,15 @@
 2013-08-28  Mark Wielaard  <mjw@redhat.com>
 
+	* addrcfi.c (handle_cfi): Handle .debug_frame or .eh_frame
+	completely missing.
+	* run-addrcfi.sh: Add case for EM_S390 ELFCLASS32 and ELFCLASS64.
+	* testfiles390.bz2: New testfile.
+	* testfiles390x.bz2: Likewise.
+	* Makefile.am (EXTRA_DIST): Add testfiles390.bz2 and
+	testfiles390x.bz2.
+
+2013-08-28  Mark Wielaard  <mjw@redhat.com>
+
 	* addrcfi.c (handle_cfi): Use printf not error.
 	* run-addrcfi.sh: Add case for EM_PPC and EM_PPC64.
 	* testfileppc32.bz2: New testfile.
diff --git a/tests/Makefile.am b/tests/Makefile.am
index bebb5cd..8e4f88a 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -203,7 +203,8 @@ EXTRA_DIST = run-arextract.sh run-arsymtest.sh \
 	     testfilenolines.bz2 test-core-lib.so.bz2 test-core.core.bz2 \
 	     test-core.exec.bz2 run-addr2line-test.sh \
 	     run-addr2line-i-test.sh testfile-inlines.bz2 \
-	     testfileppc32.bz2 testfileppc64.bz2
+	     testfileppc32.bz2 testfileppc64.bz2 \
+	     testfiles390.bz2 testfiles390x.bz2
 
 if USE_VALGRIND
 valgrind_cmd='valgrind -q --trace-children=yes --error-exitcode=1 --run-libc-freeres=no'
diff --git a/tests/addrcfi.c b/tests/addrcfi.c
index 91f3ab5..6e6a491 100644
--- a/tests/addrcfi.c
+++ b/tests/addrcfi.c
@@ -107,6 +107,12 @@ static int
 handle_cfi (Dwfl *dwfl, const char *which, Dwarf_CFI *cfi,
 	    GElf_Addr pc, struct stuff *stuff)
 {
+  if (cfi == NULL)
+    {
+      printf ("handle_cfi no CFI (%s): %s\n", which, dwarf_errmsg (-1));
+      return -1;
+    }
+
   int result = dwarf_cfi_addrframe (cfi, pc - stuff->bias, &stuff->frame);
   if (result != 0)
     {
diff --git a/tests/run-addrcfi.sh b/tests/run-addrcfi.sh
index cf95a18..38669ca 100755
--- a/tests/run-addrcfi.sh
+++ b/tests/run-addrcfi.sh
@@ -2342,3 +2342,157 @@ dwarf_cfi_addrframe (.eh_frame): no matching address range
 	vector reg1154 (vr30): same_value
 	vector reg1155 (vr31): same_value
 EOF
+
+# EM_S390 (ELFCLASS32) (function bar 0x4004d8)
+# Note. Only in .eh_frame, there is no .debug_frame.
+# Same as PPC above but with -m31.
+testfiles testfiles390
+testrun_compare ${abs_builddir}/addrcfi -e testfiles390 0x4004d8 <<\EOF
+.eh_frame has 0x4004d8 => [0x4004d8, 0x4004e8):
+	return address in reg14
+	CFA location expression: bregx(15,96)
+	integer reg0 (%r0): same_value
+	integer reg1 (%r1): same_value
+	integer reg2 (%r2): same_value
+	integer reg3 (%r3): same_value
+	integer reg4 (%r4): same_value
+	integer reg5 (%r5): same_value
+	integer reg6 (%r6): same_value
+	integer reg7 (%r7): same_value
+	integer reg8 (%r8): same_value
+	integer reg9 (%r9): same_value
+	integer reg10 (%r10): same_value
+	integer reg11 (%r11): same_value
+	integer reg12 (%r12): same_value
+	integer reg13 (%r13): same_value
+	integer reg14 (%r14): same_value
+	integer reg15 (%r15): same_value
+	FPU reg16 (%f0): same_value
+	FPU reg17 (%f2): same_value
+	FPU reg18 (%f4): same_value
+	FPU reg19 (%f6): same_value
+	FPU reg20 (%f1): same_value
+	FPU reg21 (%f3): same_value
+	FPU reg22 (%f5): same_value
+	FPU reg23 (%f7): same_value
+	FPU reg24 (%f8): same_value
+	FPU reg25 (%f10): same_value
+	FPU reg26 (%f12): same_value
+	FPU reg27 (%f14): same_value
+	FPU reg28 (%f9): same_value
+	FPU reg29 (%f11): same_value
+	FPU reg30 (%f13): same_value
+	FPU reg31 (%f15): same_value
+	control reg32 (%c0): same_value
+	control reg33 (%c1): same_value
+	control reg34 (%c2): same_value
+	control reg35 (%c3): same_value
+	control reg36 (%c4): same_value
+	control reg37 (%c5): same_value
+	control reg38 (%c6): same_value
+	control reg39 (%c7): same_value
+	control reg40 (%c8): same_value
+	control reg41 (%c9): same_value
+	control reg42 (%c10): same_value
+	control reg43 (%c11): same_value
+	control reg44 (%c12): same_value
+	control reg45 (%c13): same_value
+	control reg46 (%c14): same_value
+	control reg47 (%c15): same_value
+	access reg48 (%a0): same_value
+	access reg49 (%a1): same_value
+	access reg50 (%a2): same_value
+	access reg51 (%a3): same_value
+	access reg52 (%a4): same_value
+	access reg53 (%a5): same_value
+	access reg54 (%a6): same_value
+	access reg55 (%a7): same_value
+	access reg56 (%a8): same_value
+	access reg57 (%a9): same_value
+	access reg58 (%a10): same_value
+	access reg59 (%a11): same_value
+	access reg60 (%a12): same_value
+	access reg61 (%a13): same_value
+	access reg62 (%a14): same_value
+	access reg63 (%a15): same_value
+	control reg64 (%pswm): same_value
+	control reg65 (%pswa): same_value
+handle_cfi no CFI (.debug_frame): no error
+EOF
+
+# EM_S390 (ELFCLASS64) (function bar 0x0000000080000510)
+# Note. Only in .eh_frame, there is no .debug_frame.
+# Same as s390 above but without -m31.
+testfiles testfiles390x
+testrun_compare ${abs_builddir}/addrcfi -e testfiles390x 0x0000000080000510 <<\EOF
+.eh_frame has 0x80000510 => [0x80000510, 0x80000524):
+	return address in reg14
+	CFA location expression: bregx(15,160)
+	integer reg0 (%r0): same_value
+	integer reg1 (%r1): same_value
+	integer reg2 (%r2): same_value
+	integer reg3 (%r3): same_value
+	integer reg4 (%r4): same_value
+	integer reg5 (%r5): same_value
+	integer reg6 (%r6): same_value
+	integer reg7 (%r7): same_value
+	integer reg8 (%r8): same_value
+	integer reg9 (%r9): same_value
+	integer reg10 (%r10): same_value
+	integer reg11 (%r11): same_value
+	integer reg12 (%r12): same_value
+	integer reg13 (%r13): same_value
+	integer reg14 (%r14): same_value
+	integer reg15 (%r15): same_value
+	FPU reg16 (%f0): same_value
+	FPU reg17 (%f2): same_value
+	FPU reg18 (%f4): same_value
+	FPU reg19 (%f6): same_value
+	FPU reg20 (%f1): same_value
+	FPU reg21 (%f3): same_value
+	FPU reg22 (%f5): same_value
+	FPU reg23 (%f7): same_value
+	FPU reg24 (%f8): same_value
+	FPU reg25 (%f10): same_value
+	FPU reg26 (%f12): same_value
+	FPU reg27 (%f14): same_value
+	FPU reg28 (%f9): same_value
+	FPU reg29 (%f11): same_value
+	FPU reg30 (%f13): same_value
+	FPU reg31 (%f15): same_value
+	control reg32 (%c0): same_value
+	control reg33 (%c1): same_value
+	control reg34 (%c2): same_value
+	control reg35 (%c3): same_value
+	control reg36 (%c4): same_value
+	control reg37 (%c5): same_value
+	control reg38 (%c6): same_value
+	control reg39 (%c7): same_value
+	control reg40 (%c8): same_value
+	control reg41 (%c9): same_value
+	control reg42 (%c10): same_value
+	control reg43 (%c11): same_value
+	control reg44 (%c12): same_value
+	control reg45 (%c13): same_value
+	control reg46 (%c14): same_value
+	control reg47 (%c15): same_value
+	access reg48 (%a0): same_value
+	access reg49 (%a1): same_value
+	access reg50 (%a2): same_value
+	access reg51 (%a3): same_value
+	access reg52 (%a4): same_value
+	access reg53 (%a5): same_value
+	access reg54 (%a6): same_value
+	access reg55 (%a7): same_value
+	access reg56 (%a8): same_value
+	access reg57 (%a9): same_value
+	access reg58 (%a10): same_value
+	access reg59 (%a11): same_value
+	access reg60 (%a12): same_value
+	access reg61 (%a13): same_value
+	access reg62 (%a14): same_value
+	access reg63 (%a15): same_value
+	control reg64 (%pswm): same_value
+	control reg65 (%pswa): same_value
+handle_cfi no CFI (.debug_frame): no error
+EOF
diff --git a/tests/testfiles390.bz2 b/tests/testfiles390.bz2
new file mode 100755
index 0000000000000000000000000000000000000000..14ebf6c76c9d00238ff1ad5fc423ceb21dd7d20a
GIT binary patch
literal 3132
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
WmVr4m`s)?H(a)pmLsg$V+#?qZNnDzmBp

literal 0
HcmV?d00001

diff --git a/tests/testfiles390x.bz2 b/tests/testfiles390x.bz2
new file mode 100755
index 0000000000000000000000000000000000000000..eb63ed8dcef53aca9dedc9a51a1460a679fc83aa
GIT binary patch
literal 3026
zcmV;@3oZ0QT4*^jL0KkKS>x0MwEzo|fB*mg|NsC0|NsC0|M~y_|9sqk-&N<=aj5+N
z-0uF&=g;5(a)azokc-yER1DV0dlm)To6?<=KC-5lM+LO>%Srkb9LdZyYb?F~&&Dd^cG
z^#_Tm<rsj_JwP&TO#sOC18EJS4Lv8MXbm2tOrNTHgY`fF4F~E#JdHs8Q$Wy&(J&Hi
zPa=4No~EanMDa${Jx@(Q^#BHd0MG#S00003KmY&$JwN~e4FCZ315;BIO-!e#n1-LK
zWW)gV0MksGF*MUgnjWA5>HrN436YaSKxohz8X5oq001%o&|&~!lTw6IZAX-QR5S;u
z^#Bc&G#;SSKmY&$&;SOS02u&i00uw+00000XaE6|NB{sd4^f~R0MktX(8vG=fMg9c
z0iXZ(a)h|moH4Kg&)&;S4p00T`l0FfaA5Sn^vG{RzOH1$0MVwjs#5$b9BklKLtJwc|P
zpgl$b0}$G3G;Jm!gc=8_pbUTmO*99T&>Co9M%9EGO|e)uf0b$?(GIP|GY+5c0!JDe
zB%iLLpEcM^n66JaL^$k%(48IsSHLYxNkM?+A$1n!hT2>gMS*Du?-AWB(a)Rq>E5ODxv
z)A<GuZxh!D69rzes2H8H<4E%km%|R0HPc6?&Tq5c{TFe$x0tIQ`<i-=RMk?CX6mIw
z4flE<a>Wbp`t7BP{8+!F%=p2QiyxXj;bmaN*wk!y`?r_`Gv-smwVrh^69rOT+BKLY
zy89V*D=C(a)AX?tGXH>j^OKvp}L@=HcY#1`@G<Y-~mUyM}`!%l`SlX>GVjdnLWq1V~X
zxl`X2dxDW{+c0-9V_ZyI)?9rNs<(W!3(65DL{mVSjkbQW(a)eC^RAYqR!N%z|g%{`or
zbB|qbBARK#ec9_nVw$MKt)+o=ZlchwY;E(MGt1PUbV!h!>jIt_9hI9*Pzj*Ix-Ymz
zD}pQlKp4d-D=jX<)TSK;ueVZE>}4^4_?J-#0wU=pR>t|M(a)i@8~Ud>!jdQig2*~M+9
z+ioXCr_w?g=Sa)WVTEh<2t)yO`55=B5CjTIfL0Eayf0ThsO*4cI=Qy)7%44-gG-&!
zaoE}G*YeT^f0?2{{!o)mZf1)55F+VJh){`z0vKC(6ht^aqbd#yG{=D!%Sreajd+{L
zpVOFFAqM2cASX2K*u0g$fYRW$qlgUwcTORwl!E|cGItjLK6kHK+2A8HPW9>FVoC(a)8
zY=D!qDi(pgvOpz0GA~XNLD-E5L^Knh?~<c3FcjQPvc`iyA_7ebSt&?LO<dAMn1$5#
za9r+(eyNykr8UarS6cKq*sd?PX0OzeEUMIkfh;P@%Bqn_If(a)3FkZP!^l}m?yuC|t3
zEJ2!yg+!dtfe3%5gkEARVVAs*ie>eoCG?+z^!rJ34QXh>!(qf{3!{uCfu#<kCbPG>
z>mU;FAc{pMO+)6={do4mLh!*!nlOT)y;xBswlWHc2rv<3WH%>Yc2j(a)P+cukm`b812
z8iOIa=qktxFi6QIjS#}ASfvsf#t`VxC+f*2LMZ^<CVGe(Wwi{-K(PuE0(a)6*b3lO}L
z8eza`C<CTpwi$NpgRJNHr^DD#&8yU(a)T*Z5n!kel!ds?Ji)5UojXNIo}w_8(a)+imbEi
zuo-CNf_&dH!MH#(9DzgzYdrFRax=ASD-A#|F#<k{Qg|q(;gIBD+~%dn6{*OAUsD?O
zm?%kX8Z&Rg2EhqoVr)D|9mH{7_}p)GrfQFZZeXok9OR6ZUkH***Rm0Pge2;}EkT8q
zZ^pFm8b#57b?Q5^*K0GM;b+I_ofql|MhqmBm6i|<sfJGu%cqyHXCi;61^N-wkZ?mo
z9KoLWnA|y5FxVE{Ib9ZvmaX|{&K0bwM7FyAB~vOOjT>Z6ZbY`DU}}wMP??yvg$1<>
z#fe3DyT7;aXn$+?zi8rC9k89sPFW$6bCeS6^$d%!SuRDET~;wcUIvOmMGRDDJWfHX
z__N+5jP#}?D;O3SGb9BVO-=*_$qjLZG71|41ts=1P&Dx`==n0Fs;1sKZXh`nJO(a)x{
z>Ocj93s(a)o;sG}3AWW<3&V<Cu_C?GB=WTHc-Wg^AOY3rJABH->QFD4!CtDtf)T3#Z>
zL?^__mte-<{O_`PEfceoC64kbZgD3p>61;8-BNR)oUx!bL(Cew)AcYFPmJgVeRPl9
z)lFw>$ml0y)0u38pJv(b<*6uVDc5XSE(a)mghD2aH`B5#1fZkg$p(a)PvbOPUaB~NR(zp
zn&Sf$Mb1_wxRn$=f^~W30XcXUi<4bOHEe3~=A`|O)6Fr>*-}4V4J%ad8qx`}hdU5K
z5mbmc`>2|r^tNZD1D6<*ng6cEe&n9q_xAZiYK>orENTt+D?-JX)Cl2`zT^Jt5sZgi
z-ql(C_Tg;L?|kqL5F;N^m_sW^!X+&hn;A&b%O*!eIjJ<*Zx|n$q_=a0dMsoOCnO(a)f
zVbZC7-ij#R0v2mr)2`U^nWt&2usmvT{C9%XO!y2)p<lGa8$YaN`J*efJft1w=$^F(
zC>W<_Fd`buA&@RcVYY8%<tE{|O2UllYdC|_^(P?Hg{MK8jFXs8DzGyiyY4u~IIP#4
zh4Jq3=i4q+6G-E+RKli-Ft6mt0np^{^k!#h4<;LLFnvP8Ed9sCvh~{PqLUM^wlvph
zwu3xj(uw%bgs+nOj{<-b?MCbE1q_%1izr=aC=PoFB}`*iudbVHIkNTihgYmTTPV5c
z8OW}&gJZo#$oF0jkW^&X#n#*I*sn}D4um6ED~pjFQ<xM^fose|`mP59=lWYm*WJL_
zF==XI`*F!86`;0cCL_EI%J?%f#fV1&5sitmSDB}1Hb+YXXc_hWt^mRvQ}wk#U4BWu
zErjTz><)@=nH?ns_S=B1z4R^&d9OnsIfHK7(a)s&k1IeWV=KK8eXCK_T0U(DK;SR+$e
z(qnM0oGR7nG-EQ#oB~e_xY7mN;e4VaCKZVxImAgo0YH@|;+kX_;lNn7;0IKI=)NfN
zkK@%G`~*`1!Zc&Pp&Ss#TM)oviKuG3wP3XcF5|A16bns!O5b^@_j0njQzJk&cE~Qd
z8TfikjiOK&Ri7ZK7J~)yk61wkE#O9qB1>mwXfd8r0C<v?1Q0>-z(iu3StXj5mfcS1
zw9h10Lzp8CmseL071tOwvDAk4RV8g$XbHj#xLPpQU}mYrY0{R70b*<!nH+>CV^#_T
z0)UW-q9R#5=H4zZgTij`__-XIvmq9&V2VuKwU>&L9buNuJhI{~p(a)LF?g!LtmSuwCM
zlOUV0Ih!*!L(a)kI!q$;2~A`Sq%gilt+8bC(a)ik7j)xyTtSuwzpiuD?&>XBWp%x$0#Ly
zyk^La8st_eAqA!FJlYoxglIbMn8YuI!U$s>tPF+_wNEmHhsD(P{TdhzqmYuqfrKDp
z&Fnxyf>eGR5t*5qz;w_+*a{cx$^dLj5D(qlArpq$%CfMZKI0syH`Q4E6h`H5c99}&
zu>m9BK#j{mnGgdM!43I<)ifYk22sv=4ux16lU<})RXE5UTMIUzhzyiCmnJ{RSy(a)D<
z*=-3FfpchOT(a)12^WZFFF(J+fu80^(B<naabbZ~A(vQ_(kt4AdFLH)HGDlIgrav}&J
zS&N2r6|^50S)&&pOYwL{on>nR=Ki4T15z|_OewPB*EVsM^7?G+?WYHwxzUv7z{Jd)
znp+-3Se!lVF=9#+ZkrmAKg%EQ*u@@3gM0UdywGJxQk?#KcU)X+TPJfR&UMA$8Lr06
zAUWu2O03;pTngd0ksI45RcB5w@&wlCnMA(a)ATO4RIdc4q>&N<#{mWhW6>K%Xh+YL(a)v
z1LjV&s`6AsY7v7ixxJMk$J@<NVH(a)jij&KcH;Z_u^05S|`!DO>G1X;pJFzaX{df?6<
zReFasvr%E_8(b?%0~pgwwP%y}meg9xjZqzoktmAsR~1kYo?xID2owfJ#`hi_%%1I_
U*xnW2P}lx0<ce^iA;+i*Y7N7A(a)c;k-

literal 0
HcmV?d00001

-- 
1.7.1


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]