@ -701,7 +703,7 @@ You will find that 3 tests fail at the end of the test suite. It is safe to ign
### 2.17 Building with C++11 and other compilers
### 2.17 Building with C++11 and other compilers
Exiv2 uses the default compiler for your system. Exiv2 v0.27 was written to the C++ 1998 standard and uses auto\_ptr. The C++11 and C++14 compilers will issue deprecation warnings about auto\_ptr. As _auto\_ptr support has been removed from C++17, you cannot build Exiv2 v0.27 with C++17 or later compilers._ Exiv2 v0.28 and later do not use auto\_ptr and will build with modern Standard C++ Compilers.
Exiv2 uses the default compiler for your system. Exiv2 v0.27 was written to the C++ 1998 standard and uses auto\_ptr. The C++11 and C++14 compilers will issue deprecation warnings about auto\_ptr. As _auto\_ptr support has been removed from C++17, you cannot build Exiv2 v0.27 with C++17 or later compilers._ Exiv2 v0.28 and later do not use auto\_ptr and will build with all modern C++ Standard Compilers.
To generate a build with C++11:
To generate a build with C++11:
@ -785,7 +787,7 @@ Environment Variables used by the test suite:
### 4.1 Running tests on a UNIX-like system
### 4.1 Running tests on a UNIX-like system
You can run the suite directly from the build:
You can run tests directly from the build:
```bash
```bash
$ cmake .. -G "Unix Makefiles"
$ cmake .. -G "Unix Makefiles"
@ -801,11 +803,11 @@ You can run individual tests in the `test` directory using the environment varia
You must set the environment strings EXIV2\_BINDIR, EXIV2\_EXT and modify PATH. You will need a DOS Python3 interpreter on your path, and you'll need the bash interpreter. By careful to ensure the DOS python3.exe is found before the MingW/msys2 python3.
You must set the environment strings EXIV2\_BINDIR, EXIV2\_EXT and modify PATH. You will need a DOS Python3 interpreter on your path, and you'll need the bash interpreter. By careful to ensure the DOS python3.exe is found before the MingW/msys2 python3.
Move to the test directory and use make (which is in c:\msys64\usr\bin) to drive the test procedures. You cannot run the tests in the build directory because there is no Makefile in the build directory.
Move to the test directory and use make (which is in c:\msys64\usr\bin) to drive the test procedures. You cannot run the tests in the build directory because there is no Makefile in the build directory.
```
```
c:\...\exiv2\build>cd ..\test
c:\...\exiv2\build\bin>cd ..\..\test
c:\...\exiv2\test>make bash_tests
c:\...\exiv2\test>make bash_tests
...
...
c:\...\exiv2\test>make python_tests # or unit_test or version_test
c:\...\exiv2\test>make python_tests # or unit_test or version_test
@ -938,6 +941,61 @@ The code for the unit tests is in `<exiv2dir>/unitTests`. To include unit tests
There is a discussion on the web about installing GTest: [https://github.com/Exiv2/exiv2/issues/575](https://github.com/Exiv2/exiv2/issues/575)
There is a discussion on the web about installing GTest: [https://github.com/Exiv2/exiv2/issues/575](https://github.com/Exiv2/exiv2/issues/575)
[TOC](#TOC)
<divid="4-4">
### 4.4 Python tests
You can run the python tests from the build or test directory:
```bash
$ cd <exiv2dir>/build (or cd <exiv2dir>/test)
$ make python_tests
```
If you wish to run in verbose mode:
```bash
$ cd <exiv2dir>/build (or cd <exiv2dir>/test)
$ make python_tests VERBOSE=1
```
The python tests are stored in the directory `tests` and you can run them all with the command:
```bash
$ cd <exiv2dir>/tests
$ python3 runner.py
```
You can run them individually with the commands such as:
-a tim --adjust Modify time stamps. [+|-]HH[:MM[:SS[.mmm]]]
-a tim --adjust Modify time stamps. [+|-]HH[:MM[:SS[.mmm]]]
-b --binary Show large binary values (default is to suppress them).
-b --binary Show large binary values (default is to restrict them).
-c txt --comment JPEG comment string to set in the image ('modify' action). ...
-c txt --comment JPEG comment string to set in the image ('modify' action). ...
-d tgt --delete Delete target(s) for the 'delete' action. ...
-d tgt --delete Delete target(s) for the 'delete' action. ...
-D +-n --days Time adjustment by a positive or negative number of days ...
-D +-n --days Time adjustment by a positive or negative number of days ...
@ -211,7 +211,7 @@ or 'm'(ute). The default log-level is 'w'. \fB\-Qm\fP is equivalent
to \fB\-q\fP. All log messages are written to standard error.
to \fB\-q\fP. All log messages are written to standard error.
.TP
.TP
.B\-b
.B\-b
Show large binary values (default is to suppress them).
The output from large binary values is to restricted by default. When outputting the value of a large value such as MakerNote, the default behaviour is to restrict the data and end with "...". The option --binary enables you to see all the data.
.TP
.TP
.B\-u
.B\-u
Show unknown tags (default is to suppress tags which don't have a name).
Show unknown tags (default is to suppress tags which don't have a name).