diff options
author | 2016-12-08 22:22:12 +0000 | |
---|---|---|
committer | 2016-12-09 15:33:20 +0000 | |
commit | e3e3bfae78bb3c9afe2f3bbd075a2039dd9d89b0 (patch) | |
tree | 5fe302d8c0b84928d4f5948cb13044af9aeed2d5 /src/test/cpp | |
parent | ec7b4395375ab3bb201a374b2adab8640a8feaa3 (diff) |
Description redacted.
--
PiperOrigin-RevId: 141483567
MOS_MIGRATED_REVID=141483567
Diffstat (limited to 'src/test/cpp')
-rw-r--r-- | src/test/cpp/startup_options_test.cc | 61 | ||||
-rw-r--r-- | src/test/cpp/workspace_layout_test.cc | 72 |
2 files changed, 108 insertions, 25 deletions
diff --git a/src/test/cpp/startup_options_test.cc b/src/test/cpp/startup_options_test.cc index 304282a326..ee064857c8 100644 --- a/src/test/cpp/startup_options_test.cc +++ b/src/test/cpp/startup_options_test.cc @@ -15,13 +15,14 @@ #include <stdlib.h> #include "src/main/cpp/startup_options.h" +#include "src/main/cpp/workspace_layout.h" #include "gtest/gtest.h" namespace blaze { class StartupOptionsTest : public ::testing::Test { protected: - StartupOptionsTest() = default; + StartupOptionsTest() : workspace_layout_(new WorkspaceLayout()) {} ~StartupOptionsTest() = default; void SetUp() override { @@ -30,6 +31,8 @@ class StartupOptionsTest : public ::testing::Test { // Otherwise, we'll crash here, but this keeps our code simpler. old_home_ = getenv("HOME"); old_test_tmpdir_ = getenv("TEST_TMPDIR"); + + ReinitStartupOptions(); } void TearDown() override { @@ -37,30 +40,40 @@ class StartupOptionsTest : public ::testing::Test { setenv("TEST_TMPDIR", old_test_tmpdir_.c_str(), 1); } + // Recreates startup_options_ after changes to the environment. + void ReinitStartupOptions() { + startup_options_.reset(new StartupOptions(workspace_layout_.get())); + } + + private: + std::unique_ptr<WorkspaceLayout> workspace_layout_; + + protected: + std::unique_ptr<StartupOptions> startup_options_; + private: std::string old_home_; std::string old_test_tmpdir_; }; TEST_F(StartupOptionsTest, ProductName) { - blaze::StartupOptions startup_options; - ASSERT_EQ("Bazel", startup_options.product_name); + ASSERT_EQ("Bazel", startup_options_->product_name); } TEST_F(StartupOptionsTest, OutputRootPreferTestTmpdirIfSet) { setenv("HOME", "/nonexistent/home", 1); setenv("TEST_TMPDIR", "/nonexistent/tmpdir", 1); + ReinitStartupOptions(); - blaze::StartupOptions startup_options; - ASSERT_EQ("/nonexistent/tmpdir", startup_options.output_root); + ASSERT_EQ("/nonexistent/tmpdir", startup_options_->output_root); } TEST_F(StartupOptionsTest, OutputRootUseHomeDirectory) { setenv("HOME", "/nonexistent/home", 1); unsetenv("TEST_TMPDIR"); + ReinitStartupOptions(); - blaze::StartupOptions startup_options; - ASSERT_EQ("/nonexistent/home/.cache/bazel", startup_options.output_root); + ASSERT_EQ("/nonexistent/home/.cache/bazel", startup_options_->output_root); } TEST_F(StartupOptionsTest, OutputRootUseBuiltin) { @@ -69,34 +82,32 @@ TEST_F(StartupOptionsTest, OutputRootUseBuiltin) { // that out is hard. setenv("HOME", "", 1); unsetenv("TEST_TMPDIR"); + ReinitStartupOptions(); - blaze::StartupOptions startup_options; - ASSERT_EQ("/tmp", startup_options.output_root); + ASSERT_EQ("/tmp", startup_options_->output_root); } TEST_F(StartupOptionsTest, IsNullaryTest) { - blaze::StartupOptions startup_options; - EXPECT_TRUE(startup_options.IsNullary("--master_bazelrc")); - EXPECT_TRUE(startup_options.IsNullary("--nomaster_bazelrc")); - EXPECT_FALSE(startup_options.IsNullary("")); - EXPECT_FALSE(startup_options.IsNullary("--")); - EXPECT_FALSE(startup_options.IsNullary("--master_bazelrcascasc")); + EXPECT_TRUE(startup_options_->IsNullary("--master_bazelrc")); + EXPECT_TRUE(startup_options_->IsNullary("--nomaster_bazelrc")); + EXPECT_FALSE(startup_options_->IsNullary("")); + EXPECT_FALSE(startup_options_->IsNullary("--")); + EXPECT_FALSE(startup_options_->IsNullary("--master_bazelrcascasc")); string error_msg = std::string("In argument '--master_bazelrc=foo': option ") + std::string("'--master_bazelrc' does not take a value"); - EXPECT_DEATH(startup_options.IsNullary("--master_bazelrc=foo"), + EXPECT_DEATH(startup_options_->IsNullary("--master_bazelrc=foo"), error_msg.c_str()); } TEST_F(StartupOptionsTest, IsUnaryTest) { - blaze::StartupOptions startup_options; - EXPECT_FALSE(startup_options.IsUnary("")); - EXPECT_FALSE(startup_options.IsUnary("--")); - - EXPECT_TRUE(startup_options.IsUnary("--blazerc=foo")); - EXPECT_TRUE(startup_options.IsUnary("--blazerc")); - EXPECT_TRUE(startup_options.IsUnary("--blazerc=")); - EXPECT_TRUE(startup_options.IsUnary("--blazerc")); - EXPECT_FALSE(startup_options.IsUnary("--blazercfooblah")); + EXPECT_FALSE(startup_options_->IsUnary("")); + EXPECT_FALSE(startup_options_->IsUnary("--")); + + EXPECT_TRUE(startup_options_->IsUnary("--blazerc=foo")); + EXPECT_TRUE(startup_options_->IsUnary("--blazerc")); + EXPECT_TRUE(startup_options_->IsUnary("--blazerc=")); + EXPECT_TRUE(startup_options_->IsUnary("--blazerc")); + EXPECT_FALSE(startup_options_->IsUnary("--blazercfooblah")); } } // namespace blaze diff --git a/src/test/cpp/workspace_layout_test.cc b/src/test/cpp/workspace_layout_test.cc new file mode 100644 index 0000000000..d4ab3c9c64 --- /dev/null +++ b/src/test/cpp/workspace_layout_test.cc @@ -0,0 +1,72 @@ +// Copyright 2016 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 "third_party/bazel/src/main/cpp/workspace_layout.h" + +#include <fcntl.h> + +#include "file/base/file.h" +#include "file/base/filesystem.h" +#include "file/base/helpers.h" +#include "file/base/path.h" +#include "strings/strcat.h" +#include "gtest/gtest.h" +#include "third_party/bazel/src/main/cpp/util/file.h" + +namespace blaze { + +class WorkspaceLayoutTest : public ::testing::Test { + protected: + WorkspaceLayoutTest() : workspace_layout_(new WorkspaceLayout()) {} + + void SetUp() { + build_root_ = file::JoinPath(FLAGS_test_tmpdir, "build_root"); + CHECK_OK(RecursivelyCreateDir(build_root_, file::Defaults())); + CHECK_OK(file::SetContents( + file::JoinPath(build_root_, "WORKSPACE"), "", file::Defaults())); + + // Create fake javac so that Blaze can find the javabase + string javac = file::JoinPath(FLAGS_test_tmpdir, "javac"); + CHECK_OK(file::SetContents(javac, "", file::Defaults())); + CHECK_GE(chmod(javac.c_str(), 0755), 0); + + string path(getenv("PATH")); + string test_tmpdir(getenv("TEST_TMPDIR")); + path = test_tmpdir + ":" + path; + setenv("PATH", path.c_str(), 1); + } + + void TearDown() { + file::RecursivelyDelete(build_root_, file::Defaults()).IgnoreError(); + } + + string build_root_; + const std::unique_ptr<WorkspaceLayout> workspace_layout_; +}; + +TEST_F(WorkspaceLayoutTest, GetWorkspace) { + // "" is returned when there's no workspace path. + string cwd = "foo/bar"; + ASSERT_EQ("", workspace_layout_->GetWorkspace(cwd)); + ASSERT_FALSE(workspace_layout_->InWorkspace(cwd)); + + cwd = build_root_; + ASSERT_EQ(build_root_, workspace_layout_->GetWorkspace(cwd)); + ASSERT_TRUE(workspace_layout_->InWorkspace(build_root_)); + + cwd = file::JoinPath(build_root_, "foo/bar"); + ASSERT_EQ(build_root_, workspace_layout_->GetWorkspace(cwd)); +} + +} // namespace blaze |