googletest/googletest/include/gtest/internal/custom/README.md
Derek Mauro 25dcdc7e8b Use the Abseil flags library when Abseil is present
When built with `--define=absl=1` under Bazel, GoogleTest
flags use ABSL_FLAG instead of GoogleTest's own implementation.

There are some minor behavior differences in this mode.

The most notable difference is that unrecognized flags result
in a flag parsing error, and are not returned to the user though
a modified argc/argv, unless they appear after the positional
argument delimiter ("--").

For example, to pass a non-Abseil flag, you would have to do
./mytest --gtest_color=false -- --myflag=myvalue

The documentation at https://abseil.io/docs/cpp/guides/flags
may be helpful in understanding the behavior.

There are some other minor differences. For example,
passing --help results in the program returning 1 instead of 0.

https://github.com/google/googletest/issues/3646

PiperOrigin-RevId: 439312700
Change-Id: Id696a25f50f24a5b1785c45ca8fa59794f86fd5c
2022-04-04 07:39:03 -07:00

1.2 KiB

Customization Points

The custom directory is an injection point for custom user configurations.

Header gtest.h

The following macros can be defined:

  • GTEST_OS_STACK_TRACE_GETTER_ - The name of an implementation of OsStackTraceGetterInterface.
  • GTEST_CUSTOM_TEMPDIR_FUNCTION_ - An override for testing::TempDir(). See testing::TempDir for semantics and signature.

Header gtest-port.h

The following macros can be defined:

Logging:

  • GTEST_LOG_(severity)
  • GTEST_CHECK_(condition)
  • Functions LogToStderr() and FlushInfoLog() have to be provided too.

Threading:

  • GTEST_HAS_NOTIFICATION_ - Enabled if Notification is already provided.
  • GTEST_HAS_MUTEX_AND_THREAD_LOCAL_ - Enabled if Mutex and ThreadLocal are already provided. Must also provide GTEST_DECLARE_STATIC_MUTEX_(mutex) and GTEST_DEFINE_STATIC_MUTEX_(mutex)
  • GTEST_EXCLUSIVE_LOCK_REQUIRED_(locks)
  • GTEST_LOCK_EXCLUDED_(locks)

Underlying library support features

  • GTEST_HAS_CXXABI_H_

Exporting API symbols:

  • GTEST_API_ - Specifier for exported symbols.

Header gtest-printers.h

  • See documentation at gtest/gtest-printers.h for details on how to define a custom printer.