From d2f5abbac56828b96d972d6bc85586a410dde05b Mon Sep 17 00:00:00 2001 From: Robin Mills Date: Tue, 21 Apr 2015 18:48:49 +0000 Subject: [PATCH] #1054. exiv2json deep recursion and AltLang support. Regression detector. --- Makefile | 22 +++++++++++----------- config/Makefile.in | 22 +++++++++++----------- samples/exiv2json.cpp | 2 +- src/Makefile | 11 +++++++++++ test/bugfixes-test.sh | 11 +++++++++++ test/data/bugfixes-test.out | Bin 141360 -> 147792 bytes 6 files changed, 45 insertions(+), 23 deletions(-) diff --git a/Makefile b/Makefile index c45b2f52..0689ff75 100644 --- a/Makefile +++ b/Makefile @@ -36,7 +36,7 @@ # History: 15-Jan-04, ahu: created # # Description: -# Simple top-level makefile that mainly forwards to makefiles in +# Simple top-level makefile that mainly forwards to makefiles in # subdirectories. # # Restrictions: @@ -83,8 +83,8 @@ MAJOR=$(shell grep "define.*EXIV2_.*_VERSION .*\\d*" src/version.hpp | grep MAJO MINOR=$(shell grep "define.*EXIV2_.*_VERSION .*\\d*" src/version.hpp | grep MINOR | sed -e 's/EXIV2//g' | tr -dC [:digit:]) VERSION=exiv2-$(MAJOR).$(MINOR) tarball: - @rm -rf /tmp/$(VERSION) - @rm -rf /tmp/$(VERSION).tar + @rm -rf /tmp/$(VERSION) + @rm -rf /tmp/$(VERSION).tar @rm -rf /tmp/$(VERSION).tar.gz @rm -rf $(VERSION).tar.gz svn export -q . /tmp/$(VERSION) @@ -103,9 +103,9 @@ configure: config: cd config && $(MAKE) -f config.make $(MAKECMDGOALS) -xmpsdk: src/svn_version.h config/config.mk +xmpsdk: src/svn_version.h config/config.mk if test "x$(ENABLE_XMP)" = "x1"; then cd xmpsdk/src && $(MAKE) $@; fi; - + src/svn_version.h: cd src && $(MAKE) svn_version.h @@ -119,8 +119,8 @@ mostlyclean clean: config/config.mk rm -rf test/tmp include/exiv2/exv_conf.h src/svn_version.h mkdir test/tmp -# `make distclean' also removes files created by configuring -# the program. Running `make all distclean' prepares the project +# `make distclean' also removes files created by configuring +# the program. Running `make all distclean' prepares the project # for packaging. distclean: clean rm -f config.log config.status libtool @@ -133,16 +133,16 @@ maintainer-clean: distclean rm -f configure -cd test && $(MAKE) $(MAKECMDGOALS) -config/config.mk: +config/config.mk: $(error File config/config.mk does not exist. Did you run ./configure?) rebuild: make distclean make config ./configure - make + make -j sudo make install - make samples - + make -j samples + # That's all Folks! ## diff --git a/config/Makefile.in b/config/Makefile.in index 06812702..49dcc121 100644 --- a/config/Makefile.in +++ b/config/Makefile.in @@ -36,7 +36,7 @@ # History: 15-Jan-04, ahu: created # # Description: -# Simple top-level makefile that mainly forwards to makefiles in +# Simple top-level makefile that mainly forwards to makefiles in # subdirectories. # # Restrictions: @@ -83,8 +83,8 @@ MAJOR=$(shell grep "define.*EXIV2_.*_VERSION .*\\d*" src/version.hpp | grep MAJO MINOR=$(shell grep "define.*EXIV2_.*_VERSION .*\\d*" src/version.hpp | grep MINOR | sed -e 's/EXIV2//g' | tr -dC [:digit:]) VERSION=exiv2-$(MAJOR).$(MINOR) tarball: - @rm -rf /tmp/$(VERSION) - @rm -rf /tmp/$(VERSION).tar + @rm -rf /tmp/$(VERSION) + @rm -rf /tmp/$(VERSION).tar @rm -rf /tmp/$(VERSION).tar.gz @rm -rf $(VERSION).tar.gz svn export -q . /tmp/$(VERSION) @@ -103,9 +103,9 @@ configure: config: cd config && $(MAKE) -f config.make $(MAKECMDGOALS) -xmpsdk: src/svn_version.h config/config.mk +xmpsdk: src/svn_version.h config/config.mk if test "x$(ENABLE_XMP)" = "x1"; then cd xmpsdk/src && $(MAKE) $@; fi; - + src/svn_version.h: cd src && $(MAKE) svn_version.h @@ -119,8 +119,8 @@ mostlyclean clean: config/config.mk rm -rf test/tmp include/exiv2/exv_conf.h src/svn_version.h mkdir test/tmp -# `make distclean' also removes files created by configuring -# the program. Running `make all distclean' prepares the project +# `make distclean' also removes files created by configuring +# the program. Running `make all distclean' prepares the project # for packaging. distclean: clean rm -f config.log config.status libtool @@ -133,16 +133,16 @@ maintainer-clean: distclean rm -f configure -cd test && $(MAKE) $(MAKECMDGOALS) -config/config.mk: +config/config.mk: $(error File config/config.mk does not exist. Did you run ./configure?) rebuild: make distclean make config ./configure - make + make -j sudo make install - make samples - + make -j samples + # That's all Folks! ## diff --git a/samples/exiv2json.cpp b/samples/exiv2json.cpp index 6fb433fb..317598c3 100644 --- a/samples/exiv2json.cpp +++ b/samples/exiv2json.cpp @@ -268,7 +268,7 @@ try { Jzon::Object root; - if ( option == 'a' || option == 'f' ) { + if ( option == 'f' ) { // only report filesystem when requested const char* FS="FS"; Jzon::Object fs ; root.Add(FS,fs) ; diff --git a/src/Makefile b/src/Makefile index 376fded0..2411886c 100644 --- a/src/Makefile +++ b/src/Makefile @@ -191,6 +191,12 @@ EXIFPOBJ = $(SAMPLEDIR)$(EXIFPRINT:.cpp=.o) EXIFPBIN = $(EXIFPRINT:.cpp=) EXIFPEXE = $(EXIFPRINT:.cpp=$(EXEEXT)) +# exiv2json application +EXIV2JSON = exiv2json.cpp +EXIVJOBJ = $(SAMPLEDIR)$(EXIV2JSON:.cpp=.o) +EXIVJBIN = $(EXIV2JSON:.cpp=) +EXIVJEXE = $(EXIV2JSON:.cpp=$(EXEEXT)) + # cmdfiletest application REMOTETEST = remotetest.cpp REMOTETOBJ = $(SAMPLEDIR)$(REMOTETEST:.cpp=.o) @@ -206,6 +212,7 @@ DEP = $(CCSRC:%.cpp=$(DEPDIR)/%.d) \ $(CONNTEST:%.cpp=$(DEPDIR)/%.d) \ $(EXIFPRINT:%.cpp=$(DEPDIR)/%.d) \ $(REMOTETEST:%.cpp=$(DEPDIR)/%.d) \ + $(EXIV2JSON:%.cpp=$(DEPDIR)/%.d) \ $(EXIVCSRC:%.c=$(DEPDIR)/%.d) endif @@ -299,6 +306,10 @@ $(EXIFPBIN): lib $(EXIFPOBJ) mkdir -pv ../bin 2>&1 > /dev/null @$(LIBTOOL) --mode=link $(LINK.cc) -o ../bin/$@ $(LIBRARY) $(EXIFPOBJ) -rpath $(libdir) +$(EXIVJBIN): lib $(EXIVJOBJ) + mkdir -pv ../bin 2>&1 > /dev/null + @$(LIBTOOL) --mode=link $(LINK.cc) -o ../bin/$@ $(LIBRARY) $(EXIVJOBJ) -rpath $(libdir) + $(REMOTETBIN): lib $(REMOTETOBJ) mkdir -pv ../bin 2>&1 > /dev/null @$(LIBTOOL) --mode=link $(LINK.cc) -o ../bin/$@ $(LIBRARY) $(REMOTETOBJ) -rpath $(libdir) diff --git a/test/bugfixes-test.sh b/test/bugfixes-test.sh index b0c538b2..6ff9d32d 100755 --- a/test/bugfixes-test.sh +++ b/test/bugfixes-test.sh @@ -336,6 +336,17 @@ source ./functions.source runTest exiv2 -PE -K ImageWidth $filename runTest exiv2 -PE -K Exif.Image.ImageWidth $filename + num=1054 + filename1=exiv2-bug${num}-1.jpg + filename2=exiv2-bug${num}-2.jpg + printf "$num " >&3 + echo '------>' Bug $num '<-------' >&2 + copyTestFile BlueSquare.xmp $filename1 + copyTestFile exiv2-bug784.jpg $filename2 + runTest exiv2json $filename1 + runTest exiv2json x $filename1 + runTest exiv2json $filename2 + num=1058 filename=exiv2-bug$num.jpg printf "$num " >&3 diff --git a/test/data/bugfixes-test.out b/test/data/bugfixes-test.out index 354e0382f67ce4057e86bc1cf7f04d38927d2803..02d8ce7d92fb0cc40d7e2caf60c2e5e8e93d4d18 100644 GIT binary patch delta 5133 zcmeHL&2HO95QcIpjrLNYK#L$Ku|=DU8{zeD1{n@QqxzF%Q=LxYcCP;~w;C%;TLJX^EjBK`&Y6Q3qup$6Z$=I5nFXhy=7`bl?|Z{+6t4Q)CIM}(4#{US0mT&(W?V8Otx|AVD2bYdTNh* ziu+Hk2oFfJACQxyAaY}nz_^E3$*3S@&1xQjHEVes)~xX;NV0SR6Si=_fHEREDq6Fm z)g_mW|Km(xn~SJ-{X^mfA=g9(eu5)BOh~j#cs8S(U*0PQW`7z=R^(<8QqU-frdY63 zet%!wIS5H+bV3s^7q1`>`)r(@28niDamfhJJh8hF0d;*GVF&RmPj@vwi~=6%iyB+@sRo)Y_cpBD72cy zdpbZJzs``*Elrc${lKN86UogAIWO2b9xk(!1iLuF1@TrzGb_5br&n9mdP~p5gJV+o z0(1I(P(ICKCm7BErjjj(+cTR{x7BP{JM~`8Fmz@by6&_)R#j`X>(!=i)HPeLN>#V~ zIKlpq6t;G1&9<#~s)lY>FWBjjhynojqF|aSqM$h0Az5|fz)Jm?ot2-eX7)h-1)9NT z_dK)A?zwvlsUw}m6clEKBU3a5d3P3^j8An- zu51Gm9}<9Ns2O14{NeAVF>^GtQEM6vqh|H&hNIUVt!mkZ)zq6^U9%jyw~vcuG_B?x zn#2QuPCN}$mo>^N|64eUEP5R%xhn+~wEiYjd$pz_D5~=GrTUz^_>4Vo?!GCp602KI z$7%MocCB0QI*p!XbWFS3==R!{S#NaA4Bt0SMLYIBAiju@>>41xi16$hAijw3>~h^% z;hv_+^lu=(i13U{zG8?kB0S?2;ff)?h@o_t5G#%hjVtCKng-1cKPC6%NJ;thA4~ian_f|l}h!5G9n3hBsZ}Ib%$F4%*o9o-9FTN5g2|r)d z<{yMup~o4oaWhT+riSlpMixPkRiri(u$I zF5Q+|ak0Y*_Q&vq0()QFnaU|C^YL>u;q} B9N7Q> delta 18 Zcmcc6#JS-DM?(wa7A8OS>3I%Jj{r$?2R#4)