Open source {workspace_layout,startup_options,option_processor}_test.
Additionally rewrite the option_processor_test to make it more flexible.
PiperOrigin-RevId: 160958736
diff --git a/src/test/cpp/workspace_layout_test.cc b/src/test/cpp/workspace_layout_test.cc
index 194e08f..e2a68ee 100644
--- a/src/test/cpp/workspace_layout_test.cc
+++ b/src/test/cpp/workspace_layout_test.cc
@@ -12,53 +12,50 @@
// 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 "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 <memory>
+
+#include "src/main/cpp/blaze_util_platform.h"
+#include "src/main/cpp/util/file.h"
#include "gtest/gtest.h"
-#include "third_party/bazel/src/main/cpp/blaze_util_platform.h"
-#include "third_party/bazel/src/main/cpp/util/file.h"
namespace blaze {
class WorkspaceLayoutTest : public ::testing::Test {
protected:
- WorkspaceLayoutTest() : workspace_layout_(new WorkspaceLayout()) {}
+ WorkspaceLayoutTest() :
+ build_root_(blaze_util::JoinPath(
+ blaze::GetEnv("TEST_TMPDIR"), "build_root")),
+ 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);
+ void SetUp() override {
+ ASSERT_TRUE(blaze_util::MakeDirectories(build_root_, 0755));
+ ASSERT_TRUE(blaze_util::WriteFile(
+ "", blaze_util::JoinPath(build_root_, "WORKSPACE"), 0755));
}
- void TearDown() {
- file::RecursivelyDelete(build_root_, file::Defaults()).IgnoreError();
+ void TearDown() override {
+ // TODO(bazel-team): The code below deletes all the files in the workspace
+ // but it intentionally skips directories. As a consequence, there may be
+ // empty directories from test to test. Remove this once
+ // blaze_util::DeleteDirectories(path) exists.
+ std::vector<std::string> files_in_workspace;
+ blaze_util::GetAllFilesUnder(build_root_, &files_in_workspace);
+ for (const std::string& file : files_in_workspace) {
+ blaze_util::UnlinkPath(file);
+ }
}
- string build_root_;
+ const std::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";
+ std::string cwd = "foo/bar";
ASSERT_EQ("", workspace_layout_->GetWorkspace(cwd));
ASSERT_FALSE(workspace_layout_->InWorkspace(cwd));
@@ -66,7 +63,7 @@
ASSERT_EQ(build_root_, workspace_layout_->GetWorkspace(cwd));
ASSERT_TRUE(workspace_layout_->InWorkspace(build_root_));
- cwd = file::JoinPath(build_root_, "foo/bar");
+ cwd = blaze_util::JoinPath(build_root_, cwd);
ASSERT_EQ(build_root_, workspace_layout_->GetWorkspace(cwd));
}