move unit tests and integration tests to separate dirs

This commit is contained in:
Valient Gough 2017-08-07 19:52:03 -04:00
parent 93dc3183d7
commit 6d130cda8b
No known key found for this signature in database
GPG Key ID: 33C65E29813C14DF
15 changed files with 34 additions and 35 deletions

View File

@ -280,25 +280,18 @@ endif (POD2MAN)
if (BUILD_UNIT_TESTS) if (BUILD_UNIT_TESTS)
enable_testing() enable_testing()
message("-- Including vendored googletest")
set(GOOGLETEST_DIR vendor/github.com/google/googletest) set(GOOGLETEST_DIR vendor/github.com/google/googletest)
add_subdirectory(${GOOGLETEST_DIR}) add_subdirectory(${GOOGLETEST_DIR})
link_directories(${CMAKE_BINARY_DIR}/${GOOGLETEST_DIR}/googletest) link_directories(${CMAKE_BINARY_DIR}/${GOOGLETEST_DIR}/googletest)
message("-- Including vendored benchmark library")
set(GOOGLEBENCH_DIR vendor/github.com/google/benchmark) set(GOOGLEBENCH_DIR vendor/github.com/google/benchmark)
set(BENCHMARK_ENABLE_TESTING OFF CACHE BOOL "benchmark tests") set(BENCHMARK_ENABLE_TESTING OFF CACHE BOOL "benchmark tests")
add_subdirectory(${GOOGLEBENCH_DIR}) add_subdirectory(${GOOGLEBENCH_DIR})
link_directories(${CMAKE_BINARY_DIR}/${GOOGLEBENCH_DIR}) link_directories(${CMAKE_BINARY_DIR}/${GOOGLEBENCH_DIR})
file(GLOB_RECURSE TEST_SOURCES "encfs/*_test.cpp") # Unit tests.
add_executable (unittests ${TEST_SOURCES}) add_subdirectory(test)
target_link_libraries(unittests gtest gtest_main encfs)
add_test(unit unittests)
file(GLOB_RECURSE BENCH_SOURCES "encfs/*_bench.cpp") # Integration test target - runs against built encfs.
add_executable (benchmarks ${BENCH_SOURCES}) add_custom_target(integration COMMAND ${CMAKE_CURRENT_LIST_DIR}/integration.sh)
target_link_libraries(benchmarks benchmark encfs)
endif () endif ()
add_custom_target(tests COMMAND ${CMAKE_CURRENT_LIST_DIR}/test.sh)

6
integration.sh Executable file
View File

@ -0,0 +1,6 @@
#!/bin/bash -eux
# Make sure we are in the directory this script is in.
cd "$(dirname "$0")"
perl -MTest::Harness -e '$$Test::Harness::debug=1; runtests @ARGV;' integration/*.t.pl

View File

@ -5,7 +5,7 @@
use File::Temp; use File::Temp;
use warnings; use warnings;
require("tests/common.pl"); require("integration/common.pl");
sub mount_encfs_reverse { sub mount_encfs_reverse {
my $p = shift; my $p = shift;

View File

@ -5,7 +5,7 @@
use File::Temp; use File::Temp;
use warnings; use warnings;
require("tests/common.pl"); require("integration/common.pl");
# Create a new empty working directory # Create a new empty working directory
sub newWorkingDir { sub newWorkingDir {
@ -58,7 +58,7 @@ sub mount_ecryptfs {
mkdir($c); mkdir($c);
mkdir($p); mkdir($p);
system("expect -c \"spawn mount -t ecryptfs $c $p\" ./tests/mount-ecryptfs.expect > /dev/null") == 0 system("expect -c \"spawn mount -t ecryptfs $c $p\" ./integration/mount-ecryptfs.expect > /dev/null") == 0
or die("ecryptfs mount failed - are you root?"); or die("ecryptfs mount failed - are you root?");
print "# ecryptfs mounted on $p\n"; print "# ecryptfs mounted on $p\n";

View File

@ -8,7 +8,7 @@ use File::Copy;
use File::Temp; use File::Temp;
use IO::Handle; use IO::Handle;
require("tests/common.pl"); require("integration/common.pl");
my $tempDir = $ENV{'TMPDIR'} || "/tmp"; my $tempDir = $ENV{'TMPDIR'} || "/tmp";

View File

@ -9,7 +9,7 @@ use File::Temp;
use IO::Handle; use IO::Handle;
use Errno qw(EROFS); use Errno qw(EROFS);
require("tests/common.pl"); require("integration/common.pl");
my $tempDir = $ENV{'TMPDIR'} || "/tmp"; my $tempDir = $ENV{'TMPDIR'} || "/tmp";

10
test.sh
View File

@ -1,10 +0,0 @@
#!/bin/bash -eux
# Make sure we are in the directory this script is in.
cd "$(dirname "$0")"
# This is very noisy so run it silently at first. Run it again with
# output if the first run fails.
./build/checkops &> /dev/null || ./build/checkops
perl -MTest::Harness -e '$$Test::Harness::debug=1; runtests @ARGV;' tests/*.t.pl

10
test/CMakeLists.txt Normal file
View File

@ -0,0 +1,10 @@
file(GLOB_RECURSE TEST_SOURCES "*_test.cpp")
add_executable (unittests ${TEST_SOURCES})
target_link_libraries(unittests gtest gtest_main encfs)
add_test(unit unittests)
file(GLOB_RECURSE BENCH_SOURCES "*_bench.cpp")
add_executable (benchmarks ${BENCH_SOURCES})
target_link_libraries(benchmarks benchmark encfs)
add_custom_target(integration COMMAND ${CMAKE_CURRENT_LIST_DIR}/integration.sh)

View File

@ -1,12 +1,12 @@
#include "gtest/gtest.h" #include "gtest/gtest.h"
#include "BlockNameIO.h" #include "encfs/BlockNameIO.h"
#include "Cipher.h" #include "encfs/Cipher.h"
#include "CipherKey.h" #include "encfs/CipherKey.h"
#include "DirNode.h" #include "encfs/DirNode.h"
#include "FSConfig.h" #include "encfs/FSConfig.h"
#include "FileUtils.h" #include "encfs/FileUtils.h"
#include "StreamNameIO.h" #include "encfs/StreamNameIO.h"
using namespace encfs; using namespace encfs;
using namespace testing; using namespace testing;

View File

@ -1,6 +1,6 @@
#include "benchmark/benchmark.h" #include "benchmark/benchmark.h"
#include "MemoryPool.h" #include "encfs/MemoryPool.h"
using namespace encfs; using namespace encfs;

View File

@ -1,6 +1,6 @@
#include "gtest/gtest.h" #include "gtest/gtest.h"
#include "MemoryPool.h" #include "encfs/MemoryPool.h"
using namespace encfs; using namespace encfs;