Skip to content

Commit

Permalink
Update TestMain fbcref doc comments
Browse files Browse the repository at this point in the history
Summary:
Updates TestMain's doc comments so it appears on the fbcref website.

Also include a demo doc file on how to use it.

Reviewed By: Gownta

Differential Revision: D66765229

fbshipit-source-id: affd6f0321e3251e2a7ec83cfb9bf6ed55649faa
  • Loading branch information
skrueger authored and facebook-github-bot committed Dec 6, 2024
1 parent 866af99 commit bd13203
Show file tree
Hide file tree
Showing 3 changed files with 55 additions and 1 deletion.
12 changes: 12 additions & 0 deletions folly/docs/examples/folly/test/common/BUCK
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
load("@fbcode_macros//build_defs:cpp_unittest.bzl", "cpp_unittest")

oncall("fbcode_entropy_wardens_folly")

cpp_unittest(
name = "test_main_demo",
srcs = ["TestMainDemo.cpp"],
test_main = "//folly/test/common:test_main_lib",
deps = [
"//folly:singleton",
],
)
38 changes: 38 additions & 0 deletions folly/docs/examples/folly/test/common/TestMainDemo.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
/*
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

/**
* This file demonstrates the usage of folly/test/common:test_main_lib,
* which is a `main` implementation that initializes gtest & folly before
* running tests.
* @file
*/

#include <folly/Singleton.h>

#include <gtest/gtest.h>

using namespace ::testing;

namespace {
/// This is a singleton that demonstrates folly will be initialized by
/// `//folly/test/common:test_main_lib`.
folly::Singleton<int> DemoSingleton([]() { return new int(42); });
} // namespace

TEST(TestMainDemo, SingletonAccess) {
ASSERT_EQ(*DemoSingleton.try_get(), 42);
}
6 changes: 5 additions & 1 deletion folly/test/common/TestMain.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,14 @@
#include <folly/portability/GFlags.h>
#include <folly/portability/GTest.h>

/*
/**
* This is the recommended main function for all tests.
* Before running all the tests, it initializes GoogleTest and folly.
* By default, this configures Google Logging (glog) to output to stderr.
*
* The Makefile links it into all of the test programs so that tests do not need
* to - and indeed should typically not - define their own main() functions
* @file
*/
FOLLY_ATTR_WEAK int main(int argc, char** argv);

Expand Down

0 comments on commit bd13203

Please sign in to comment.