aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/cpp
diff options
context:
space:
mode:
authorGravatar ccalvarin <ccalvarin@google.com>2018-04-20 13:56:55 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-04-20 13:58:51 -0700
commit5305a36b93f2ad0a1b499bc916e6cf365676532c (patch)
treefd59c966cda802c6f36831ee47f3317cbf0343f1 /src/test/cpp
parentfc44daf3c4142a588c4a553c8abfd6f28bbaf4f3 (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/BUILD14
-rw-r--r--src/test/cpp/bazel_startup_options_test.cc114
-rw-r--r--src/test/cpp/option_processor_test.cc3
-rw-r--r--src/test/cpp/startup_options_test.cc48
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{