Added test helper class

This commit is contained in:
Andrei Medar 2020-09-29 19:27:40 +00:00
parent e6e564f412
commit 267686afb6
7 changed files with 90 additions and 1 deletions

View File

@ -1,3 +1,4 @@
build/
.clang-format
.cache
.vscode

View File

@ -76,4 +76,4 @@ target_include_directories(libarchive_sapi INTERFACE
add_subdirectory(examples)
add_subdirectory(test)

View File

@ -15,6 +15,7 @@
add_library(sapi_minitar_lib STATIC
sapi_minitar.cc
sapi_minitar.h
sandbox.h
)
target_link_libraries(sapi_minitar_lib PUBLIC
@ -28,6 +29,10 @@ target_link_libraries(sapi_minitar_lib PUBLIC
glog::glog
)
target_include_directories(sapi_minitar_lib INTERFACE
"${PROJECT_SOURCE_DIR}/examples"
)
add_executable(sapi_minitar
sapi_minitar_main.cc
)

View File

@ -8,6 +8,7 @@
#include <unistd.h>
#include "libarchive_sapi.sapi.h"
#include "sandboxed_api/sandbox2/util/fileops.h"
#include "sapi_minitar.h"
// #include "sandboxed_api/sandbox2/util/fileops.h"
@ -119,6 +120,8 @@ class SapiLibarchiveSandboxExtract : public LibarchiveSandbox {
.AddFile(archive_path_);
if (do_extract_) {
// Get the real cwd and map it to the temporary directory in which
// the sandboxed process takes place().
std::string cwd = sandbox2::file_util::fileops::GetCWD();
policy = policy.AddDirectoryAt(cwd, tmp_dir_, false);
}

View File

@ -0,0 +1,16 @@
include(GoogleTest)
enable_testing()
add_executable(sapi_minitar_test
minitar_test.cc
)
target_link_libraries(sapi_minitar_test PRIVATE
sapi_minitar_lib
gtest
gmock
sapi::test_main
)
gtest_discover_tests(sapi_minitar_test)

View File

@ -0,0 +1,64 @@
#include <gmock/gmock-more-matchers.h>
#include "sapi_minitar.h"
#include "gtest/gtest.h"
#include "gmock/gmock.h"
#include "sandboxed_api/util/status_matchers.h"
// #include "testing/base/public/gunit.h"
// #include "testing/base/public/gunit.h"
using ::testing::IsTrue;
using ::testing::Eq;
using ::sandbox2::file_util::fileops::Exists;
namespace {
class MiniTarTest : public ::testing::Test {
protected:
static void SetUpTestSuite() {
std::cout << "SETUP INITIAL" << std::endl;
data_dir_ = CreateTempDirAtCWD();
ASSERT_THAT(Exists(data_dir_, false), IsTrue()) << "Test data directory was not created";
std::cout << "tmpdir = " << data_dir_ << std::endl;
cnt = 0;
}
static void TearDownTestSuite() {
sandbox2::file_util::fileops::DeleteRecursively(data_dir_);
std::cout << "TEARDOWN END" << std::endl;
std::cout << "cnt = " << cnt << std::endl;
}
void SetUp() override {
std::cout << "setup every test" << std::endl;
++cnt;
}
void TearDown() override {
std::cout << "teardown every test" << std::endl;
++cnt;
}
static int cnt;
static std::string data_dir_;
};
int MiniTarTest::cnt;
std::string MiniTarTest::data_dir_;
TEST_F(MiniTarTest, Test1) {
ASSERT_THAT(true, IsTrue()) << "TEST";
}
TEST_F(MiniTarTest, Test2) {
ASSERT_THAT(true, IsTrue()) << "TEST";
}
TEST(TESTEX1, TESTEX2) {
ASSERT_THAT(true, IsTrue()) << "TEST";
}
} // namespace