From 12b7f5dbf9f6bc5bb92bf74f351fb709c7f1f71a Mon Sep 17 00:00:00 2001 From: bricoletc Date: Mon, 23 Mar 2020 11:41:45 +0000 Subject: [PATCH] Add TOC to googletest and googlemoc docs markdowns --- googlemock/docs/cheat_sheet.md | 13 +++++ googlemock/docs/cook_book.md | 86 ++++++++++++++++++++++++++++++++++ googlemock/docs/for_dummies.md | 9 ++++ googlemock/docs/gmock_faq.md | 20 ++++++++ googlemock/docs/pump_manual.md | 10 ++++ googletest/docs/advanced.md | 48 +++++++++++++++++++ googletest/docs/faq.md | 31 ++++++++++++ googletest/docs/pkgconfig.md | 8 ++++ googletest/docs/primer.md | 14 ++++++ 9 files changed, 239 insertions(+) diff --git a/googlemock/docs/cheat_sheet.md b/googlemock/docs/cheat_sheet.md index 1e0541ba..e12e834f 100644 --- a/googlemock/docs/cheat_sheet.md +++ b/googlemock/docs/cheat_sheet.md @@ -1,5 +1,18 @@ ## gMock Cheat Sheet +## Contents +1. [Defining a Mock Class](#defining-a-mock-class) +1. [Using Mocks in Tests {#UsingMocks}](#using-mocks-in-tests-usingmocks) +1. [Setting Default Actions {#OnCall}](#setting-default-actions-oncall) +1. [Setting Expectations {#ExpectCall}](#setting-expectations-expectcall) +1. [Matchers {#MatcherList}](#matchers-matcherlist) +1. [Actions {#ActionList}](#actions-actionlist) +1. [Cardinalities {#CardinalityList}](#cardinalities-cardinalitylist) +1. [Expectation Order](#expectation-order) +1. [Verifying and Resetting a Mock](#verifying-and-resetting-a-mock) +1. [Mock Classes](#mock-classes) +1. [Flags](#flags) + diff --git a/googlemock/docs/cook_book.md b/googlemock/docs/cook_book.md index 51eb94a9..8bdbbb0d 100644 --- a/googlemock/docs/cook_book.md +++ b/googlemock/docs/cook_book.md @@ -1,5 +1,91 @@ # gMock Cookbook +## Contents +1. [Creating Mock Classes](#creating-mock-classes) + 1. [Dealing with unprotected commas](#dealing-with-unprotected-commas) + 1. [Mocking Private or Protected Methods](#mocking-private-or-protected-methods) + 1. [Mocking Overloaded Methods](#mocking-overloaded-methods) + 1. [Mocking Class Templates](#mocking-class-templates) + 1. [Mocking Non-virtual Methods {#MockingNonVirtualMethods}](#mocking-non-virtual-methods-mockingnonvirtualmethods) + 1. [Mocking Free Functions](#mocking-free-functions) + 1. [Old-Style `MOCK_METHODn` Macros](#old-style-mock_methodn-macros) + 1. [The Nice, the Strict, and the Naggy {#NiceStrictNaggy}](#the-nice-the-strict-and-the-naggy-nicestrictnaggy) + 1. [Simplifying the Interface without Breaking Existing Code {#SimplerInterfaces}](#simplifying-the-interface-without-breaking-existing-code-simplerinterfaces) + 1. [Alternative to Mocking Concrete Classes](#alternative-to-mocking-concrete-classes) + 1. [Delegating Calls to a Fake {#DelegatingToFake}](#delegating-calls-to-a-fake-delegatingtofake) + 1. [Delegating Calls to a Real Object](#delegating-calls-to-a-real-object) + 1. [Delegating Calls to a Parent Class](#delegating-calls-to-a-parent-class) +1. [Using Matchers](#using-matchers) + 1. [Matching Argument Values Exactly](#matching-argument-values-exactly) + 1. [Using Simple Matchers](#using-simple-matchers) + 1. [Combining Matchers {#CombiningMatchers}](#combining-matchers-combiningmatchers) + 1. [Casting Matchers {#SafeMatcherCast}](#casting-matchers-safematchercast) + 1. [Selecting Between Overloaded Functions {#SelectOverload}](#selecting-between-overloaded-functions-selectoverload) + 1. [Performing Different Actions Based on the Arguments](#performing-different-actions-based-on-the-arguments) + 1. [Matching Multiple Arguments as a Whole](#matching-multiple-arguments-as-a-whole) + 1. [Using Matchers as Predicates](#using-matchers-as-predicates) + 1. [Using Matchers in googletest Assertions](#using-matchers-in-googletest-assertions) + 1. [Using Predicates as Matchers](#using-predicates-as-matchers) + 1. [Matching Arguments that Are Not Copyable](#matching-arguments-that-are-not-copyable) + 1. [Validating a Member of an Object](#validating-a-member-of-an-object) + 1. [Validating the Value Pointed to by a Pointer Argument](#validating-the-value-pointed-to-by-a-pointer-argument) + 1. [Testing a Certain Property of an Object](#testing-a-certain-property-of-an-object) + 1. [Matching Containers](#matching-containers) + 1. [Sharing Matchers](#sharing-matchers) + 1. [Matchers must have no side-effects {#PureMatchers}](#matchers-must-have-no-side-effects-purematchers) +1. [Setting Expectations](#setting-expectations) + 1. [Knowing When to Expect {#UseOnCall}](#knowing-when-to-expect-useoncall) + 1. [Ignoring Uninteresting Calls](#ignoring-uninteresting-calls) + 1. [Disallowing Unexpected Calls](#disallowing-unexpected-calls) + 1. [Understanding Uninteresting vs Unexpected Calls {#uninteresting-vs-unexpected}](#understanding-uninteresting-vs-unexpected-calls-uninteresting-vs-unexpected) + 1. [Ignoring Uninteresting Arguments {#ParameterlessExpectations}](#ignoring-uninteresting-arguments-parameterlessexpectations) + 1. [Expecting Ordered Calls {#OrderedCalls}](#expecting-ordered-calls-orderedcalls) + 1. [Expecting Partially Ordered Calls {#PartialOrder}](#expecting-partially-ordered-calls-partialorder) + 1. [Controlling When an Expectation Retires](#controlling-when-an-expectation-retires) +1. [Using Actions](#using-actions) + 1. [Returning References from Mock Methods](#returning-references-from-mock-methods) + 1. [Returning Live Values from Mock Methods](#returning-live-values-from-mock-methods) + 1. [Combining Actions](#combining-actions) + 1. [Verifying Complex Arguments {#SaveArgVerify}](#verifying-complex-arguments-saveargverify) + 1. [Mocking Side Effects {#MockingSideEffects}](#mocking-side-effects-mockingsideeffects) + 1. [Changing a Mock Object's Behavior Based on the State](#changing-a-mock-object's-behavior-based-on-the-state) + 1. [Setting the Default Value for a Return Type {#DefaultValue}](#setting-the-default-value-for-a-return-type-defaultvalue) + 1. [Setting the Default Actions for a Mock Method](#setting-the-default-actions-for-a-mock-method) + 1. [Using Functions/Methods/Functors/Lambdas as Actions {#FunctionsAsActions}](#using-functionsmethodsfunctorslambdas-as-actions-functionsasactions) + 1. [Using Functions with Extra Info as Actions](#using-functions-with-extra-info-as-actions) + 1. [Invoking a Function/Method/Functor/Lambda/Callback Without Arguments](#invoking-a-functionmethodfunctorlambdacallback-without-arguments) + 1. [Invoking an Argument of the Mock Function](#invoking-an-argument-of-the-mock-function) + 1. [Ignoring an Action's Result](#ignoring-an-action's-result) + 1. [Selecting an Action's Arguments {#SelectingArgs}](#selecting-an-action's-arguments-selectingargs) + 1. [Ignoring Arguments in Action Functions](#ignoring-arguments-in-action-functions) + 1. [Sharing Actions](#sharing-actions) + 1. [Testing Asynchronous Behavior](#testing-asynchronous-behavior) +1. [Misc Recipes on Using gMock](#misc-recipes-on-using-gmock) + 1. [Mocking Methods That Use Move-Only Types](#mocking-methods-that-use-move-only-types) + 1. [Making the Compilation Faster](#making-the-compilation-faster) + 1. [Forcing a Verification](#forcing-a-verification) + 1. [Using Check Points {#UsingCheckPoints}](#using-check-points-usingcheckpoints) + 1. [Mocking Destructors](#mocking-destructors) + 1. [Using gMock and Threads {#UsingThreads}](#using-gmock-and-threads-usingthreads) + 1. [Controlling How Much Information gMock Prints](#controlling-how-much-information-gmock-prints) + 1. [Gaining Super Vision into Mock Calls](#gaining-super-vision-into-mock-calls) + 1. [Running Tests in Emacs](#running-tests-in-emacs) +1. [Extending gMock](#extending-gmock) + 1. [Writing New Matchers Quickly {#NewMatchers}](#writing-new-matchers-quickly-newmatchers) + 1. [Writing New Parameterized Matchers Quickly](#writing-new-parameterized-matchers-quickly) + 1. [Writing New Monomorphic Matchers](#writing-new-monomorphic-matchers) + 1. [Writing New Polymorphic Matchers](#writing-new-polymorphic-matchers) + 1. [Writing New Cardinalities](#writing-new-cardinalities) + 1. [Writing New Actions Quickly {#QuickNewActions}](#writing-new-actions-quickly-quicknewactions) + 1. [Restricting the Type of an Argument or Parameter in an ACTION](#restricting-the-type-of-an-argument-or-parameter-in-an-action) + 1. [Writing New Action Templates Quickly](#writing-new-action-templates-quickly) + 1. [Using the ACTION Object's Type](#using-the-action-object's-type) + 1. [Writing New Monomorphic Actions {#NewMonoActions}](#writing-new-monomorphic-actions-newmonoactions) + 1. [Writing New Polymorphic Actions {#NewPolyActions}](#writing-new-polymorphic-actions-newpolyactions) + 1. [Teaching gMock How to Print Your Values](#teaching-gmock-how-to-print-your-values) +1. [Useful Mocks Created Using gMock](#useful-mocks-created-using-gmock) + 1. [Mock std::function {#MockFunction}](#mock-stdfunction-mockfunction) + You can find recipes for using gMock here. If you haven't yet, please read diff --git a/googlemock/docs/for_dummies.md b/googlemock/docs/for_dummies.md index 327e6cc3..1dcb8596 100644 --- a/googlemock/docs/for_dummies.md +++ b/googlemock/docs/for_dummies.md @@ -1,5 +1,14 @@ ## gMock for Dummies {#GMockForDummies} +## Contents +1. [What Is gMock?](#what-is-gmock) +1. [Why gMock?](#why-gmock) +1. [Getting Started](#getting-started) +1. [A Case for Mock Turtles](#a-case-for-mock-turtles) +1. [Writing the Mock Class](#writing-the-mock-class) +1. [Using Mocks in Tests](#using-mocks-in-tests) +1. [Setting Expectations](#setting-expectations) + ### What Is gMock? diff --git a/googlemock/docs/gmock_faq.md b/googlemock/docs/gmock_faq.md index 214aabf1..3ebaaa71 100644 --- a/googlemock/docs/gmock_faq.md +++ b/googlemock/docs/gmock_faq.md @@ -1,5 +1,25 @@ ## Legacy gMock FAQ {#GMockFaq} +## Contents +1. [When I call a method on my mock object, the method for the real object is invoked instead. What's the problem?](#when-i-call-a-method-on-my-mock-object-the-method-for-the-real-object-is-invoked-instead-what's-the-problem) +1. [Can I mock a variadic function?](#can-i-mock-a-variadic-function) +1. [MSVC gives me warning C4301 or C4373 when I define a mock method with a const parameter. Why?](#msvc-gives-me-warning-c4301-or-c4373-when-i-define-a-mock-method-with-a-const-parameter-why) +1. [I can't figure out why gMock thinks my expectations are not satisfied. What should I do?](#i-can't-figure-out-why-gmock-thinks-my-expectations-are-not-satisfied-what-should-i-do) +1. [My program crashed and `ScopedMockLog` spit out tons of messages. Is it a gMock bug?](#my-program-crashed-and-scopedmocklog-spit-out-tons-of-messages-is-it-a-gmock-bug) +1. [How can I assert that a function is NEVER called?](#how-can-i-assert-that-a-function-is-never-called) +1. [I have a failed test where gMock tells me TWICE that a particular expectation is not satisfied. Isn't this redundant?](#i-have-a-failed-test-where-gmock-tells-me-twice-that-a-particular-expectation-is-not-satisfied-isn't-this-redundant) +1. [I get a heapcheck failure when using a mock object, but using a real object is fine. What can be wrong?](#i-get-a-heapcheck-failure-when-using-a-mock-object-but-using-a-real-object-is-fine-what-can-be-wrong) +1. [The "newer expectations override older ones" rule makes writing expectations awkward. Why does gMock do that?](#the-newer-expectations-override-older-ones-rule-makes-writing-expectations-awkward-why-does-gmock-do-that) +1. [gMock prints a warning when a function without EXPECT_CALL is called, even if I have set its behavior using ON_CALL. Would it be reasonable not to show the warning in this case?](#gmock-prints-a-warning-when-a-function-without-expect_call-is-called-even-if-i-have-set-its-behavior-using-on_call-would-it-be-reasonable-not-to-show-the-warning-in-this-case) +1. [How can I delete the mock function's argument in an action?](#how-can-i-delete-the-mock-function's-argument-in-an-action) +1. [How can I perform an arbitrary action on a mock function's argument?](#how-can-i-perform-an-arbitrary-action-on-a-mock-function's-argument) +1. [My code calls a static/global function. Can I mock it?](#my-code-calls-a-staticglobal-function-can-i-mock-it) +1. [My mock object needs to do complex stuff. It's a lot of pain to specify the actions. gMock sucks!](#my-mock-object-needs-to-do-complex-stuff-it's-a-lot-of-pain-to-specify-the-actions-gmock-sucks) +1. [I got a warning "Uninteresting function call encountered - default action taken.." Should I panic?](#i-got-a-warning-uninteresting-function-call-encountered---default-action-taken-should-i-panic) +1. [I want to define a custom action. Should I use Invoke() or implement the ActionInterface interface?](#i-want-to-define-a-custom-action-should-i-use-invoke-or-implement-the-actioninterface-interface) +1. [I use SetArgPointee() in WillOnce(), but gcc complains about "conflicting return type specified". What does it mean?](#i-use-setargpointee-in-willonce-but-gcc-complains-about-conflicting-return-type-specified-what-does-it-mean) +1. [I have a huge mock class, and Microsoft Visual C++ runs out of memory when compiling it. What can I do?](#i-have-a-huge-mock-class-and-microsoft-visual-c++-runs-out-of-memory-when-compiling-it-what-can-i-do) + ### When I call a method on my mock object, the method for the real object is invoked instead. What's the problem? diff --git a/googlemock/docs/pump_manual.md b/googlemock/docs/pump_manual.md index cdf7c57d..209a4966 100644 --- a/googlemock/docs/pump_manual.md +++ b/googlemock/docs/pump_manual.md @@ -2,6 +2,16 @@ # The Problem +## Contents +1. [Our Solution](#our-solution) +1. [Highlights](#highlights) +1. [Examples](#examples) +1. [Constructs](#constructs) +1. [Grammar](#grammar) +1. [Code](#code) +1. [Real Examples](#real-examples) +1. [Tips](#tips) + Template and macro libraries often need to define many classes, functions, or macros that vary only (or almost only) in the number of arguments they take. It's a lot of repetitive, mechanical, and error-prone work. diff --git a/googletest/docs/advanced.md b/googletest/docs/advanced.md index 5677643d..14a1a72e 100644 --- a/googletest/docs/advanced.md +++ b/googletest/docs/advanced.md @@ -1,5 +1,53 @@ # Advanced googletest Topics +## Contents +1. [Introduction](#introduction) +1. [More Assertions](#more-assertions) + 1. [Explicit Success and Failure](#explicit-success-and-failure) + 1. [Exception Assertions](#exception-assertions) + 1. [Predicate Assertions for Better Error Messages](#predicate-assertions-for-better-error-messages) + 1. [Floating-Point Comparison](#floating-point-comparison) + 1. [Asserting Using gMock Matchers](#asserting-using-gmock-matchers) + 1. [More String Assertions](#more-string-assertions) + 1. [Windows HRESULT assertions](#windows-hresult-assertions) + 1. [Type Assertions](#type-assertions) + 1. [Assertion Placement](#assertion-placement) +1. [Teaching googletest How to Print Your Values](#teaching-googletest-how-to-print-your-values) +1. [Death Tests](#death-tests) + 1. [How to Write a Death Test](#how-to-write-a-death-test) + 1. [Death Test Naming](#death-test-naming) + 1. [Regular Expression Syntax](#regular-expression-syntax) + 1. [How It Works](#how-it-works) + 1. [Death Tests And Threads](#death-tests-and-threads) + 1. [Death Test Styles](#death-test-styles) + 1. [Caveats](#caveats) +1. [Using Assertions in Sub-routines](#using-assertions-in-sub-routines) + 1. [Adding Traces to Assertions](#adding-traces-to-assertions) + 1. [Propagating Fatal Failures](#propagating-fatal-failures) +1. [Logging Additional Information](#logging-additional-information) +1. [Sharing Resources Between Tests in the Same Test Suite](#sharing-resources-between-tests-in-the-same-test-suite) +1. [Global Set-Up and Tear-Down](#global-set-up-and-tear-down) +1. [Value-Parameterized Tests](#value-parameterized-tests) + 1. [How to Write Value-Parameterized Tests](#how-to-write-value-parameterized-tests) + 1. [Creating Value-Parameterized Abstract Tests](#creating-value-parameterized-abstract-tests) + 1. [Specifying Names for Value-Parameterized Test Parameters](#specifying-names-for-value-parameterized-test-parameters) +1. [Typed Tests](#typed-tests) +1. [Type-Parameterized Tests](#type-parameterized-tests) +1. [Testing Private Code](#testing-private-code) +1. ["Catching" Failures](#catching-failures) +1. [Registering tests programmatically](#registering-tests-programmatically) +1. [Getting the Current Test's Name](#getting-the-current-test's-name) +1. [Extending googletest by Handling Test Events](#extending-googletest-by-handling-test-events) + 1. [Defining Event Listeners](#defining-event-listeners) + 1. [Using Event Listeners](#using-event-listeners) + 1. [Generating Failures in Listeners](#generating-failures-in-listeners) +1. [Running Test Programs: Advanced Options](#running-test-programs-advanced-options) + 1. [Selecting Tests](#selecting-tests) + 1. [Repeating the Tests](#repeating-the-tests) + 1. [Shuffling the Tests](#shuffling-the-tests) + 1. [Controlling Test Output](#controlling-test-output) + 1. [Controlling How Failures Are Reported](#controlling-how-failures-are-reported) + ## Introduction diff --git a/googletest/docs/faq.md b/googletest/docs/faq.md index 05ecdd7d..c3b38aec 100644 --- a/googletest/docs/faq.md +++ b/googletest/docs/faq.md @@ -1,5 +1,36 @@ # Googletest FAQ +## Contents +1. [Why should test suite names and test names not contain underscore?](#why-should-test-suite-names-and-test-names-not-contain-underscore) +1. [Why does googletest support `EXPECT_EQ(NULL, ptr)` and `ASSERT_EQ(NULL, ptr)` but not `EXPECT_NE(NULL, ptr)` and `ASSERT_NE(NULL, ptr)`?](#why-does-googletest-support-expect_eqnull-ptr-and-assert_eqnull-ptr-but-not-expect_nenull-ptr-and-assert_nenull-ptr) +1. [I need to test that different implementations of an interface satisfy some common requirements. Should I use typed tests or value-parameterized tests?](#i-need-to-test-that-different-implementations-of-an-interface-satisfy-some-common-requirements-should-i-use-typed-tests-or-value-parameterized-tests) +1. [I got some run-time errors about invalid proto descriptors when using `ProtocolMessageEquals`. Help!](#i-got-some-run-time-errors-about-invalid-proto-descriptors-when-using-protocolmessageequals-help) +1. [My death test modifies some state, but the change seems lost after the death test finishes. Why?](#my-death-test-modifies-some-state-but-the-change-seems-lost-after-the-death-test-finishes-why) +1. [EXPECT_EQ(htonl(blah), blah_blah) generates weird compiler errors in opt mode. Is this a googletest bug?](#expect_eqhtonlblah-blah_blah-generates-weird-compiler-errors-in-opt-mode-is-this-a-googletest-bug) +1. [The compiler complains about "undefined references" to some static const member variables, but I did define them in the class body. What's wrong?](#the-compiler-complains-about-undefined-references-to-some-static-const-member-variables-but-i-did-define-them-in-the-class-body-what's-wrong) +1. [Can I derive a test fixture from another?](#can-i-derive-a-test-fixture-from-another) +1. [My compiler complains "void value not ignored as it ought to be." What does this mean?](#my-compiler-complains-void-value-not-ignored-as-it-ought-to-be-what-does-this-mean) +1. [My death test hangs (or seg-faults). How do I fix it?](#my-death-test-hangs-or-seg-faults-how-do-i-fix-it) +1. [Should I use the constructor/destructor of the test fixture or SetUp()/TearDown()? {#CtorVsSetUp}](#should-i-use-the-constructordestructor-of-the-test-fixture-or-setupteardown-ctorvssetup) +1. [The compiler complains "no matching function to call" when I use ASSERT_PRED*. How do I fix it?](#the-compiler-complains-no-matching-function-to-call-when-i-use-assert_pred-how-do-i-fix-it) +1. [My compiler complains about "ignoring return value" when I call RUN_ALL_TESTS(). Why?](#my-compiler-complains-about-ignoring-return-value-when-i-call-run_all_tests-why) +1. [My compiler complains that a constructor (or destructor) cannot return a value. What's going on?](#my-compiler-complains-that-a-constructor-or-destructor-cannot-return-a-value-what's-going-on) +1. [My SetUp() function is not called. Why?](#my-setup-function-is-not-called-why) +1. [I have several test suites which share the same test fixture logic, do I have to define a new test fixture class for each of them? This seems pretty tedious.](#i-have-several-test-suites-which-share-the-same-test-fixture-logic-do-i-have-to-define-a-new-test-fixture-class-for-each-of-them-this-seems-pretty-tedious) +1. [googletest output is buried in a whole bunch of LOG messages. What do I do?](#googletest-output-is-buried-in-a-whole-bunch-of-log-messages-what-do-i-do) +1. [Why should I prefer test fixtures over global variables?](#why-should-i-prefer-test-fixtures-over-global-variables) +1. [What can the statement argument in ASSERT_DEATH() be?](#what-can-the-statement-argument-in-assert_death-be) +1. [I have a fixture class `FooTest`, but `TEST_F(FooTest, Bar)` gives me error ``"no matching function for call to `FooTest::FooTest()'"``. Why?](#i-have-a-fixture-class-footest-but-test_ffootest-bar-gives-me-error-no-matching-function-for-call-to-footestfootest'-why) +1. [Why does ASSERT_DEATH complain about previous threads that were already joined?](#why-does-assert_death-complain-about-previous-threads-that-were-already-joined) +1. [Why does googletest require the entire test suite, instead of individual tests, to be named *DeathTest when it uses ASSERT_DEATH?](#why-does-googletest-require-the-entire-test-suite-instead-of-individual-tests-to-be-named-deathtest-when-it-uses-assert_death) +1. [But I don't like calling my entire test suite \*DeathTest when it contains both death tests and non-death tests. What do I do?](#but-i-don't-like-calling-my-entire-test-suite-\deathtest-when-it-contains-both-death-tests-and-non-death-tests-what-do-i-do) +1. [googletest prints the LOG messages in a death test's child process only when the test fails. How can I see the LOG messages when the death test succeeds?](#googletest-prints-the-log-messages-in-a-death-test's-child-process-only-when-the-test-fails-how-can-i-see-the-log-messages-when-the-death-test-succeeds) +1. [The compiler complains about "no match for 'operator<<'" when I use an assertion. What gives?](#the-compiler-complains-about-no-match-for-'operator<<'-when-i-use-an-assertion-what-gives) +1. [How do I suppress the memory leak messages on Windows?](#how-do-i-suppress-the-memory-leak-messages-on-windows) +1. [How can my code detect if it is running in a test?](#how-can-my-code-detect-if-it-is-running-in-a-test) +1. [How do I temporarily disable a test?](#how-do-i-temporarily-disable-a-test) +1. [Is it OK if I have two separate `TEST(Foo, Bar)` test methods defined in different namespaces?](#is-it-ok-if-i-have-two-separate-testfoo-bar-test-methods-defined-in-different-namespaces) + ## Why should test suite names and test names not contain underscore? diff --git a/googletest/docs/pkgconfig.md b/googletest/docs/pkgconfig.md index 117166cf..23a79d55 100644 --- a/googletest/docs/pkgconfig.md +++ b/googletest/docs/pkgconfig.md @@ -1,5 +1,13 @@ ## Using GoogleTest from various build systems +## Contents +1. [CMake](#cmake) +1. [Autotools](#autotools) +1. [Meson](#meson) +1. [Plain Makefiles](#plain-makefiles) +1. [Help! pkg-config can't find GoogleTest!](#help-pkg-config-can't-find-googletest) +1. [Using pkg-config in a cross-compilation setting](#using-pkg-config-in-a-cross-compilation-setting) + GoogleTest comes with pkg-config files that can be used to determine all necessary flags for compiling and linking to GoogleTest (and GoogleMock). Pkg-config is a standardised plain-text format containing diff --git a/googletest/docs/primer.md b/googletest/docs/primer.md index f581d77a..459b419f 100644 --- a/googletest/docs/primer.md +++ b/googletest/docs/primer.md @@ -1,5 +1,19 @@ # Googletest Primer +## Contents +1. [Introduction: Why googletest?](#introduction-why-googletest) +1. [Beware of the nomenclature](#beware-of-the-nomenclature) +1. [Basic Concepts](#basic-concepts) +1. [Assertions](#assertions) + 1. [Basic Assertions](#basic-assertions) + 1. [Binary Comparison](#binary-comparison) + 1. [String Comparison](#string-comparison) +1. [Simple Tests](#simple-tests) +1. [Test Fixtures: Using the Same Data Configuration for Multiple Tests {#same-data-multiple-tests}](#test-fixtures-using-the-same-data-configuration-for-multiple-tests-same-data-multiple-tests) +1. [Invoking the Tests](#invoking-the-tests) +1. [Writing the main() Function](#writing-the-main-function) +1. [Known Limitations](#known-limitations) + ## Introduction: Why googletest? *googletest* helps you write better C++ tests.