From eae45315cd3b3511e681eb808ac81f70ba4ba737 Mon Sep 17 00:00:00 2001 From: weisu Date: Mon, 13 Dec 2021 17:56:12 +0000 Subject: [PATCH] Write files in a temporary directory Avoid writing test files in the build output directory which fails when run with Bazel. This happens because Bazel's sandboxing environment ensures that the test's working directory is unwritable. See https://docs.bazel.build/versions/main/sandboxing.html for more information. Bug: 209687942 Test: atest --bazel-mode zipalign_tests Test: atest zipalign_tests Change-Id: Ie22f464830c1ffe4d38a94a16dbd39dafa7fe317 --- tools/zipalign/tests/src/align_test.cpp | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/tools/zipalign/tests/src/align_test.cpp b/tools/zipalign/tests/src/align_test.cpp index 96d4f7365f..ff45187690 100644 --- a/tools/zipalign/tests/src/align_test.cpp +++ b/tools/zipalign/tests/src/align_test.cpp @@ -3,6 +3,7 @@ #include "ZipAlign.h" +#include #include #include @@ -16,9 +17,15 @@ static std::string GetTestPath(const std::string& filename) { return test_data_dir + filename; } +static std::string GetTempPath(const std::string& filename) { + std::filesystem::path temp_path = std::filesystem::path(testing::TempDir()); + temp_path += filename; + return temp_path.string(); +} + TEST(Align, Unaligned) { const std::string src = GetTestPath("unaligned.zip"); - const std::string dst = GetTestPath("unaligned_out.zip"); + const std::string dst = GetTempPath("unaligned_out.zip"); int processed = process(src.c_str(), dst.c_str(), 4, true, false, 4096); ASSERT_EQ(0, processed); @@ -29,8 +36,8 @@ TEST(Align, Unaligned) { TEST(Align, DoubleAligment) { const std::string src = GetTestPath("unaligned.zip"); - const std::string tmp = GetTestPath("da_aligned.zip"); - const std::string dst = GetTestPath("da_d_aligner.zip"); + const std::string tmp = GetTempPath("da_aligned.zip"); + const std::string dst = GetTempPath("da_d_aligner.zip"); int processed = process(src.c_str(), tmp.c_str(), 4, true, false, 4096); ASSERT_EQ(0, processed); @@ -60,7 +67,7 @@ TEST(Align, DoubleAligment) { // Directory. TEST(Align, Holes) { const std::string src = GetTestPath("holes.zip"); - const std::string dst = GetTestPath("holes_out.zip"); + const std::string dst = GetTempPath("holes_out.zip"); int processed = process(src.c_str(), dst.c_str(), 4, true, false, 4096); ASSERT_EQ(0, processed); @@ -72,7 +79,7 @@ TEST(Align, Holes) { // Align a zip where LFH order and CD entries differ. TEST(Align, DifferenteOrders) { const std::string src = GetTestPath("diffOrders.zip"); - const std::string dst = GetTestPath("diffOrders_out.zip"); + const std::string dst = GetTempPath("diffOrders_out.zip"); int processed = process(src.c_str(), dst.c_str(), 4, true, false, 4096); ASSERT_EQ(0, processed);