From bd16f3441e5c4a0c496678cbad082f1e7b504a36 Mon Sep 17 00:00:00 2001 From: Robin Mills Date: Mon, 26 Sep 2016 22:53:42 +0000 Subject: [PATCH] #1233 Thank You to Anton for reporting this and providing a patch. I've updated the test suite. --- samples/geotag.cpp | 5 +- test/Makefile | 1 + test/data/FurnaceCreekInn.gpx | 218 ++++++++++++++++++++++++++++++++++ test/data/FurnaceCreekInn.jpg | Bin 0 -> 38821 bytes test/data/geotag-test.out | 27 +++++ test/geotag-test.sh | 36 ++++++ 6 files changed, 285 insertions(+), 2 deletions(-) create mode 100644 test/data/FurnaceCreekInn.gpx create mode 100644 test/data/FurnaceCreekInn.jpg create mode 100644 test/data/geotag-test.out create mode 100755 test/geotag-test.sh diff --git a/samples/geotag.cpp b/samples/geotag.cpp index df1107fd..e8ece3d7 100644 --- a/samples/geotag.cpp +++ b/samples/geotag.cpp @@ -349,7 +349,7 @@ void charHandler(void* userData,const char* s,int len) } me->bTime=false; } - if ( me->bEle && len > 5 ) { + if ( me->bEle && len > 2 ) { if ( len < l_max ) { memcpy(buffer,s,len); buffer[len]=0; @@ -403,6 +403,7 @@ time_t parseTime(const char* arg,bool bAdjust) T.tm_year = YY -1900 ; T.tm_mon = MM -1 ; T.tm_mday = DD ; + T.tm_isdst = -1 ; // determine value automatically (otherwise hour may shift) result = mktime(&T); } } catch ( ... ) {}; @@ -852,7 +853,7 @@ int main(int argc,const char* argv[]) s = abs(s); int m = s/60 ; s-= m*60 ; - printf("tz,dsl,adjust = %d,%d,%d total = %dsecs (= %d:%d:%d)\n",t,d,a,A,h,m,s); + printf("tz,dst,adjust = %d,%d,%d total = %dsecs (= %d:%d:%d)\n",t,d,a,A,h,m,s); } for ( size_t p = 0 ; !options.dryrun && p < gFiles.size() ; p++ ) { std::string arg = gFiles[p] ; diff --git a/test/Makefile b/test/Makefile index 2dff2e4d..eaaac42f 100644 --- a/test/Makefile +++ b/test/Makefile @@ -67,6 +67,7 @@ TESTS = addmoddel.sh \ conversions.sh \ exifdata-test.sh \ exiv2-test.sh \ + geotag-test.sh \ imagetest.sh \ icc-test.sh \ iotest.sh \ diff --git a/test/data/FurnaceCreekInn.gpx b/test/data/FurnaceCreekInn.gpx new file mode 100644 index 00000000..d6acc6bf --- /dev/null +++ b/test/data/FurnaceCreekInn.gpx @@ -0,0 +1,218 @@ + + + + + + 124.856079 + 001 + 17-MAR-07 + 17-MAR-07 + Flag, Blue + + + 793.688232 + 002 + 27-MAY-07 + 27-MAY-07 + Flag, Blue + + + 325.049072 + GARMIN + GARMIN + GARMIN + Flag, Blue + + + 35.934692 + GRMEUR + GRMEUR + GRMEUR + Flag, Blue + + + 38.097656 + GRMTWN + GRMTWN + GRMTWN + Flag, Blue + + + 47 + + + 91.462524 + + + + -0.824097 + + + + -0.343384 + + + + 0.618042 + + + + 0.618042 + + + + 0.137451 + + + + 0.618042 + + + + 0.618042 + + + + 0.618042 + + + + -1.785278 + + + + -4.188599 + + + + -3.227295 + + + + -2.746704 + + + + -2.265991 + + + + -1.785278 + + + + -1.785278 + + + + -1.785278 + + + + -2.746704 + + + + -4.669312 + + + + -8.033936 + + + + -10.917847 + + + + -12.359863 + + + + -14.282471 + + + + -15.243652 + + + + -14.282471 + + + + -14.763062 + + + + -14.763062 + + + + -14.282471 + + + + -12.359863 + + + + -11.879150 + + + + -8.033936 + + + + -7.553101 + + + + -7.072510 + + + + -6.111206 + + + + -4.188599 + + + + -2.746704 + + + + -1.785278 + + + + -0.343384 + + + + -0.343384 + + + + -0.824097 + + + + -28.221558 + + + + -28.702148 + + + + + diff --git a/test/data/FurnaceCreekInn.jpg b/test/data/FurnaceCreekInn.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a918f27a50c11b58abcf71aec4c63faa62fbafcf GIT binary patch literal 38821 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

u_=-a3x9aYu03*sjjyh@++nY#n?;mbX_fv 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 qtU&3 + + jpg=FurnaceCreekInn.jpg + gpx=FurnaceCreekInn.gpx + copyTestFiles $jpg $gpx + + echo --- show GPSInfo tags --- + runTest exiv2 -pa --grep GPSInfo $jpg + tags=$(runTest exiv2 -Pk --grep GPSInfo $jpg) + echo --- deleting the GPSInfo tags + for tag in $tags; do runTest exiv2 -M"del $tag" $jpg; done + runTest exiv2 -pa --grep GPS $jpg + echo --- run geotag --- + runTest geotag -tz -8:00 $jpg $gpx + echo --- show GPSInfo tags --- + runTest exiv2 -pa --grep GPSInfo $jpg + +) 3>&1 > $results 2>&1 + +printf "\n" + +# ---------------------------------------------------------------------- +# Evaluate results +cat $results | tr -d $'\r' > $results-stripped +mv $results-stripped $results +reportTest $results $good + +# That's all Folks! +##