提交 ca476f48 编写于 作者: Y Yi Wang

Add dependency to gflags and related tests

上级 3b1acd2e
......@@ -15,3 +15,11 @@ new_http_archive(
build_file = "third_party/gtest.BUILD",
strip_prefix = "googletest-release-1.7.0",
)
# External dependency to gflags. This method comes from
# https://github.com/gflags/example/blob/master/WORKSPACE.
git_repository(
name = "gflags",
tag = "v2.2.0",
remote = "https://github.com/gflags/gflags.git"
)
licenses(["notice"]) # Apache 2.0
cc_test(
name = "gflags_test",
srcs = ["gflags_test.cc"],
copts = ["-Iexternal/gtest/include"],
deps = [
"@gtest//:main",
"@gflags//:gflags",
],
)
#include <iostream>
#include <string>
#include "gflags/gflags.h"
#include "gtest/gtest.h"
DEFINE_bool(verbose, false, "Display program name before message");
DEFINE_string(message, "Hello world!", "Message to print");
static bool IsNonEmptyMessage(const char *flagname, const std::string &value)
{
return value[0] != '\0';
}
DEFINE_validator(message, &IsNonEmptyMessage);
namespace third_party {
namespace gflags_test {
TEST(GflagsTest, ParseAndPrint) {
gflags::SetUsageMessage("some usage message");
gflags::SetVersionString("1.0.0");
int argc = 1;
char program_name[] = "gflags_test";
char** argv = new char*[2];
argv[0] = program_name;
argv[1] = NULL;
gflags::ParseCommandLineFlags(&argc, reinterpret_cast<char***>(&argv), true);
EXPECT_EQ("gflags_test", std::string(gflags::ProgramInvocationShortName()));
EXPECT_EQ("Hello world!", FLAGS_message);
gflags::ShutDownCommandLineFlags();
}
} // namespace gflags_test
} // namespace third_party
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册