commit f6d719d755c1c9dd017ca082fb28086219fcd235 Author: compile_success <980965867@qq.com> Date: Fri Nov 29 11:53:49 2019 +0800 add diff --git a/gtest-1.8.1-add-missing-pkgconfig-requires.patch b/gtest-1.8.1-add-missing-pkgconfig-requires.patch new file mode 100644 index 0000000..fdb1109 --- /dev/null +++ b/gtest-1.8.1-add-missing-pkgconfig-requires.patch @@ -0,0 +1,34 @@ +diff --git a/googlemock/cmake/gmock.pc.in b/googlemock/cmake/gmock.pc.in +index c441642..e80b506 100644 +--- a/googlemock/cmake/gmock.pc.in ++++ b/googlemock/cmake/gmock.pc.in +@@ -5,5 +5,6 @@ Name: gmock + Description: GoogleMock (without main() function) + Version: @PROJECT_VERSION@ + URL: https://github.com/google/googletest ++Requires: gtest = @PROJECT_VERSION@ + Libs: -L${libdir} -lgmock @CMAKE_THREAD_LIBS_INIT@ + Cflags: -I${includedir} @GTEST_HAS_PTHREAD_MACRO@ @CMAKE_THREAD_LIBS_INIT@ +diff --git a/googlemock/cmake/gmock_main.pc.in b/googlemock/cmake/gmock_main.pc.in +index c377dba..752f14d 100644 +--- a/googlemock/cmake/gmock_main.pc.in ++++ b/googlemock/cmake/gmock_main.pc.in +@@ -5,5 +5,6 @@ Name: gmock_main + Description: GoogleMock (with main() function) + Version: @PROJECT_VERSION@ + URL: https://github.com/google/googletest ++Requires: gmock = @PROJECT_VERSION@ + Libs: -L${libdir} -lgmock_main @CMAKE_THREAD_LIBS_INIT@ + Cflags: -I${includedir} @GTEST_HAS_PTHREAD_MACRO@ @CMAKE_THREAD_LIBS_INIT@ +diff --git a/googletest/cmake/gtest_main.pc.in b/googletest/cmake/gtest_main.pc.in +index fe25d9c..63b2b14 100644 +--- a/googletest/cmake/gtest_main.pc.in ++++ b/googletest/cmake/gtest_main.pc.in +@@ -5,6 +5,6 @@ Name: gtest_main + Description: GoogleTest (with main() function) + Version: @PROJECT_VERSION@ + URL: https://github.com/google/googletest +-Requires: gtest ++Requires: gtest = @PROJECT_VERSION@ + Libs: -L${libdir} -lgtest_main @CMAKE_THREAD_LIBS_INIT@ + Cflags: -I${includedir} @GTEST_HAS_PTHREAD_MACRO@ @CMAKE_THREAD_LIBS_INIT@ diff --git a/gtest-1.8.1-libversion.patch b/gtest-1.8.1-libversion.patch new file mode 100644 index 0000000..609ab5f --- /dev/null +++ b/gtest-1.8.1-libversion.patch @@ -0,0 +1,29 @@ +diff --git a/googlemock/CMakeLists.txt b/googlemock/CMakeLists.txt +index 8a8de1f..d67c0f5 100644 +--- a/googlemock/CMakeLists.txt ++++ b/googlemock/CMakeLists.txt +@@ -109,8 +109,10 @@ if (MSVC) + else() + cxx_library(gmock "${cxx_strict}" src/gmock-all.cc) + target_link_libraries(gmock PUBLIC gtest) ++ set_target_properties(gmock PROPERTIES VERSION ${GOOGLETEST_VERSION}) + cxx_library(gmock_main "${cxx_strict}" src/gmock_main.cc) + target_link_libraries(gmock_main PUBLIC gmock) ++ set_target_properties(gmock_main PROPERTIES VERSION ${GOOGLETEST_VERSION}) + endif() + # If the CMake version supports it, attach header directory information + # to the targets for when we are part of a parent build (ie being pulled +diff --git a/googletest/CMakeLists.txt b/googletest/CMakeLists.txt +index 9ee7940..1f3de11 100644 +--- a/googletest/CMakeLists.txt ++++ b/googletest/CMakeLists.txt +@@ -131,7 +131,9 @@ endif() + # are used for other targets, to ensure that gtest can be compiled by a user + # aggressive about warnings. + cxx_library(gtest "${cxx_strict}" src/gtest-all.cc) ++set_target_properties(gtest PROPERTIES VERSION ${GOOGLETEST_VERSION}) + cxx_library(gtest_main "${cxx_strict}" src/gtest_main.cc) ++set_target_properties(gtest_main PROPERTIES VERSION ${GOOGLETEST_VERSION}) + # If the CMake version supports it, attach header directory information + # to the targets for when we are part of a parent build (ie being pulled + # in via add_subdirectory() rather than being a standalone build). diff --git a/gtest-1.8.1-null-pointer.patch b/gtest-1.8.1-null-pointer.patch new file mode 100644 index 0000000..d062bac --- /dev/null +++ b/gtest-1.8.1-null-pointer.patch @@ -0,0 +1,17 @@ +diff --git a/googletest/src/gtest.cc b/googletest/src/gtest.cc +index 96b07c6..4af3e5a 100644 +--- a/googletest/src/gtest.cc ++++ b/googletest/src/gtest.cc +@@ -2693,10 +2693,12 @@ void TestInfo::Run() { + test->Run(); + } + ++ if (test != NULL) { + // Deletes the test object. + impl->os_stack_trace_getter()->UponLeavingGTest(); + internal::HandleExceptionsInMethodIfSupported( + test, &Test::DeleteSelf_, "the test fixture's destructor"); ++ } + + result_.set_elapsed_time(internal::GetTimeInMillis() - start); + diff --git a/gtest-PR1839-Fix-Python3-support.patch b/gtest-PR1839-Fix-Python3-support.patch new file mode 100644 index 0000000..ff4f27b --- /dev/null +++ b/gtest-PR1839-Fix-Python3-support.patch @@ -0,0 +1,149 @@ +From 149c0d24148da9a339d6c9d03e638a39c59731f6 Mon Sep 17 00:00:00 2001 +From: Peter Levine +Date: Fri, 14 Sep 2018 19:40:51 -0400 +Subject: [PATCH] Fix Python3 support + +--- + googletest/test/googletest-env-var-test.py | 4 ++-- + googletest/test/googletest-filter-unittest.py | 13 ++++++++----- + googletest/test/googletest-output-test.py | 2 +- + googletest/test/googletest-throw-on-failure-test.py | 2 +- + googletest/test/googletest-uninitialized-test.py | 4 ++-- + googletest/test/gtest_xml_output_unittest.py | 3 ++- + googletest/test/gtest_xml_test_utils.py | 2 +- + 7 files changed, 17 insertions(+), 13 deletions(-) + +diff --git a/googletest/test/googletest-env-var-test.py b/googletest/test/googletest-env-var-test.py +index e1efeee1e..2f0e406af 100755 +--- a/googletest/test/googletest-env-var-test.py ++++ b/googletest/test/googletest-env-var-test.py +@@ -45,8 +45,8 @@ + + def AssertEq(expected, actual): + if expected != actual: +- print 'Expected: %s' % (expected,) +- print ' Actual: %s' % (actual,) ++ print('Expected: %s' % (expected,)) ++ print(' Actual: %s' % (actual,)) + raise AssertionError + + +diff --git a/googletest/test/googletest-filter-unittest.py b/googletest/test/googletest-filter-unittest.py +index dc0b5bd9a..6b32f2d21 100755 +--- a/googletest/test/googletest-filter-unittest.py ++++ b/googletest/test/googletest-filter-unittest.py +@@ -42,7 +42,10 @@ + + import os + import re +-import sets ++try: ++ from sets import Set as set # For Python 2.3 compatibility ++except ImportError: ++ pass + import sys + import gtest_test_utils + +@@ -57,7 +60,7 @@ + if sys.executable: + os.environ['EMPTY_VAR'] = '' + child = gtest_test_utils.Subprocess( +- [sys.executable, '-c', 'import os; print \'EMPTY_VAR\' in os.environ']) ++ [sys.executable, '-c', 'import os; print(\'EMPTY_VAR\' in os.environ)']) + CAN_PASS_EMPTY_ENV = eval(child.output) + + +@@ -72,7 +75,7 @@ + os.environ['UNSET_VAR'] = 'X' + del os.environ['UNSET_VAR'] + child = gtest_test_utils.Subprocess( +- [sys.executable, '-c', 'import os; print \'UNSET_VAR\' not in os.environ' ++ [sys.executable, '-c', 'import os; print(\'UNSET_VAR\' not in os.environ)' + ]) + CAN_UNSET_ENV = eval(child.output) + +@@ -245,14 +248,14 @@ def AssertPartitionIsValid(self, set_var, list_of_sets): + for slice_var in list_of_sets: + full_partition.extend(slice_var) + self.assertEqual(len(set_var), len(full_partition)) +- self.assertEqual(sets.Set(set_var), sets.Set(full_partition)) ++ self.assertEqual(set(set_var), set(full_partition)) + + def AdjustForParameterizedTests(self, tests_to_run): + """Adjust tests_to_run in case value parameterized tests are disabled.""" + + global param_tests_present + if not param_tests_present: +- return list(sets.Set(tests_to_run) - sets.Set(PARAM_TESTS)) ++ return list(set(tests_to_run) - set(PARAM_TESTS)) + else: + return tests_to_run + +diff --git a/googletest/test/googletest-output-test.py b/googletest/test/googletest-output-test.py +index 2d69e353a..1a9ee6e3b 100755 +--- a/googletest/test/googletest-output-test.py ++++ b/googletest/test/googletest-output-test.py +@@ -287,7 +287,7 @@ def testOutput(self): + # sequences when we read the golden file irrespective of an operating + # system used. Therefore, we need to strip those \r's from newlines + # unconditionally. +- golden = ToUnixLineEnding(golden_file.read()) ++ golden = ToUnixLineEnding(golden_file.read().decode()) + golden_file.close() + + # We want the test to pass regardless of certain features being +diff --git a/googletest/test/googletest-throw-on-failure-test.py b/googletest/test/googletest-throw-on-failure-test.py +index 46cb9f6da..204e43e79 100755 +--- a/googletest/test/googletest-throw-on-failure-test.py ++++ b/googletest/test/googletest-throw-on-failure-test.py +@@ -68,7 +68,7 @@ def SetEnvVar(env_var, value): + def Run(command): + """Runs a command; returns True/False if its exit code is/isn't 0.""" + +- print 'Running "%s". . .' % ' '.join(command) ++ print('Running "%s". . .' % ' '.join(command)) + p = gtest_test_utils.Subprocess(command) + return p.exited and p.exit_code == 0 + +diff --git a/googletest/test/googletest-uninitialized-test.py b/googletest/test/googletest-uninitialized-test.py +index 5b7d1e74f..69595a0dd 100755 +--- a/googletest/test/googletest-uninitialized-test.py ++++ b/googletest/test/googletest-uninitialized-test.py +@@ -43,8 +43,8 @@ def Assert(condition): + + def AssertEq(expected, actual): + if expected != actual: +- print 'Expected: %s' % (expected,) +- print ' Actual: %s' % (actual,) ++ print('Expected: %s' % (expected,)) ++ print(' Actual: %s' % (actual,)) + raise AssertionError + + +diff --git a/googletest/test/gtest_xml_output_unittest.py b/googletest/test/gtest_xml_output_unittest.py +index faedd4e6c..8669f19e5 100755 +--- a/googletest/test/gtest_xml_output_unittest.py ++++ b/googletest/test/gtest_xml_output_unittest.py +@@ -266,7 +266,8 @@ def testDefaultOutputFile(self): + 'gtest_no_test_unittest') + try: + os.remove(output_file) +- except OSError, e: ++ except OSError: ++ e = sys.exc_info()[1] + if e.errno != errno.ENOENT: + raise + +diff --git a/googletest/test/gtest_xml_test_utils.py b/googletest/test/gtest_xml_test_utils.py +index 1e0358592..afcf55e0d 100755 +--- a/googletest/test/gtest_xml_test_utils.py ++++ b/googletest/test/gtest_xml_test_utils.py +@@ -94,7 +94,7 @@ def AssertEquivalentNodes(self, expected_node, actual_node): + self.assertEquals( + len(expected_children), len(actual_children), + 'number of child elements differ in element ' + actual_node.tagName) +- for child_id, child in expected_children.iteritems(): ++ for child_id, child in expected_children.items(): + self.assert_(child_id in actual_children, + '<%s> is not in <%s> (in element %s)' % + (child_id, actual_children, actual_node.tagName)) diff --git a/gtest.spec b/gtest.spec new file mode 100644 index 0000000..7c575cc --- /dev/null +++ b/gtest.spec @@ -0,0 +1,81 @@ +Name: gtest +Version: 1.8.1 +Release: 3 +Summary: Google C++ testing framework +License: BSD and ASL 2.0 +URL: https://github.com/google/googletest +Source0: https://github.com/google/googletest/archive/release-%{version}.tar.gz +Patch0000: gtest-1.8.1-null-pointer.patch +Patch0001: gtest-PR1839-Fix-Python3-support.patch +Patch0002: gtest-1.8.1-libversion.patch +Patch0003: gtest-1.8.1-add-missing-pkgconfig-requires.patch +BuildRequires: gcc-c++ cmake python3-devel +%description +This package is Google C++ testing framework,It can be compiled for +a variety of platforms.Google Test is a unit testing library for +the C++ programming language, based on the xUnit architecture, +allowing unit-testing of C sources as well as C++ with minimal source modification. + +%package -n gtest-devel +Summary: Gtest development files +Requires: gtest = %{version}-%{release} +%description -n gtest-devel +This package is libraries and head files for google testing framework. + +%package -n gmock +Summary: Google framework for writing and using C++ mock classes +Requires: gtest = %{version}-%{release} +%description -n gmock +The package is Google's framework for writing and using C++ mock classes. +It can help you derive better designs of your system and write better tests. +Gmock is a suite of testing tools developed by Google. +It is often used in combination with GTest. + +%package -n gmock-devel +Summary: Gmock development files +Requires: gmock = %{version}-%{release} +%description -n gmock-devel +The package is libraries and head files for google mocking framework. + +%prep +%autosetup -p1 -n googletest-release-%{version} +sed -e "s/set(GOOGLETEST_VERSION .*)/set(GOOGLETEST_VERSION %{version})/" -i CMakeLists.txt + + +%build +mkdir build && cd build +%cmake -DBUILD_SHARED_LIBS=ON -DPYTHON_EXECUTABLE=%{__python3} -Dgtest_build_tests=ON .. +%make_build + +%install +cd build +%make_install + +%check +cd build +make test + +%files +%license googletest/LICENSE +%{_libdir}/libgtest*.%{version} + +%files -n gtest-devel +%doc googletest/{CHANGES,CONTRIBUTORS,README.md,docs,samples} +%{_includedir}/gtest/ +%{_libdir}/libgtest*.so +%{_libdir}/cmake/GTest/ +%{_libdir}/pkgconfig/gtest* + +%files -n gmock +%license googlemock/LICENSE +%{_libdir}/libgmock*.%{version} + +%files -n gmock-devel +%doc googlemock/{CHANGES,CONTRIBUTORS,README.md,docs} +%{_includedir}/gmock/ +%{_libdir}/libgmock*.so +%{_libdir}/pkgconfig/gmock* + +%changelog +* Wed Nov 27 2019 zhujunhao - 1.8.1-3 +- Package init diff --git a/release-1.8.1.tar.gz b/release-1.8.1.tar.gz new file mode 100644 index 0000000..f0ded9c Binary files /dev/null and b/release-1.8.1.tar.gz differ