diff options
author | ccalvarin <ccalvarin@google.com> | 2018-04-20 13:56:55 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-04-20 13:58:51 -0700 |
commit | 5305a36b93f2ad0a1b499bc916e6cf365676532c (patch) | |
tree | fd59c966cda802c6f36831ee47f3317cbf0343f1 /src/test/cpp | |
parent | fc44daf3c4142a588c4a553c8abfd6f28bbaf4f3 (diff) |
Remove overlap between the blazerc and bazelrc names.
Bazel now has its own subclass of StartupOptions to specify bazel-only options. This is needed for https://github.com/bazelbuild/bazel/issues/4502.
RELNOTES(INC): No longer accepts --blazerc or --[no]master_blazerc, accepts bazelrc name only.
PiperOrigin-RevId: 193718297
Diffstat (limited to 'src/test/cpp')
-rw-r--r-- | src/test/cpp/BUILD | 14 | ||||
-rw-r--r-- | src/test/cpp/bazel_startup_options_test.cc | 114 | ||||
-rw-r--r-- | src/test/cpp/option_processor_test.cc | 3 | ||||
-rw-r--r-- | src/test/cpp/startup_options_test.cc | 48 |
4 files changed, 144 insertions, 35 deletions
diff --git a/src/test/cpp/BUILD b/src/test/cpp/BUILD index 09bb3b1b0b..ec7b708007 100644 --- a/src/test/cpp/BUILD +++ b/src/test/cpp/BUILD @@ -32,6 +32,7 @@ cc_test( srcs = ["option_processor_test.cc"], tags = ["requires_internet"], deps = [ + "//src/main/cpp:bazel_startup_options", "//src/main/cpp:blaze_util", "//src/main/cpp:option_processor", "//src/main/cpp:rc_file", @@ -80,6 +81,19 @@ cc_test( ) cc_test( + name = "bazel_startup_options_test", + size = "small", + srcs = ["bazel_startup_options_test.cc"], + deps = [ + ":test_util", + "//src/main/cpp:bazel_startup_options", + "//src/main/cpp:blaze_util", + "//src/main/cpp:workspace_layout", + "@com_google_googletest//:gtest_main", + ], +) + +cc_test( name = "workspace_layout_test", size = "small", srcs = ["workspace_layout_test.cc"], diff --git a/src/test/cpp/bazel_startup_options_test.cc b/src/test/cpp/bazel_startup_options_test.cc new file mode 100644 index 0000000000..2ac4c7f61b --- /dev/null +++ b/src/test/cpp/bazel_startup_options_test.cc @@ -0,0 +1,114 @@ +// Copyright 2018 The Bazel Authors. All rights reserved. +// +// 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. + +#include "src/main/cpp/bazel_startup_options.h" + +#include <stdlib.h> + +#include "src/main/cpp/blaze_util_platform.h" +#include "src/main/cpp/workspace_layout.h" +#include "src/test/cpp/test_util.h" +#include "googletest/include/gtest/gtest.h" + +namespace blaze { + +class BazelStartupOptionsTest : public ::testing::Test { + protected: + BazelStartupOptionsTest() : workspace_layout_(new WorkspaceLayout()) {} + ~BazelStartupOptionsTest() = default; + + void SetUp() override { + // This knowingly ignores the possibility of these environment variables + // being unset because we expect our test runner to set them in all cases. + // Otherwise, we'll crash here, but this keeps our code simpler. + old_test_tmpdir_ = GetEnv("TEST_TMPDIR"); + + ReinitStartupOptions(); + } + + void TearDown() override { SetEnv("TEST_TMPDIR", old_test_tmpdir_); } + + // Recreates startup_options_ after changes to the environment. + void ReinitStartupOptions() { + startup_options_.reset(new BazelStartupOptions(workspace_layout_.get())); + } + + private: + std::unique_ptr<WorkspaceLayout> workspace_layout_; + + protected: + std::unique_ptr<BazelStartupOptions> startup_options_; + + private: + std::string old_test_tmpdir_; +}; + +TEST_F(BazelStartupOptionsTest, ProductName) { + ASSERT_EQ("Bazel", startup_options_->product_name); +} + +TEST_F(BazelStartupOptionsTest, JavaLoggingOptions) { + ASSERT_EQ("com.google.devtools.build.lib.util.SingleLineFormatter", + startup_options_->java_logging_formatter); +} + +TEST_F(BazelStartupOptionsTest, EmptyFlagsAreInvalid) { + EXPECT_FALSE(startup_options_->IsNullary("")); + EXPECT_FALSE(startup_options_->IsNullary("--")); + EXPECT_FALSE(startup_options_->IsUnary("")); + EXPECT_FALSE(startup_options_->IsUnary("--")); +} + +// TODO(#4502 related cleanup) This test serves as a catalog of the valid +// options - make this test check that the list is complete, that no options are +// missing. +TEST_F(BazelStartupOptionsTest, ValidStartupFlags) { + // IMPORTANT: Before modifying this test, please contact a Bazel core team + // member that knows the Google-internal procedure for adding/deprecating + // startup flags. + const StartupOptions* options = startup_options_.get(); + ExpectIsNullaryOption(options, "batch"); + ExpectIsNullaryOption(options, "batch_cpu_scheduling"); + ExpectIsNullaryOption(options, "block_for_lock"); + ExpectIsNullaryOption(options, "client_debug"); + ExpectIsNullaryOption(options, "deep_execroot"); + ExpectIsNullaryOption(options, "experimental_oom_more_eagerly"); + ExpectIsNullaryOption(options, "fatal_event_bus_exceptions"); + ExpectIsNullaryOption(options, "host_jvm_debug"); + ExpectIsNullaryOption(options, "master_bazelrc"); + ExpectIsNullaryOption(options, "watchfs"); + ExpectIsNullaryOption(options, "write_command_log"); + ExpectIsUnaryOption(options, "bazelrc"); + ExpectIsUnaryOption(options, "command_port"); + ExpectIsUnaryOption(options, "connect_timeout_secs"); + ExpectIsUnaryOption(options, "experimental_oom_more_eagerly_threshold"); + ExpectIsUnaryOption(options, "host_javabase"); + ExpectIsUnaryOption(options, "host_jvm_args"); + ExpectIsUnaryOption(options, "host_jvm_profile"); + ExpectIsUnaryOption(options, "invocation_policy"); + ExpectIsUnaryOption(options, "io_nice_level"); + ExpectIsUnaryOption(options, "install_base"); + ExpectIsUnaryOption(options, "max_idle_secs"); + ExpectIsUnaryOption(options, "output_base"); + ExpectIsUnaryOption(options, "output_user_root"); +} + +TEST_F(BazelStartupOptionsTest, BlazercFlagsAreNotAccepted) { + EXPECT_FALSE(startup_options_->IsNullary("--master_blazerc")); + EXPECT_FALSE(startup_options_->IsUnary("--master_blazerc")); + EXPECT_FALSE(startup_options_->IsNullary("--blazerc")); + EXPECT_FALSE(startup_options_->IsUnary("--blazerc")); +} + +} // namespace blaze diff --git a/src/test/cpp/option_processor_test.cc b/src/test/cpp/option_processor_test.cc index 19c5d34e4d..df48cce151 100644 --- a/src/test/cpp/option_processor_test.cc +++ b/src/test/cpp/option_processor_test.cc @@ -14,6 +14,7 @@ #include "src/main/cpp/option_processor.h" +#include "src/main/cpp/bazel_startup_options.h" #include "src/main/cpp/blaze_util.h" #include "src/main/cpp/blaze_util_platform.h" #include "src/main/cpp/option_processor-internal.h" @@ -41,7 +42,7 @@ class OptionProcessorTest : public ::testing::Test { option_processor_.reset(new OptionProcessor( workspace_layout_.get(), std::unique_ptr<StartupOptions>( - new StartupOptions(workspace_layout_.get())))); + new BazelStartupOptions(workspace_layout_.get())))); } void TearDown() override { diff --git a/src/test/cpp/startup_options_test.cc b/src/test/cpp/startup_options_test.cc index a42180ba9d..ecc7ac1702 100644 --- a/src/test/cpp/startup_options_test.cc +++ b/src/test/cpp/startup_options_test.cc @@ -23,6 +23,19 @@ namespace blaze { +// Minimal StartupOptions class for testing. +class FakeStartupOptions : public StartupOptions { + public: + FakeStartupOptions(const WorkspaceLayout *workspace_layout) + : StartupOptions("Bazel", workspace_layout) {} + blaze_exit_code::ExitCode ProcessArgExtra( + const char *arg, const char *next_arg, const std::string &rcfile, + const char **value, bool *is_processed, std::string *error) override { + *is_processed = false; + return blaze_exit_code::SUCCESS; + } +}; + class StartupOptionsTest : public ::testing::Test { protected: StartupOptionsTest() : workspace_layout_(new WorkspaceLayout()) {} @@ -45,7 +58,7 @@ class StartupOptionsTest : public ::testing::Test { // Recreates startup_options_ after changes to the environment. void ReinitStartupOptions() { - startup_options_.reset(new StartupOptions(workspace_layout_.get())); + startup_options_.reset(new FakeStartupOptions(workspace_layout_.get())); } private: @@ -95,39 +108,6 @@ TEST_F(StartupOptionsTest, EmptyFlagsAreInvalidTest) { EXPECT_FALSE(startup_options_->IsUnary("--")); } -TEST_F(StartupOptionsTest, ValidStartupFlagsTest) { - // IMPORTANT: Before modifying this test, please contact a Bazel core team - // member that knows the Google-internal procedure for adding/deprecating - // startup flags. - const StartupOptions* options = startup_options_.get(); - ExpectIsNullaryOption(options, "batch"); - ExpectIsNullaryOption(options, "batch_cpu_scheduling"); - ExpectIsNullaryOption(options, "block_for_lock"); - ExpectIsNullaryOption(options, "client_debug"); - ExpectIsNullaryOption(options, "deep_execroot"); - ExpectIsNullaryOption(options, "experimental_oom_more_eagerly"); - ExpectIsNullaryOption(options, "fatal_event_bus_exceptions"); - ExpectIsNullaryOption(options, "host_jvm_debug"); - ExpectIsNullaryOption(options, "master_bazelrc"); - ExpectIsNullaryOption(options, "master_blazerc"); - ExpectIsNullaryOption(options, "watchfs"); - ExpectIsNullaryOption(options, "write_command_log"); - ExpectIsUnaryOption(options, "bazelrc"); - ExpectIsUnaryOption(options, "blazerc"); - ExpectIsUnaryOption(options, "command_port"); - ExpectIsUnaryOption(options, "connect_timeout_secs"); - ExpectIsUnaryOption(options, "experimental_oom_more_eagerly_threshold"); - ExpectIsUnaryOption(options, "host_javabase"); - ExpectIsUnaryOption(options, "host_jvm_args"); - ExpectIsUnaryOption(options, "host_jvm_profile"); - ExpectIsUnaryOption(options, "invocation_policy"); - ExpectIsUnaryOption(options, "io_nice_level"); - ExpectIsUnaryOption(options, "install_base"); - ExpectIsUnaryOption(options, "max_idle_secs"); - ExpectIsUnaryOption(options, "output_base"); - ExpectIsUnaryOption(options, "output_user_root"); -} - TEST_F(StartupOptionsTest, ProcessSpaceSeparatedArgsTest) { std::string error; const std::vector<RcStartupFlag> flags{ |