Commit Graph

3 Commits

Author SHA1 Message Date
Mike Fleetwood 1ccb782156 Update to Google Test 1.10.0 (!117)
So far GParted includes Google Test 1.8.1 [1], which was the latest
release which supported pre-C++11 compilers [2].  Now that GParted
requires C++11 compilation, update to Google Test 1.10.0.  Replace the
following files and directories from Google Test 1.10.0:
    LICENSE
    README.md
    include/
    src/
Note the LICENSE file is identical, where as the other files have
changed.  This includes file additions and removals, hence the change
to Makefile.am too.

Even though Google Test releases up to and including 1.12.1 are
compilable with C++11 compilers [3], it is not possible to upgrade
beyond Google Test 1.10.0 at this time because later releases fail to
compile on on still supported RHEL / CentOS 7 with this error:

    $ cd lib/gtest
    $ make check
    ...
    ./include/gtest/gtest-matchers.h:414:12: error: 'is_trivially_copy_constructible' is not a member of 'std'
                std::is_trivially_copy_constructible<M>::value &&
                ^

This failure turns out to be because GCC libstdc++ 4.8.5 doesn't include
is_trivially_copy_constructible et al [4][5].

[1] commit 2b222978f5
    Update to Google Test 1.8.1
[2] Google Test release v1.8.1
    https://github.com/google/googletest/releases/tag/release-1.8.1
    "The 1.8.x is the last release supporting pre-C++11 compilers."
[3] Google Test release v1.12.1
    https://github.com/google/googletest/releases/tag/release-1.12.1
    "This will be the last release to support C++11.  Future releases
    will require at least C++14."
[4] 'is_trivially_copyable' is not a member of 'std'
    https://stackoverflow.com/questions/25123458/is-trivially-copyable-is-not-a-member-of-std/25123551#25123551
    "Some of them are not implemented.  If we look at libstdc++'s C++11
    status page:
    Type properties are listed as partially implemented.
    They list as missing:
    ...
    is trivially_copy_constructible
    "
[5] The GNU C++ Library, 1. Status, C++11
    https://gcc.gnu.org/onlinedocs/gcc-4.8.3/libstdc++/manual/manual/status.html#status.iso.2011
    "
    | Section  | Description     | Status  | Comments
    ...
    | 20.9.4.3 | Type properties | Partial | Missing
    is_trivially_copyable, is_trivially_constructible,
    is_trivially_default_constructible, is_trivially_copy_constructible,
    is_trivially_move_constructible, is_trivially_assignable,
    is_trivially_default_assignable, is_trivially_copy_assignable,
    is_trivially_move_assignable |
    "

Closes !117 - Require C++11 compilation
2023-09-23 15:30:15 +00:00
Mike Fleetwood 2b222978f5 Update to Google Test 1.8.1
Update to Google Test C++ test framework from release 1.8.0 to 1.8.1.
Replace the following files and directories from Google Test 1.8.1:
    LICENSE
    README.md
    include/
    src/
Note the LICENSE file is identical, where as the other files changed.

Also see commit which initially added Google Test:
    87f7170a55
    Add Google Test 1.8.0 files (#781978)
2019-01-21 16:41:31 +00:00
Mike Fleetwood 87f7170a55 Add Google Test 1.8.0 files (#781978)
Copy the Google Test C++ test framework (subset needed to build the unit
testing libraries) into the GParted project.  Copy the following files
and directories from Google Test, release 1.8.0:
    LICENSE
    README.md
    include/
    src/
into lib/gtest/.  All the files are under the BSD license as documented
in lib/gtest/LICENSE.

Bug 781978 - Add Google Test C++ test framework
2017-06-02 10:13:16 -06:00