parent
84471565eb
commit
9285b4b21c
tensorflow/compiler/xla/legacy_flags
@ -174,16 +174,6 @@ bool ParseFlagsFromEnv(const std::vector<tensorflow::Flag>& flag_list) {
|
||||
SetArgvFromEnv(env_argv); // a no-op if already initialized
|
||||
bool result =
|
||||
tensorflow::Flags::Parse(&env_argv->argc, &env_argv->argv[0], flag_list);
|
||||
|
||||
// Fail if any flags were not recognized, ignoring argv[0], which
|
||||
// SetArgvFromEnv ensures is always present.
|
||||
if (result && env_argv->argc > 1) {
|
||||
result = false;
|
||||
for (int64 i = 1; i < env_argv->argc; ++i) {
|
||||
LOG(ERROR) << "Unrecognized TF_XLA_FLAGS flag: " << env_argv->argv[i];
|
||||
}
|
||||
}
|
||||
|
||||
env_argv_mu.unlock();
|
||||
return result;
|
||||
}
|
||||
|
@ -40,6 +40,19 @@ static void TestParseFlagsFromEnv(const char* msg) {
|
||||
std::vector<char*>* pargv;
|
||||
ResetFlagsFromEnvForTesting(&pargc, &pargv);
|
||||
|
||||
// Ensure that environment variable can be parsed when
|
||||
// no flags are expected.
|
||||
std::vector<tensorflow::Flag> empty_flag_list;
|
||||
bool parsed_ok = ParseFlagsFromEnv(empty_flag_list);
|
||||
CHECK(parsed_ok) << msg;
|
||||
const std::vector<char*>& argv_first = *pargv;
|
||||
CHECK_NE(argv_first[0], nullptr) << msg;
|
||||
int i = 0;
|
||||
while (argv_first[i] != nullptr) {
|
||||
i++;
|
||||
}
|
||||
CHECK_EQ(i, *pargc) << msg;
|
||||
|
||||
// Check that actual flags can be parsed.
|
||||
bool simple = false;
|
||||
string with_value;
|
||||
@ -53,7 +66,7 @@ static void TestParseFlagsFromEnv(const char* msg) {
|
||||
tensorflow::Flag("single_quoted", &single_quoted, ""),
|
||||
tensorflow::Flag("double_quoted", &double_quoted, ""),
|
||||
};
|
||||
bool parsed_ok = ParseFlagsFromEnv(flag_list);
|
||||
parsed_ok = ParseFlagsFromEnv(flag_list);
|
||||
CHECK_EQ(*pargc, 1) << msg;
|
||||
const std::vector<char*>& argv_second = *pargv;
|
||||
CHECK_NE(argv_second[0], nullptr) << msg;
|
||||
@ -81,21 +94,6 @@ TEST(ParseFlagsFromEnv, Basic) {
|
||||
TestParseFlagsFromEnv("(flags in environment variable)");
|
||||
}
|
||||
|
||||
// Test that the environent variable is parsed correctly.
|
||||
TEST(ParseFlagsFromEnv, UnrecognizedFlag) {
|
||||
// Prepare environment.
|
||||
setenv("TF_XLA_FLAGS", "--simple=xyz --foobar", true /*overwrite*/);
|
||||
int* pargc;
|
||||
std::vector<char*>* pargv;
|
||||
ResetFlagsFromEnvForTesting(&pargc, &pargv);
|
||||
|
||||
string simple;
|
||||
std::vector<tensorflow::Flag> flag_list = {
|
||||
tensorflow::Flag("simple", &simple, ""),
|
||||
};
|
||||
EXPECT_FALSE(ParseFlagsFromEnv(flag_list));
|
||||
}
|
||||
|
||||
// Test that a file named by the environent variable is parsed correctly.
|
||||
TEST(ParseFlagsFromEnv, File) {
|
||||
// environment variables where tmp dir may be specified.
|
||||
|
Loading…
Reference in New Issue
Block a user