Fix stray comma in leaf-changes-only mode.
Commit Message
This change replaces the "\n," sometimes seen in output (such as for
the PR25128 test cases) with a correctly indented "and".
* src/abg-reporter-priv.cc (represent): Don't try to follow
output of indented pretty representation with a comma, just
emit "and" unconditionally; remove unnecessary intermediate
ostringstream.
* tests/data/Makefile.am: Add new test case files.
* tests/data/test-abidiff-exit/test-b146198490-*: New test
cases.
* tests/data/test-diff-suppr/test46-PR25128-report-?.txt:
Replace unindented comma with indented "and".
* tests/test-abidiff-exit.cc: Add b146198490 test case.
Signed-off-by: Giuliano Procida <gprocida@google.com>
---
src/abg-reporter-priv.cc | 17 ++++++-----------
tests/data/Makefile.am | 3 +++
.../test-b146198490-report.txt | 14 ++++++++++++++
.../test-abidiff-exit/test-b146198490-v0.o | Bin 0 -> 2784 bytes
.../test-abidiff-exit/test-b146198490-v1.o | Bin 0 -> 2784 bytes
.../test46-PR25128-report-1.txt | 2 +-
.../test46-PR25128-report-2.txt | 2 +-
tests/test-abidiff-exit.cc | 9 +++++++++
8 files changed, 34 insertions(+), 13 deletions(-)
create mode 100644 tests/data/test-abidiff-exit/test-b146198490-report.txt
create mode 100644 tests/data/test-abidiff-exit/test-b146198490-v0.o
create mode 100644 tests/data/test-abidiff-exit/test-b146198490-v1.o
@@ -486,30 +486,25 @@ represent(const var_diff_sptr &diff,
{
if (local_only && d->has_local_changes())
{
- std::ostringstream out_buffer;
- out_buffer
- << indent << "type '" << get_pretty_representation(o->get_type())
+ out << indent << "type '" << get_pretty_representation(o->get_type())
<< "' of '" << o->get_qualified_name()
<< "' changed";
if (d->currently_reporting())
{
- out_buffer << " as being reported\n";
- begin_with_and = true;
+ out << " as being reported\n";
}
else if (d->reported_once())
{
- out_buffer << " as reported earlier\n";
- begin_with_and = true;
+ out << " as reported earlier\n";
}
else
{
- out_buffer << ":\n";
- d->report(out_buffer, indent + " ");
- begin_with_and = false;
+ out << ":\n";
+ d->report(out, indent + " ");
}
- out << out_buffer.str();
+ begin_with_and = true;
emitted = true;
}
else
@@ -107,6 +107,9 @@ test-abidiff-exit/test-loc-v0.bi \
test-abidiff-exit/test-loc-v1.bi \
test-abidiff-exit/test-loc-with-locs-report.txt \
test-abidiff-exit/test-loc-without-locs-report.txt \
+test-abidiff-exit/test-b146198490-report.txt \
+test-abidiff-exit/test-b146198490-v0.o \
+test-abidiff-exit/test-b146198490-v1.o \
\
test-diff-dwarf/test0-v0.cc \
test-diff-dwarf/test0-v0.o \
new file mode 100644
@@ -0,0 +1,14 @@
+Leaf changes summary: 1 artifact changed
+Changed leaf types summary: 1 leaf type changed
+Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 0 Added function
+Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
+
+'struct foo at test-b146198490-v0.cc:1:1' changed:
+ type size changed from 32 to 64 (in bits)
+ there are data member changes:
+ type 'int[1]' of 'foo::bar' changed:
+ type name changed from 'int[1]' to 'int[2]'
+ array type size changed from 32 to 64
+ array type subrange 1 changed length from 1 to 2
+ and size changed from 32 to 64 (in bits) (by +32 bits)
+
new file mode 100644
GIT binary patch
literal 2784
zcmbtV&1(}u6n~RVnzY-7w6U5}g%$j$Xx5gNk}B0`{b;d@2n7+O?k3wb+H54*YE{I8
zB8ry^f{5Zl{|WD2{1f~KJbLgZc+mG|-=v#yMbLqr_ulV)&di&g2d5X$B!mDp1RR4c
zNudB%&lX>nY#H(}1WWTzzsx_q|9$i7$F~S4r79yMguDd8$&B!cm1Yx?LS*I<G+d_z
zBGG?d8YGKIQdOL;;@3kHKsu8ql1ZlOegM6$a~DJ^QWJoRF5bLG!#>gv6PI|t3Z_g0
zVo>bO=1n6znjI8F>D&&~=7o_l%_HVfbH)^TtYrX<OeikoOBgh{4;Bzl39*nTgPz?e
zA4Wxb518gLjD}?~n*r#x#qkjp!Iyc;g_kEs$h9vOiJd55%{dG~(cutPiXX<3vzpYZ
zl&mOiTS9sX@gq9`0tZ6)2?)G)P;@7zrYB}fQ#0emTjO@6A{|o&=nb==xIHBvCJgjk
zYx*^7-EY@xzE`zqf8!&Zy|84>9XvQOWtHqnd)z8Ef_2}Ut$DuJs#j2ST9wt=jnZ^+
zdde!+;Be5m3CmX|@vttPo1_DWvvYGttg%y`TX+00N^$x?$jAa=TS!3My#!(-Cr10z
znN3{PPQ>Y>A@}4&HupF&H_&qi4MI3}rcFu0x1VuJTzec02A_nkG*A;a3~qZ}XFykj
zcGL#QUhc?>F`!qmUDW9Gb{CA*40Ho58GtPrGYshe4aF;fw|HwGI{g;k0^O&HzG{Vi
z5uTE$OoY>_#t6hQ7!pwU5X-|FewpPFrc`04bCEy5IK_#c|FsAn-OaX!hkq4-+l=e+
zqw7ks4Uya*?2rBdw-~3|qxFN`zS9UC7irK6>8j!aZzBM^>I4qhZo3V3%Ug5os^_lP
zmh1jX6LpezT({-j>QXx`$FF(aE^Bq)Q!bbS>`JrI@bH$~elzfFyw$~a;8bpKAa8Yf
zrR6j{F8n{qDEiahs{K^q%FJ~7jpeOQ41wK92-9!gIkwk{?!O-ms6YPIe*%5=n3PlH
ze@8-O=(hA<r-!f{u_3n1uj6ONsjmo9y^N289J4s<F-h@NY60kliw@oPA}V!^?4K|=
z9(9hfrFF*DU*Joj{HcEWtLgPuV`3r%A2|Oa36Y`Kx{SKG{PUb&?Gxpv`>yA|i5SIH
zbs{TAk}u<R1u#|l6}^XeoWIZhyZ++;i2XG)c*g!ZuJS7U75nSvn+%kcAyc(}1;0Qh
zZvU>u>>s@v%3tj()uZR8*q<1@$OY4Xon9l|pUy<Tdk8^+io&rcB%N7bKgEsn-{AV+
KcRWKz_x}YqTCbV_
literal 0
HcmV?d00001
new file mode 100644
GIT binary patch
literal 2784
zcmbtVPiqrF6n~RVnr*iYX=62|3M=>*&9<SXq?Oj#YHhJfDHKGIx|?j%XtOEFwpK+v
zC}QzaK@d?q=$G*B#gE_@@aVyt;6dM;ok=(27C|5Eyf?r1cV^z~Ji4?n8)FP4F_?nA
znM481jy<`^#Uf;&50>Y4zRvAD{IPrU(>sLYT&42}fy{wmFhX){wO$9EF?|j}&9NK6
zV%=A{K|F^nQO4mWejPM0Na{)CpvMzc&xcOOz7H%BstG_wXK&x2VHfH9Ns7H#1B0gl
z*2|8kGKQ8KO!cz9Wcm<lGfdMBW5PIRj2kS2we*0d2h;gX0fWX*z&zp!#^y6*&~X&!
zL#Rj|1H+iYXjqmIb%0Kboga`9Jf5eReKkEmu3d>x>{u3SPGbm)4ri%S{4f?D<serj
z=aSR5#kdz^KT|!xkPyO;f$ui`oRc3N%a0dE$A@!Ud8<_7j)^RE23c@=Fu@+jH1u4r
zdlhrjYgQ|sTQ+HbFJD_WXU?3-kD3K*#2PkpHGk7{Co8V!HmW6@+KtlM<aS{!H#TbK
zD*I#{@@pHga$^J!Yw5}e9XMQ`nVB$8U38tQ?FF%OW2Xaw7YGLe2JHS4u<bM(>`v;t
zxT?d5(?`Vj<U%U_G&a-IF^dKP968da#Nqp|C?&2v3I<J_gsRj~6GfV6dsU}FTZ6XL
z8t`6j&8470rxe?`*6Qsx7^~@N2gFPRY{>}Hp!*LLuK?cSy?to)TXYk(pC<as6?TPW
zN+L56POIu85UDp{An|E2?^p2aVm=@^RoLoWlurws;)KutRtOL8W>dlGuR?S;V0;I{
z@x$v%2peMQeeBQegPQ`U*x~qKHSg7Y+d=L(0=_0C-`)1XD%-vdmeXv4)o|BstL!?P
zm6fWuT1Oq1ZO3W2TWxB)VS5#~-DSP%xzYtwfK{s3YA)V#%d7jYg?ByI^zG6e5y)Lz
zS#8)gR}}uAY!LnF?BssRa77`s`c2IDIxzr_A|p(_c~^wJ%2fZ8Xh8k(ul{-TRbx_4
zng2aaLZsT#f1Mt}V#tQXqIey@2%P$gAlb|KIB=T8QH@E8Z(IvNFI<>Z+eK8W7}-A)
z;BeSE!j{$<Rex4o3h7Vv(_c-kzZ?-0A^0frFVG}JYOO1%i^@MI^2>dq{B+;d{2Pc-
zOj#$2oZ{j#-j;yiGQZ>x5RdZrg#VGh_&*W;iWxi?{wgl>O8m9(SIu_?P>_a#%k@k6
zB??jdcPnE5=+%(^a$l()H8;inEWkxkF#Xr*HB$ZQOw_xF5M-$+q+<bVjq3U-Zj}GF
MsQ*LDGZ0k&-!dn!yZ`_I
literal 0
HcmV?d00001
@@ -13,6 +13,6 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
type 'unsigned long int' of 'root_domain::max_cpu_capacity' changed:
entity changed from 'unsigned long int' to 'struct max_cpu_capacity' at sched.h:722:1
type size changed from 64 to 192 (in bits)
-, size changed from 64 to 192 (in bits) (by +128 bits)
+ and size changed from 64 to 192 (in bits) (by +128 bits)
'perf_domain* root_domain::pd' offset changed from 14528 to 14656 (in bits) (by +128 bits)
@@ -9,6 +9,6 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
type 'unsigned long int' of 'root_domain::max_cpu_capacity' changed:
entity changed from 'unsigned long int' to 'struct max_cpu_capacity' at sched.h:722:1
type size changed from 64 to 192 (in bits)
-, size changed from 64 to 192 (in bits) (by +128 bits)
+ and size changed from 64 to 192 (in bits) (by +128 bits)
'perf_domain* root_domain::pd' offset changed from 14528 to 14656 (in bits) (by +128 bits)
@@ -111,6 +111,15 @@ InOutSpec in_out_specs[] =
"data/test-abidiff-exit/test-loc-without-locs-report.txt",
"output/test-abidiff-exit/test-loc-without-locs-report.txt"
},
+ {
+ "data/test-abidiff-exit/test-b146198490-v0.o",
+ "data/test-abidiff-exit/test-b146198490-v1.o",
+ "",
+ "--leaf-changes-only",
+ abigail::tools_utils::ABIDIFF_ABI_CHANGE,
+ "data/test-abidiff-exit/test-b146198490-report.txt",
+ "output/test-abidiff-exit/test-b146198490-report.txt"
+ },
{0, 0, 0 ,0, abigail::tools_utils::ABIDIFF_OK, 0, 0}
};