Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit eae45315 authored by weisu's avatar weisu
Browse files

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
parent 3aec887b
Loading
Loading
Loading
Loading
+12 −5
Original line number Diff line number Diff line
@@ -3,6 +3,7 @@

#include "ZipAlign.h"

#include <filesystem>
#include <stdio.h>
#include <string>

@@ -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);