Commit Graph

176 Commits

Author SHA1 Message Date
Rosen Penev
c73dfa0106 clang-tidy: use uppercase numeric literals
Found with readability-uppercase-literal-suffix

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-05-16 11:27:49 +02:00
Luis Diaz Mas
e87424b5e0 Add CTest support 2021-05-15 16:58:24 +02:00
Rosen Penev
af7b2430c5 clang-tidy: use override
Found with modernize-use-override

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-05-11 17:39:59 +02:00
Luis Díaz Más
5a8511545f unitTests - use internal library object instead of recompiling sources 2021-04-23 14:53:08 +02:00
Luis Díaz Más
db4ece70cc gtest - remove wrapper which is not needed anymore 2021-04-23 14:53:08 +02:00
Luis Díaz Más
7d8cd00778 fix tests expectations for alpine linux 2021-04-22 18:40:03 +02:00
Luis Díaz Más
de4d43d4d1 Fix warnings EXIV2_TEAM_EXTRA_WARNINGS
Most of the warnings fixed were:
- Hiding of local variables
- Hiding of globals
- Useless casts
- Conversions between float/double
2021-04-18 18:49:58 +02:00
Luis Díaz Más
6c0059b5a0 cmake: Treat xmpsdk headers as system ones
This is done so that when we use EXIV2_TEAM_EXTRA_WARNINGS we do not get
warnings about XMPSDK (we do not want to deal with those)
2021-04-18 18:49:58 +02:00
Luis Díaz Más
e9fe24639a cmake - Modern use of consuming gtest 2021-04-15 06:56:37 +02:00
Luis Díaz Más
0bbaa6eff3 cpp: Replace auto_ptr by unique_ptr 2021-04-15 06:56:11 +02:00
Robin Mills
d632988bbd Massive code prolog cleanup. 2021-03-17 13:34:21 +00:00
Robin Mills
9e2ac47cf9
Merge pull request #1475 from 1div0/BMFF
Base Media File Format
2021-03-10 10:34:21 +00:00
postscript-dev
207a0d65c9 Change LangAltValue::read() tests to unitTests
Removed previous Python tests.
2021-03-09 11:58:55 +00:00
clanmills
f1303cbcda Another effort to fix base64decode and associated unit test. 2021-03-08 08:58:24 +00:00
Robin Mills
6109e5c49d I've removed the test and put a comment in the code! 2020-05-28 19:09:53 +01:00
Robin Mills
7fefeb739c Adding debugging code. 2020-05-28 18:27:31 +01:00
Robin Mills
7bf40a2408 fix_1211_c++11_0.27. I'll explain this in the PR. 2020-05-28 14:16:08 +01:00
clanmills
63a13e8620 Adding option -DEXIV2_BUILD_USE_C++11 2020-05-02 12:21:21 +01:00
Robin Mills
df04671976 Enforce cxx_std_98 in samples, unit_tests, and exiv2 application (to eliminate 2305 GCC unique_ptr warnings) 2020-04-30 11:20:37 +01:00
Luis Diaz Mas
235087af4e Do not call tell() in File::eof() - Fix tests & performance 2020-04-24 07:42:23 +02:00
Luis Diaz Mas
2732c10a86 Add unit tests for FileIO: canSeekBeyondEOF fails 2020-04-24 07:25:19 +02:00
Robin Mills
2034c41957 Fix #1164 (unit test failures on various platforms) 2020-04-20 12:57:31 +01:00
Luis Diaz Mas
48d68c8271 Fix sign-compare warnings & use gtestwrapper.h 2019-07-28 12:43:40 +02:00
Kevin Backhouse
edb4bf78ca Add bounds check to MemIo::seek(). (#944)
- Regression test for missing bounds check in MemIo::seek()
- Add bounds check to MemIo::seek(), this fixes CVE-2019-13504

(cherry picked from commit bd0afe0390439b2c424d881c8c6eb0c5624e31d9)

Additional fixes for 0.27:
- Add fix for the linux variant of MemIo::seek
- Change type of variable from unsigned to signed
2019-07-28 12:43:06 +02:00
Luis Díaz Más
0058dd1099 Use compile definitions only if they are available 2019-07-17 22:34:15 +02:00
Robin Mills
0c282f8373 Looking better all the time, Gentlemen. I believe the only changes between the patches are in unitTests/CMakeLists.txt.
This build passes the test suite and jens.cpp on MacOS-X.  I'll submit and see what the CI has to say.  With the changes only relating to unitTests (which I didn't run on FreeBSD), we should not have disturbed Linux/FreeBSD/jens.cpp.
2019-07-17 22:30:18 +02:00
Luis Díaz Más
4ed5bdc78b CMake: Supress MSVC PDB warnings 2018-11-27 18:20:20 +01:00
Luis Díaz Más
4d47b08a16 CMake: Move gtest finding to unitTests folder 2018-11-14 19:53:59 +01:00
Luis Díaz Más
7485bb54d7 Create function getProcessPath and add unit test for it
Debugging: Relative and Absolute path alternatives
2018-11-11 12:27:26 +01:00
Luis Díaz Más
244f00bf3a CMake: Do not add conan global compiler flags
+ Add conan-gtest compile definitions for the unit_tests target
2018-11-06 08:02:33 +01:00
Dan Čermák
fec6535ae8 [binaryToString] Reimplement using Slices
- reimplement binaryToString:
  - it now accepts a Slice and nothing else
  - it does not return a std::string but instead a proxy object that implements
    operator<< (this should be more efficient, as we do not need to touch the
    heap in most cases)
- addapt unit tests
- replace all occurences with the new API
2018-10-11 14:06:16 +02:00
Dan Čermák
30787e6f1e [binaryToString] Add unit tests 2018-10-11 14:06:16 +02:00
Dan Čermák
98bca06592 Add Slices: views of STL containers & C-arrays and add unit tests
This commit adds a very simple implementation of std::span but with
mandatory range checks and only the most essential functionality.
2018-10-11 14:06:16 +02:00
Luis Díaz Más
c5d46ac440 Expect std::exception instead of Exiv2::Error 2018-09-14 13:20:08 +02:00
Luis Díaz Más
b9f913d5af Move implementation to .cpp files. Fix more issues related to visibility settings 2018-09-14 13:20:08 +02:00
Luis Díaz Más
e3f975137c Use STATIC_DEFINE to solve issues with OBJECT library 2018-09-14 13:20:08 +02:00
Luis Díaz Más
6ba4081f95 Use CMake-GenerateExportHeader to generate a macro to export symbols
- Delete the hardcoded macros in config.h taking care of that.
2018-09-14 13:20:08 +02:00
Luis Díaz Más
94375034e6 Fix -Wsign-compare issues 2018-09-12 19:22:31 +02:00
Luis Díaz Más
24be5a514e [Appveyor] Build exiv2 with Visual Studio 2012 and 2013
- Integration tests had to be disabled with 2012 and 2013. There were
few (4) tests failing for these cases.
- Only bring libiconv with conan when a windows subsystem is detected.
- libiconv can be enabled now with a conan option.
- Use infinity instead of INFINITY
- Use conan_basic_setup(). Fixes a problem with gtest is VS2012
- call vcvarsall.bat for each compiler version so that nmake can be
found.
2018-09-10 10:31:00 +02:00
Luis Díaz Más
4161099b91 Fix warnings reported by MSVC 2018-09-10 10:31:00 +02:00
Luis Diaz Mas
0cf7d4fad8 Add unit tests for the TimeValue class 2018-09-10 08:40:55 +02:00
Dan Čermák
e705f1ef5b Add unit test for floatToRationalCast 2018-08-27 17:21:16 +02:00
Dan Čermák
2dacb19933 [safe_op] Add Safe::abs(), calculates absoulte value without UB
Add a drop-in replacement for std::abs which never produces
negative values and thereby never invokes undefined behavior.
2018-08-27 17:21:16 +02:00
Luis Diaz Mas
eb306fdbae Substitute malloc/free with new/delete 2018-08-27 13:24:47 +02:00
Luis Diaz Mas
669ab49c43 New tests for Uri class 2018-08-27 13:24:47 +02:00
Luis Diaz Mas
ca290d870f New tests for base64 encode & decode 2018-08-27 13:24:47 +02:00
Luis Diaz Mas
5d76036af5 Add more tests for decoding and encoding URL functions 2018-08-27 13:24:47 +02:00
Luis Diaz Mas
0bc6fbcea7 Add stdexcept header in unit test files 2018-08-26 15:46:47 +02:00
Luis Diaz Mas
ad004498a2 Cleanup 'comparison between signed & unsigned integer' warning 2018-08-24 16:45:52 +02:00
Dan Čermák
088986e5fa [unit_tests] Remove a memory leak from test_XmpKey.cpp
XmpProperties::registerNs allocates strings on the heap that must be freed
manually via XmpProperties::unregisterNs().
=> do this in TearDownTestCase()
2018-05-27 12:11:30 +02:00
Dan Čermák
dd52b1a832 Add helper_functions.cpp/hpp & unit tests
- add function which constructs a new std::string from a potentially not null
  terminated char *
- add unit tests
2018-05-27 09:38:27 +02:00
Luis Diaz Mas
4713336c93 Add more unit tests for TiffHeader 2018-05-26 18:19:40 +02:00
Luis Diaz Mas
59493d1edc Fix bug in Cr2Header::read 2018-05-26 18:19:40 +02:00
Luis Diaz Mas
b1c34ee11f Add unit tests for Cr2Header 2018-05-26 18:19:40 +02:00
Luis Díaz Más
794fea2639 Replaced way to check buffer after calling DateValue::copy 2018-04-08 10:10:12 +02:00
Luis Diaz Mas
bf0b7affaa Add few basic unit tests for DateValue
I feel more confortable doing changes in a code that I do not know by
having some unit tests around it. These characterisation tests will
also be useful as documentation.
2018-04-08 10:10:12 +02:00
Luis Díaz Más
b545605d25 Add characterisation tests for XmpKey 2018-04-07 20:04:22 +02:00
Dan Čermák
8b7941b733 [cmake] Add EXTRA_COMPILE_FLAGS to samples & unitTests
Add the additional compiler flags added by -DEXIV2_TEAM_EXTRA_WARNINGS=ON to
the targets in samples/ & unitTests/
This fixes #204
2018-03-29 13:17:24 +02:00
Dan Čermák
842dd4cecc Add a unit tests for enforce() 2018-03-25 23:25:23 +02:00
Dan Čermák
06ec1e6984 [safe_op] Refactored addition overflow checks using functions only
- templated structs were not required, SFINAE works for functions too
  => use instead, removes some unneeded code
- fix non-usage of builtins with clang
- adjust unit tests
2018-03-09 00:14:24 +01:00
Dan Čermák
1de633ad37 Reset errno to 0 before unit test probing strerror(errno)
errno can be set to a non-zero value from a previously failed system
call, it is not reset by successful ones
=> have to do that manually or the unit test fails because it detects
   an "outdated" error message
2017-12-17 23:46:10 +01:00
Dan Čermák
3b3283e37d Added unit tests for new overflow checking addition functions 2017-12-17 20:35:07 +01:00
Luis Díaz Más
39377b8c02 Fix strError tests on Mac 2017-12-17 18:26:12 +01:00
Luis Díaz Más
9b463708a4 Test runner return the gtest return value 2017-12-17 18:26:12 +01:00
Luis Díaz Más
f36bea3801 exiv2::getEnv throws std::out_of_range on unexpected EnVar
This change define explicitly the behavior that exiv2::getEnv should have
on response to unexpected inputs.

There are some other minor changes:

- Use _putenv_s for the unit tests on Windows
- Add todo comment
- Remove deprecated note about freeing memory
2017-12-06 17:29:05 +01:00
Luis Díaz Más
8b049922d7 Change exiv2::urlencode signature to return std::string
The goal of this change is to remove the responsibility from the client code to
free the memory of the returned string.
2017-12-06 17:29:05 +01:00
Luis Díaz Más
fd5f131f4e Add characterisation test for exiv2::urlencode 2017-12-06 17:29:05 +01:00
Luis Díaz Más
171c7970f9 Add characterization tests for exiv2::getEnv 2017-12-06 17:29:05 +01:00
Luis Diaz Mas
ec09c98adb add few characterisation tests for exiv2::strError 2017-12-06 17:29:05 +01:00
Luis Díaz Más
cc7ff4122d Export all symbols when running unit tests. Add dummy test for private code.
I tried to use directly the private OBJECT library (exiv2lib_int) in the unit_tests targets, but the private objects have dependencies on the public symbols (circular dependency)
and therefore it is impossible to test the private code with that approach with the current design of the library.

Starting from CMake 3.3 we can use the variable CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS to export all the symbols of a shared library:
https://blog.kitware.com/create-dlls-on-windows-without-declspec-using-new-cmake-export-all-feature/

Even having the opportunity to use this variable (that will be only used when EXIV2_BUILD_UNIT_TESTS is enabled) the previous commits are still valid.
It is interesting to clearly differentiate between the public and private code of the library. Enforcing this, make us think twice before putting code in the public
part of the library.
2017-11-28 17:36:08 +01:00
Luis Díaz Más
cfe614d8c3 Provide a gtestWrapper header to skip useless warnings 2017-11-25 08:33:15 +01:00
Luis Diaz Mas
2e8376dccc Do not use Gtest imported target (Not available in minimum CMake version required) 2017-10-16 07:27:32 +02:00
Luis Díaz Más
752e7a6bea Add simple unit tests for DataBuf 2017-10-16 07:27:32 +02:00
Luis Díaz Más
72cf9166fe Add simple tests for exifTime 2017-10-16 07:27:32 +02:00
Luis Díaz Más
2bad771834 (CMake) Add GTEST_LINKED_AS_SHARED_LIBRARY definition 2017-10-16 07:27:32 +02:00
Luis Díaz Más
26189ad287 (CMake) Add a new CMake option to enable the new Unit Tests 2017-10-16 07:27:32 +02:00