#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");staticboolIsNonEmptyMessage(constchar*flagname,conststd::string&value){returnvalue[0]!='\0';}DEFINE_validator(message,&IsNonEmptyMessage);namespacethird_party{namespacegflags_test{TEST(GflagsTest,ParseAndPrint){gflags::SetUsageMessage("some usage message");gflags::SetVersionString("1.0.0");intargc=1;charprogram_name[]="gflags_test";char**argv=newchar*[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