Google style added

This commit is contained in:
Katarzyna Miernikiewicz 2020-09-28 14:41:32 +00:00
parent e411799d0d
commit bfa6b2502b
2 changed files with 89 additions and 84 deletions

View File

@ -16,97 +16,98 @@
namespace { namespace {
class JsonnetTest : public JsonnetTestHelper, public testing::Test { class JsonnetTest : public JsonnetTestHelper, public testing::Test {
protected: protected:
void SetUp() override { TestSetUp(); } void SetUp() override { TestSetUp(); }
void TearDown() override { TestTearDown(); } void TearDown() override { TestTearDown(); }
}; };
// Basic test // Basic test
TEST_F(JsonnetTest, SetUp_TearDown) { TEST_F(JsonnetTest, SetUp_TearDown) {
ASSERT_FALSE(if_jsonnet_vm_was_used_); ASSERT_FALSE(if_jsonnet_vm_was_used_);
ASSERT_FALSE(if_input_was_read_); ASSERT_FALSE(if_input_was_read_);
} }
// One file evaluation to one file // One file evaluation to one file
TEST_F(JsonnetTest, One_file_no_dependencies) { TEST_F(JsonnetTest, One_file_no_dependencies) {
constexpr char kInputFile[] = "arith.jsonnet"; constexpr char kInputFile[] = "arith.jsonnet";
constexpr char kOutputFile[] = "arith_output"; constexpr char kOutputFile[] = "arith_output";
constexpr char kOutputToRead[] = "tests_output/arith_output"; constexpr char kOutputToRead[] = "tests_output/arith_output";
constexpr char kOutputToExpect[] = "tests_expected_output/arith.golden"; constexpr char kOutputToExpect[] = "tests_expected_output/arith.golden";
Read_input(kInputFile); Read_input(kInputFile);
Evaluate_jsonnet_code(kBase, true); Evaluate_jsonnet_code(kBase, true);
Write_output(kOutputFile, kBase); Write_output(kOutputFile, kBase);
std::string produced_output = Read_output(kOutputToRead); std::string produced_output = Read_output(kOutputToRead);
std::string expected_output = Read_output(kOutputToExpect); std::string expected_output = Read_output(kOutputToExpect);
ASSERT_STREQ(produced_output.c_str(), expected_output.c_str()); ASSERT_STREQ(produced_output.c_str(), expected_output.c_str());
} }
// One file evaluating to one file, dependent on some other files // One file evaluating to one file, dependent on some other files
TEST_F(JsonnetTest, One_file_some_dependencies) { TEST_F(JsonnetTest, One_file_some_dependencies) {
constexpr char kInputFile[] = "negroni.jsonnet"; constexpr char kInputFile[] = "negroni.jsonnet";
constexpr char kOutputFile[] = "negroni_output"; constexpr char kOutputFile[] = "negroni_output";
constexpr char kOutputToRead[] = "tests_output/negroni_output"; constexpr char kOutputToRead[] = "tests_output/negroni_output";
constexpr char kOutputToExpect[] = "tests_expected_output/negroni.golden"; constexpr char kOutputToExpect[] = "tests_expected_output/negroni.golden";
Read_input(kInputFile); Read_input(kInputFile);
Evaluate_jsonnet_code(kBase, true); Evaluate_jsonnet_code(kBase, true);
Write_output(kOutputFile, kBase); Write_output(kOutputFile, kBase);
const std::string produced_output = Read_output(kOutputToRead); const std::string produced_output = Read_output(kOutputToRead);
const std::string expected_output = Read_output(kOutputToExpect); const std::string expected_output = Read_output(kOutputToExpect);
ASSERT_STREQ(produced_output.c_str(), expected_output.c_str()); ASSERT_STREQ(produced_output.c_str(), expected_output.c_str());
} }
// One file evaluating to two files // One file evaluating to two files
TEST_F(JsonnetTest, Multiple_files) { TEST_F(JsonnetTest, Multiple_files) {
constexpr char kInputFile[] = "multiple_files_example.jsonnet"; constexpr char kInputFile[] = "multiple_files_example.jsonnet";
constexpr char kOutputFile[] = ""; constexpr char kOutputFile[] = "";
constexpr char kOutputToRead1[] = "tests_output/first_file.json"; constexpr char kOutputToRead1[] = "tests_output/first_file.json";
constexpr char kOutputToRead2[] = "tests_output/second_file.json"; constexpr char kOutputToRead2[] = "tests_output/second_file.json";
constexpr char kOutputToExpect1[] = "tests_expected_output/first_file.json"; constexpr char kOutputToExpect1[] = "tests_expected_output/first_file.json";
constexpr char kOutputToExpect2[] = "tests_expected_output/second_file.json"; constexpr char kOutputToExpect2[] = "tests_expected_output/second_file.json";
Read_input(kInputFile); Read_input(kInputFile);
Evaluate_jsonnet_code(kMultipleFiles, true); Evaluate_jsonnet_code(kMultipleFiles, true);
Write_output(kOutputFile, kMultipleFiles); Write_output(kOutputFile, kMultipleFiles);
const std::string produced_output_1 = Read_output(kOutputToRead1); const std::string produced_output_1 = Read_output(kOutputToRead1);
const std::string produced_output_2 = Read_output(kOutputToRead2); const std::string produced_output_2 = Read_output(kOutputToRead2);
const std::string expected_output_1 = Read_output(kOutputToExpect1); const std::string expected_output_1 = Read_output(kOutputToExpect1);
const std::string expected_output_2 = Read_output(kOutputToExpect2); const std::string expected_output_2 = Read_output(kOutputToExpect2);
ASSERT_STREQ(produced_output_1.c_str(), expected_output_1.c_str()); ASSERT_STREQ(produced_output_1.c_str(), expected_output_1.c_str());
ASSERT_STREQ(produced_output_2.c_str(), expected_output_2.c_str()); ASSERT_STREQ(produced_output_2.c_str(), expected_output_2.c_str());
} }
// One file evaluating to yaml stream format // One file evaluating to yaml stream format
TEST_F(JsonnetTest, Yaml_stream) { TEST_F(JsonnetTest, Yaml_stream) {
constexpr char kInputFile[] = "yaml_stream_example.jsonnet"; constexpr char kInputFile[] = "yaml_stream_example.jsonnet";
constexpr char kOutputFile[] = "yaml_stream_example.yaml"; constexpr char kOutputFile[] = "yaml_stream_example.yaml";
constexpr char kOutputToRead[] = "tests_output/yaml_stream_example.yaml"; constexpr char kOutputToRead[] = "tests_output/yaml_stream_example.yaml";
constexpr char kOutputToExpect[] = "tests_expected_output/yaml_stream_example.yaml"; constexpr char kOutputToExpect[] =
"tests_expected_output/yaml_stream_example.yaml";
Read_input(kInputFile); Read_input(kInputFile);
Evaluate_jsonnet_code(kYamlStream, true); Evaluate_jsonnet_code(kYamlStream, true);
Write_output(kOutputFile, kYamlStream); Write_output(kOutputFile, kYamlStream);
const std::string produced_output = Read_output(kOutputToRead); const std::string produced_output = Read_output(kOutputToRead);
const std::string expected_output = Read_output(kOutputToExpect); const std::string expected_output = Read_output(kOutputToExpect);
ASSERT_STREQ(produced_output.c_str(), expected_output.c_str()); ASSERT_STREQ(produced_output.c_str(), expected_output.c_str());
} }
// One file depended on some other files not accessible by the sandbox // One file depended on some other files not accessible by the sandbox
TEST_F(JsonnetTest, Bad_evaluation) { TEST_F(JsonnetTest, Bad_evaluation) {
constexpr char kInputFile[] = "imports.jsonnet"; constexpr char kInputFile[] = "imports.jsonnet";
Read_input(kInputFile); Read_input(kInputFile);
Evaluate_jsonnet_code(kBase, false); Evaluate_jsonnet_code(kBase, false);
} }
} //namespace } // namespace

View File

@ -21,15 +21,17 @@ void JsonnetTestHelper::TestSetUp() {
int error = readlink("/proc/self/exe", buffer, 256); int error = readlink("/proc/self/exe", buffer, 256);
ASSERT_GE(error, 0); ASSERT_GE(error, 0);
std::pair<absl::string_view, absl::string_view> parts_of_path = sandbox2::file::SplitPath(buffer); std::pair<absl::string_view, absl::string_view> parts_of_path =
sandbox2::file::SplitPath(buffer);
absl::string_view binary_path = parts_of_path.first; absl::string_view binary_path = parts_of_path.first;
std::string input_path = sandbox2::file::JoinPath(binary_path, "tests_input", "dummy_input"); std::string input_path =
std::string output_path = sandbox2::file::JoinPath(binary_path, "tests_output", "dummy_input"); sandbox2::file::JoinPath(binary_path, "tests_input", "dummy_input");
std::string output_path =
sandbox2::file::JoinPath(binary_path, "tests_output", "dummy_input");
// Set up sandbox and api. // Set up sandbox and api.
sandbox_ = absl::make_unique<JsonnetBaseSandbox>(input_path, sandbox_ = absl::make_unique<JsonnetBaseSandbox>(input_path, output_path);
output_path);
ASSERT_THAT(sandbox_->Init(), sapi::IsOk()); ASSERT_THAT(sandbox_->Init(), sapi::IsOk());
api_ = absl::make_unique<JsonnetApi>(sandbox_.get()); api_ = absl::make_unique<JsonnetApi>(sandbox_.get());
@ -79,7 +81,7 @@ void JsonnetTestHelper::Evaluate_jsonnet_code(Evaluation type,
SAPI_ASSERT_OK_AND_ASSIGN( SAPI_ASSERT_OK_AND_ASSIGN(
output_ptr, output_ptr,
api_->c_jsonnet_evaluate_snippet(vm_.get(), in_file_var.PtrBefore(), api_->c_jsonnet_evaluate_snippet(vm_.get(), in_file_var.PtrBefore(),
input_.get(), error.PtrAfter())); input_.get(), error.PtrAfter()));
break; break;
} }
@ -118,8 +120,9 @@ void JsonnetTestHelper::Write_output(const char* filename_or_directory,
switch (type) { switch (type) {
case kBase: { case kBase: {
std::string out_file_in_sandboxee(std::string("/output/") + std::string out_file_in_sandboxee(
basename(const_cast<char*>(&filename_or_directory[0]))); std::string("/output/") +
basename(const_cast<char*>(&filename_or_directory[0])));
sapi::v::ConstCStr out_file_var(out_file_in_sandboxee.c_str()); sapi::v::ConstCStr out_file_var(out_file_in_sandboxee.c_str());
SAPI_ASSERT_OK_AND_ASSIGN( SAPI_ASSERT_OK_AND_ASSIGN(
@ -137,8 +140,9 @@ void JsonnetTestHelper::Write_output(const char* filename_or_directory,
} }
case kYamlStream: { case kYamlStream: {
std::string out_file_in_sandboxee(std::string("/output/") + std::string out_file_in_sandboxee(
basename(const_cast<char*>(&filename_or_directory[0]))); std::string("/output/") +
basename(const_cast<char*>(&filename_or_directory[0])));
sapi::v::ConstCStr out_file_var(out_file_in_sandboxee.c_str()); sapi::v::ConstCStr out_file_var(out_file_in_sandboxee.c_str());
SAPI_ASSERT_OK_AND_ASSIGN( SAPI_ASSERT_OK_AND_ASSIGN(
success, success,