diff --git a/oss-internship-2020/libarchive/CMakeLists.txt b/oss-internship-2020/libarchive/CMakeLists.txt index 0c79260..3b8e375 100644 --- a/oss-internship-2020/libarchive/CMakeLists.txt +++ b/oss-internship-2020/libarchive/CMakeLists.txt @@ -20,8 +20,7 @@ set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED 17) # Build SAPI library -#set(SAPI_ROOT "" CACHE PATH "Path to the Sandboxed API source tree") -set(SAPI_ROOT "/usr/local/google/home/amedar/internship/sandboxed-api" CACHE PATH "Path to the Sandboxed API source tree") +set(SAPI_ROOT "" CACHE PATH "Path to the Sandboxed API source tree") include(FetchContent) FetchContent_Declare( diff --git a/oss-internship-2020/libarchive/test/minitar_test.cc b/oss-internship-2020/libarchive/test/minitar_test.cc index 2e34f0f..255c566 100644 --- a/oss-internship-2020/libarchive/test/minitar_test.cc +++ b/oss-internship-2020/libarchive/test/minitar_test.cc @@ -16,6 +16,7 @@ #include "build/googletest-src/googlemock/include/gmock/gmock-more-matchers.h" #include "gtest/gtest.h" +#include "sandboxed_api/sandbox2/util/path.h" #include "sandboxed_api/util/status_matchers.h" #include "sapi_minitar.h" @@ -259,4 +260,19 @@ TEST_F(MiniTarTest, TestBZIP2) { CheckFile(std::string(kFile3_)); } +TEST_F(MiniTarTest, TestPaths) { + // These should be equivalent to kFile1_ and kDir1_ after cleaning. + std::vector v = {JoinPath("a/b/../../c/../", kFile1_).data(), + JoinPath("d/../e/././///../", kDir1_).data()}; + create(id_.data(), 0, VecStringToCharPtrArr(v), false); + + ASSERT_THAT(chdir(tmp_dir_.data()), Eq(0)) + << "Could not chdir into test data directory"; + extract(JoinPath(data_dir_, id_).data(), 1, 0, false); + + CheckFile(std::string(kFile1_)); + CheckFile(std::string(kFile2_)); + CheckFile(std::string(kFile3_)); +} + } // namespace