blob: 82e07cc5a6fb6657169a7c845bf56cd91b9e5603 [file] [log] [blame]
// Part of the Crubit project, under the Apache License v2.0 with LLVM
// Exceptions. See /LICENSE for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
#include "common/test_utils.h"
#include <string>
#include <vector>
#include "gtest/gtest.h"
#include "absl/log/check.h"
#include "absl/strings/str_cat.h"
#include "absl/strings/string_view.h"
#include "common/file_io.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/Support/FileSystem.h"
#include "llvm/Support/Path.h"
namespace crubit {
static std::string MakeTmpdirForCurrentTest() {
absl::string_view current_test_name =
testing::UnitTest::GetInstance()->current_test_info()->name();
std::string current_test_tmpdir_path =
absl::StrCat(testing::TempDir(), "/", current_test_name, "/");
llvm::StringRef parent_dir =
llvm::sys::path::parent_path(current_test_tmpdir_path);
CHECK(!llvm::sys::fs::create_directories(parent_dir));
return current_test_tmpdir_path;
}
std::string WriteFileForCurrentTest(absl::string_view filename,
absl::string_view content) {
std::string path = absl::StrCat(MakeTmpdirForCurrentTest(), "/", filename);
CHECK_OK(SetFileContents(path, content));
return path;
}
std::vector<std::string> DefaultClangArgs() {
return {"-I", MakeTmpdirForCurrentTest()};
}
} // namespace crubit