GTEST_USE_OWN_FLAGFILE support
This commit is contained in:
parent
e7dbfde8ce
commit
4d69b1607a
@ -32,6 +32,8 @@
|
||||
//
|
||||
// Flag related macros:
|
||||
// GTEST_FLAG(flag_name)
|
||||
// GTEST_USE_OWN_FLAGFILE_FLAG_ - Define to 0 when the system provides its
|
||||
// own flagfile flag parsing.
|
||||
// GTEST_DECLARE_bool_(name)
|
||||
// GTEST_DECLARE_int32_(name)
|
||||
// GTEST_DECLARE_string_(name)
|
||||
|
@ -2434,6 +2434,10 @@ typedef TypeWithSize<8>::Int TimeInMillis; // Represents time in milliseconds.
|
||||
# define GTEST_FLAG(name) FLAGS_gtest_##name
|
||||
#endif // !defined(GTEST_FLAG)
|
||||
|
||||
#if !defined(GTEST_USE_OWN_FLAGFILE_FLAG_)
|
||||
# define GTEST_USE_OWN_FLAGFILE_FLAG_ 1
|
||||
#endif // !defined(GTEST_USE_OWN_FLAGFILE_FLAG_)
|
||||
|
||||
#if !defined(GTEST_DECLARE_bool_)
|
||||
# define GTEST_FLAG_SAVER_ ::testing::internal::GTestFlagSaver
|
||||
|
||||
|
@ -296,10 +296,12 @@ GTEST_DEFINE_bool_(
|
||||
"if exceptions are enabled or exit the program with a non-zero code "
|
||||
"otherwise.");
|
||||
|
||||
#if GTEST_USE_OWN_FLAGFILE_FLAG_
|
||||
GTEST_DEFINE_string_(
|
||||
flagfile,
|
||||
internal::StringFromGTestEnv("flagfile", ""),
|
||||
"This flag specifies the flagfile to read command-line flags from.");
|
||||
#endif // GTEST_USE_OWN_FLAGFILE_FLAG_
|
||||
|
||||
namespace internal {
|
||||
|
||||
@ -5233,6 +5235,7 @@ bool ParseGoogleTestFlag(const char* const arg) {
|
||||
>EST_FLAG(throw_on_failure));
|
||||
}
|
||||
|
||||
#if GTEST_USE_OWN_FLAGFILE_FLAG_
|
||||
void LoadFlagsFromFile(const std::string& path) {
|
||||
FILE* flagfile = posix::FOpen(path.c_str(), "r");
|
||||
if (!flagfile) {
|
||||
@ -5253,6 +5256,7 @@ void LoadFlagsFromFile(const std::string& path) {
|
||||
g_help_flag = true;
|
||||
}
|
||||
}
|
||||
#endif // GTEST_USE_OWN_FLAGFILE_FLAG_
|
||||
|
||||
// Parses the command line for Google Test flags, without initializing
|
||||
// other parts of Google Test. The type parameter CharType can be
|
||||
@ -5270,9 +5274,11 @@ void ParseGoogleTestFlagsOnlyImpl(int* argc, CharType** argv) {
|
||||
bool remove_flag = false;
|
||||
if (ParseGoogleTestFlag(arg)) {
|
||||
remove_flag = true;
|
||||
#if GTEST_USE_OWN_FLAGFILE_FLAG_
|
||||
} else if (ParseStringFlag(arg, kFlagfileFlag, >EST_FLAG(flagfile))) {
|
||||
LoadFlagsFromFile(GTEST_FLAG(flagfile));
|
||||
remove_flag = true;
|
||||
#endif // GTEST_USE_OWN_FLAGFILE_FLAG_
|
||||
} else if (arg_string == "--help" || arg_string == "-h" ||
|
||||
arg_string == "-?" || arg_string == "/?" ||
|
||||
HasGoogleTestFlagPrefix(arg)) {
|
||||
|
@ -6399,6 +6399,7 @@ TEST_F(InitGoogleTestTest, WideStrings) {
|
||||
}
|
||||
# endif // GTEST_OS_WINDOWS
|
||||
|
||||
#if GTEST_USE_OWN_FLAGFILE_FLAG_
|
||||
class FlagfileTest : public InitGoogleTestTest {
|
||||
public:
|
||||
virtual void SetUp() {
|
||||
@ -6497,6 +6498,7 @@ TEST_F(FlagfileTest, SeveralFlags) {
|
||||
|
||||
GTEST_TEST_PARSING_FLAGS_(argv, argv2, expected_flags, false);
|
||||
}
|
||||
#endif // GTEST_USE_OWN_FLAGFILE_FLAG_
|
||||
|
||||
// Tests current_test_info() in UnitTest.
|
||||
class CurrentTestInfoTest : public Test {
|
||||
|
Loading…
Reference in New Issue
Block a user