@ -110,7 +110,7 @@ _Profiles for Visual Studio are discussed in detail here: [Visual Studio Notes](
| _**1**_ | Get conan to fetch dependencies<br><br>The output can be quite<br>long as conan downloads and/or builds<br>zlib, expat, curl and other dependencies.| $ conan install ..<br> --build missing | c:\\..\\build> conan install .. --build missing<br> --profile msvc2019Release64 |
| _**1**_ | Get conan to fetch dependencies<br><br>The output can be quite<br>long as conan downloads and/or builds<br>zlib, expat, curl and other dependencies.| $ conan install ..<br> --build missing | c:\\..\\build> conan install .. --build missing<br> --profile msvc2019Release64 |
| _**2**_ | Get cmake to generate<br>makefiles or sln/vcxproj | $ cmake .. | c:\\..\\build> cmake .. -G "Visual Studio 16 2019"
| _**2**_ | Get cmake to generate<br>makefiles or sln/vcxproj | $ cmake .. | c:\\..\\build> cmake .. -G "Visual Studio 16 2019"
| _**3**_ | Build | $ cmake --build . | c:\\..\\build> cmake --build . --config Release<br>You may prefer to open exiv2.sln and build using the IDE. |
| _**3**_ | Build | $ cmake --build . | c:\\..\\build> cmake --build . --config Release<br>You may prefer to open exiv2.sln and build using the IDE. |
| _**4**_ | Optionally Run Test Suite | $ make tests | c:\\..\\build> cmake --build . --config Release --target tests<br/>[README.md](README.md) |
| _**4**_ | Optionally Run Test Suite | $ make test | c:\\..\\build> cmake --build . --config Release --target test<br/>[README.md](README.md) |
@ -62,7 +62,7 @@ The file ReadMe.txt in a build bundle describes how to install the library on th
1. [Running tests on a UNIX-like system](#4-1)
1. [Running tests on a UNIX-like system](#4-1)
2. [Running tests on Visual Studio builds](#4-2)
2. [Running tests on Visual Studio builds](#4-2)
3. [Unit tests](#4-3)
3. [Unit tests](#4-3)
4. [Python tests](#4-4)
4. [Bugfix tests](#4-4)
5. [Test Summary](#4-5)
5. [Test Summary](#4-5)
6. [Fuzzing](#4-6)
6. [Fuzzing](#4-6)
1. [OSS-Fuzz](#4-6-1)
1. [OSS-Fuzz](#4-6-1)
@ -90,8 +90,8 @@ $ cd ~/gnu/github/exiv2 # location of the project code
$ mkdir build && cd build
$ mkdir build && cd build
$ cmake .. -DCMAKE_BUILD_TYPE=Release
$ cmake .. -DCMAKE_BUILD_TYPE=Release
$ cmake --build .
$ cmake --build .
$ make tests
$ ctest
$ sudo make install
$ sudo cmake --build . --target install
```
```
This will install the library into the "standard locations". The library will be installed in `/usr/local/lib`, executables (including the exiv2 command-line program) in `/usr/local/bin/` and header files in `/usr/local/include/exiv2`
This will install the library into the "standard locations". The library will be installed in `/usr/local/lib`, executables (including the exiv2 command-line program) in `/usr/local/bin/` and header files in `/usr/local/include/exiv2`
@ -120,7 +120,7 @@ I don't know why anybody would uninstall Exiv2.
```bash
```bash
$ cd ~/gnu/github/exiv2 # location of the project code
$ cd ~/gnu/github/exiv2 # location of the project code
$ cd build
$ cd build
$ sudo make uninstall
$ sudo cmake --build . --target uninstall
```
```
These commands will remove the exiv2 executables, library, header files and man page from the standard locations.
These commands will remove the exiv2 executables, library, header files and man page from the standard locations.
@ -395,7 +395,7 @@ Additionally, you will require an additional build step to actually build the do
```bash
```bash
$ cmake ..options.. -DEXIV2_BUILD_DOC=On
$ cmake ..options.. -DEXIV2_BUILD_DOC=On
$ make doc
$ cmake --build . --target doc
```
```
To build the documentation, you must install the following products:
To build the documentation, you must install the following products:
Due to the way in which ccache is installed in Fedora (and other Linux distros), ccache effectively replaces the compiler. A default build or **-DBUILD\_WITH\_CCACHE=Off** is not effective and the environment variable CCACHE_DISABLE is required to disable ccache. [https://github.com/Exiv2/exiv2/issues/361](https://github.com/Exiv2/exiv2/issues/361)
Due to the way in which ccache is installed in Fedora (and other Linux distros), ccache effectively replaces the compiler. A default build or **-DBUILD\_WITH\_CCACHE=Off** is not effective and the environment variable CCACHE_DISABLE is required to disable ccache. [https://github.com/Exiv2/exiv2/issues/361](https://github.com/Exiv2/exiv2/issues/361)
@ -767,7 +764,7 @@ To build Exiv2 v0.27.X with C++11:
The option -DCMAKE\_CXX\_STANDARD=11 specifies the C++ Language Standard. Possible values are 98, 11, 14, 17 or 20.
The option -DCMAKE\_CXX\_STANDARD=11 specifies the C++ Language Standard. Possible values are 98, 11, 14, 17 or 20.
@ -864,18 +861,27 @@ For new bug reports, feature requests and support: Please open an issue in Gith
[TOC](#TOC)
[TOC](#TOC)
<divid="4">
<divid="4">
## 4 Running the test suite
## 4 Test Suite
#### Different kinds of tests:
The test suite is implemented using CTest. CMake adds the target 'test' to the build. You can run ctest with the command `$ cmake --build . --target test`, or simply with `$ ctest`. The build creates 5 tests: bashTests, bugfixes, tiffTests, unit_tests and versionTest. You can run all tests or a subset.
| Description | Language | Location | Command<br>_(in build directory)_ | CMake Option to Build |
```bash
$ cmake --build . --target test
$ ctest # run all tests and display summary
$ ctest --output-on-failure # run all tests and output failures
$ ctest -R bugfixes # run only bugfixes and display summary
$ ctest -R bugfixes --verbose # run only bugfixes and display all output
```
#### Test Architecture
| Name | Language | Location | Command<br>_(in build directory)_ | CMake Option to Build |