aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormisterg <misterg@google.com>2018-10-01 13:26:47 -0400
committerGennadiy Civil <misterg@google.com>2018-10-01 14:31:07 -0400
commita7b21c950d801f44103f7d5c236b820294a5c828 (patch)
tree62a89ed8ee677b1043ab7e8cd7ee780aecd34b24
parentbe429c892406eab931210947ed07df7cc8c0dc53 (diff)
downloadgoogletest-a7b21c950d801f44103f7d5c236b820294a5c828.tar.gz
googletest-a7b21c950d801f44103f7d5c236b820294a5c828.tar.bz2
googletest-a7b21c950d801f44103f7d5c236b820294a5c828.zip
Googletest export
Internal Change PiperOrigin-RevId: 215236414
-rw-r--r--BUILD.bazel180
-rw-r--r--CMakeLists.txt24
-rw-r--r--CONTRIBUTING.md161
-rw-r--r--Makefile.am14
4 files changed, 379 insertions, 0 deletions
diff --git a/BUILD.bazel b/BUILD.bazel
new file mode 100644
index 00000000..4e5bb0f7
--- /dev/null
+++ b/BUILD.bazel
@@ -0,0 +1,180 @@
+# Copyright 2017 Google Inc.
+# All Rights Reserved.
+#
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# Author: misterg@google.com (Gennadiy Civil)
+#
+# Bazel Build for Google C++ Testing Framework(Google Test)
+
+package(default_visibility = ["//visibility:public"])
+
+licenses(["notice"])
+
+config_setting(
+ name = "windows",
+ values = {"cpu": "x64_windows"},
+)
+
+config_setting(
+ name = "windows_msvc",
+ values = {"cpu": "x64_windows_msvc"},
+)
+
+config_setting(
+ name = "has_absl",
+ values = {"define": "absl=1"},
+)
+
+# Google Test including Google Mock
+cc_library(
+ name = "gtest",
+ srcs = glob(
+ include = [
+ "googletest/src/*.cc",
+ "googletest/src/*.h",
+ "googletest/include/gtest/**/*.h",
+ "googlemock/src/*.cc",
+ "googlemock/include/gmock/**/*.h",
+ ],
+ exclude = [
+ "googletest/src/gtest-all.cc",
+ "googletest/src/gtest_main.cc",
+ "googlemock/src/gmock-all.cc",
+ "googlemock/src/gmock_main.cc",
+ ],
+ ),
+ hdrs = glob([
+ "googletest/include/gtest/*.h",
+ "googlemock/include/gmock/*.h",
+ ]),
+ copts = select(
+ {
+ ":windows": [],
+ ":windows_msvc": [],
+ "//conditions:default": ["-pthread"],
+ },
+ ),
+ defines = select(
+ {
+ ":has_absl": [
+ "GTEST_HAS_ABSL=1",
+ ],
+ "//conditions:default": [],
+ },
+ ),
+ includes = [
+ "googlemock",
+ "googlemock/include",
+ "googletest",
+ "googletest/include",
+ ],
+ linkopts = select({
+ ":windows": [],
+ ":windows_msvc": [],
+ "//conditions:default": [
+ "-pthread",
+ ],
+ }),
+ deps = select(
+ {
+ ":has_absl": [
+ "@com_google_absl//absl/debugging:failure_signal_handler",
+ "@com_google_absl//absl/debugging:stacktrace",
+ "@com_google_absl//absl/debugging:symbolize",
+ "@com_google_absl//absl/strings",
+ "@com_google_absl//absl/types:optional",
+ "@com_google_absl//absl/types:variant",
+ ],
+ "//conditions:default": [],
+ },
+ ),
+)
+
+cc_library(
+ name = "gtest_main",
+ srcs = [
+ "googlemock/src/gmock_main.cc",
+ ],
+ deps = [":gtest"],
+)
+
+# The following rules build samples of how to use gTest.
+cc_library(
+ name = "gtest_sample_lib",
+ srcs = [
+ "googletest/samples/sample1.cc",
+ "googletest/samples/sample2.cc",
+ "googletest/samples/sample4.cc",
+ ],
+ hdrs = [
+ "googletest/samples/prime_tables.h",
+ "googletest/samples/sample1.h",
+ "googletest/samples/sample2.h",
+ "googletest/samples/sample3-inl.h",
+ "googletest/samples/sample4.h",
+ ],
+)
+
+cc_test(
+ name = "gtest_samples",
+ size = "small",
+ # All Samples except:
+ # sample9 (main)
+ # sample10 (main and takes a command line option and needs to be separate)
+ srcs = [
+ "googletest/samples/sample1_unittest.cc",
+ "googletest/samples/sample2_unittest.cc",
+ "googletest/samples/sample3_unittest.cc",
+ "googletest/samples/sample4_unittest.cc",
+ "googletest/samples/sample5_unittest.cc",
+ "googletest/samples/sample6_unittest.cc",
+ "googletest/samples/sample7_unittest.cc",
+ "googletest/samples/sample8_unittest.cc",
+ ],
+ deps = [
+ "gtest_sample_lib",
+ ":gtest_main",
+ ],
+)
+
+cc_test(
+ name = "sample9_unittest",
+ size = "small",
+ srcs = ["googletest/samples/sample9_unittest.cc"],
+ deps = [":gtest"],
+)
+
+cc_test(
+ name = "sample10_unittest",
+ size = "small",
+ srcs = ["googletest/samples/sample10_unittest.cc"],
+ deps = [
+ ":gtest",
+ ],
+)
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 00000000..b6b938f2
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,24 @@
+cmake_minimum_required(VERSION 2.8.8)
+
+if (POLICY CMP0048)
+ cmake_policy(SET CMP0048 NEW)
+endif (POLICY CMP0048)
+
+project(googletest-distribution)
+set(GOOGLETEST_VERSION 1.9.0)
+set(CMAKE_CXX_STANDARD 11 CACHE STRING "Set the C++ standard to be used for compiling")
+
+enable_testing()
+
+include(CMakeDependentOption)
+include(GNUInstallDirs)
+
+#Note that googlemock target already builds googletest
+option(BUILD_GMOCK "Builds the googlemock subproject" ON)
+option(INSTALL_GTEST "Enable installation of googletest. (Projects embedding googletest may want to turn this OFF.)" ON)
+
+if(BUILD_GMOCK)
+ add_subdirectory( googlemock )
+else()
+ add_subdirectory( googletest )
+endif()
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 00000000..b52f8ee5
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,161 @@
+# How to become a contributor and submit your own code
+
+## Contributor License Agreements
+
+We'd love to accept your patches! Before we can take them, we
+have to jump a couple of legal hurdles.
+
+Please fill out either the individual or corporate Contributor License Agreement
+(CLA).
+
+ * If you are an individual writing original source code and you're sure you
+ own the intellectual property, then you'll need to sign an
+ [individual CLA](https://developers.google.com/open-source/cla/individual).
+ * If you work for a company that wants to allow you to contribute your work,
+ then you'll need to sign a
+ [corporate CLA](https://developers.google.com/open-source/cla/corporate).
+
+Follow either of the two links above to access the appropriate CLA and
+instructions for how to sign and return it. Once we receive it, we'll be able to
+accept your pull requests.
+
+## Are you a Googler?
+If you are a Googler, you can either create an internal change or work on GitHub directly.
+
+
+## Contributing A Patch
+
+1. Submit an issue describing your proposed change to the
+ [issue tracker](https://github.com/google/googletest).
+1. Please don't mix more than one logical change per submittal,
+ because it makes the history hard to follow. If you want to make a
+ change that doesn't have a corresponding issue in the issue
+ tracker, please create one.
+1. Also, coordinate with team members that are listed on the issue in
+ question. This ensures that work isn't being duplicated and
+ communicating your plan early also generally leads to better
+ patches.
+1. If your proposed change is accepted, and you haven't already done so, sign a
+ Contributor License Agreement (see details above).
+1. Fork the desired repo, develop and test your code changes.
+1. Ensure that your code adheres to the existing style in the sample to which
+ you are contributing.
+1. Ensure that your code has an appropriate set of unit tests which all pass.
+1. Submit a pull request.
+
+## The Google Test and Google Mock Communities ##
+
+The Google Test community exists primarily through the
+[discussion group](http://groups.google.com/group/googletestframework)
+and the GitHub repository.
+Likewise, the Google Mock community exists primarily through their own
+[discussion group](http://groups.google.com/group/googlemock).
+You are definitely encouraged to contribute to the
+discussion and you can also help us to keep the effectiveness of the
+group high by following and promoting the guidelines listed here.
+
+### Please Be Friendly ###
+
+Showing courtesy and respect to others is a vital part of the Google
+culture, and we strongly encourage everyone participating in Google
+Test development to join us in accepting nothing less. Of course,
+being courteous is not the same as failing to constructively disagree
+with each other, but it does mean that we should be respectful of each
+other when enumerating the 42 technical reasons that a particular
+proposal may not be the best choice. There's never a reason to be
+antagonistic or dismissive toward anyone who is sincerely trying to
+contribute to a discussion.
+
+Sure, C++ testing is serious business and all that, but it's also
+a lot of fun. Let's keep it that way. Let's strive to be one of the
+friendliest communities in all of open source.
+
+As always, discuss Google Test in the official GoogleTest discussion group.
+You don't have to actually submit code in order to sign up. Your participation
+itself is a valuable contribution.
+
+## Style
+
+To keep the source consistent, readable, diffable and easy to merge,
+we use a fairly rigid coding style, as defined by the [google-styleguide](https://github.com/google/styleguide) project. All patches will be expected
+to conform to the style outlined [here](https://google.github.io/styleguide/cppguide.html).
+Use [.clang-format](https://github.com/google/googletest/blob/master/.clang-format) to check your formatting
+
+## Requirements for Contributors ###
+
+If you plan to contribute a patch, you need to build Google Test,
+Google Mock, and their own tests from a git checkout, which has
+further requirements:
+
+ * [Python](https://www.python.org/) v2.3 or newer (for running some of
+ the tests and re-generating certain source files from templates)
+ * [CMake](https://cmake.org/) v2.6.4 or newer
+ * [GNU Build System](https://en.wikipedia.org/wiki/GNU_Build_System)
+ including automake (>= 1.9), autoconf (>= 2.59), and
+ libtool / libtoolize.
+
+## Developing Google Test ##
+
+This section discusses how to make your own changes to Google Test.
+
+### Testing Google Test Itself ###
+
+To make sure your changes work as intended and don't break existing
+functionality, you'll want to compile and run Google Test's own tests.
+For that you can use CMake:
+
+ mkdir mybuild
+ cd mybuild
+ cmake -Dgtest_build_tests=ON ${GTEST_DIR}
+
+Make sure you have Python installed, as some of Google Test's tests
+are written in Python. If the cmake command complains about not being
+able to find Python (`Could NOT find PythonInterp (missing:
+PYTHON_EXECUTABLE)`), try telling it explicitly where your Python
+executable can be found:
+
+ cmake -DPYTHON_EXECUTABLE=path/to/python -Dgtest_build_tests=ON ${GTEST_DIR}
+
+Next, you can build Google Test and all of its own tests. On \*nix,
+this is usually done by 'make'. To run the tests, do
+
+ make test
+
+All tests should pass.
+
+### Regenerating Source Files ##
+
+Some of Google Test's source files are generated from templates (not
+in the C++ sense) using a script.
+For example, the
+file include/gtest/internal/gtest-type-util.h.pump is used to generate
+gtest-type-util.h in the same directory.
+
+You don't need to worry about regenerating the source files
+unless you need to modify them. You would then modify the
+corresponding `.pump` files and run the '[pump.py](googletest/scripts/pump.py)'
+generator script. See the [Pump Manual](googletest/docs/PumpManual.md).
+
+## Developing Google Mock ###
+
+This section discusses how to make your own changes to Google Mock.
+
+#### Testing Google Mock Itself ####
+
+To make sure your changes work as intended and don't break existing
+functionality, you'll want to compile and run Google Test's own tests.
+For that you'll need Autotools. First, make sure you have followed
+the instructions above to configure Google Mock.
+Then, create a build output directory and enter it. Next,
+
+ ${GMOCK_DIR}/configure # try --help for more info
+
+Once you have successfully configured Google Mock, the build steps are
+standard for GNU-style OSS packages.
+
+ make # Standard makefile following GNU conventions
+ make check # Builds and runs all tests - all should pass.
+
+Note that when building your project against Google Mock, you are building
+against Google Test as well. There is no need to configure Google Test
+separately.
diff --git a/Makefile.am b/Makefile.am
new file mode 100644
index 00000000..433eefeb
--- /dev/null
+++ b/Makefile.am
@@ -0,0 +1,14 @@
+## Process this file with automake to produce Makefile.in
+ACLOCAL_AMFLAGS = -I m4
+
+AUTOMAKE_OPTIONS = foreign
+
+# Build . before src so that our all-local and clean-local hooks kicks in at
+# the right time.
+SUBDIRS = googletest googlemock
+
+EXTRA_DIST = \
+ BUILD.bazel \
+ CMakeLists.txt \
+ README.md \
+ WORKSPACE