Skip to content

Commit

Permalink
first draft
Browse files Browse the repository at this point in the history
  • Loading branch information
Jason Gauci committed Feb 28, 2018
1 parent 76948ba commit 3f6c93f
Show file tree
Hide file tree
Showing 9 changed files with 65 additions and 93 deletions.
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
# Code Coverage
code-coverage.info
code_coverage_report

# OS/X Junk file
.DS_Store

Expand Down
4 changes: 2 additions & 2 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
[submodule "cmake/external/googletest"]
path = cmake/external/googletest
[submodule "googletest"]
path = external/googletest
url = https://github.com/google/googletest.git
54 changes: 4 additions & 50 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ cmake_minimum_required (VERSION 2.8.12)
project (EternalTCP)

option(BUILD_TEST "Build all unit test" OFF)
option(BUILD_PACKAGE "Builds the package" OFF)


set (${PROJECT_NAME}_VERSION_MAJOR 4)
Expand All @@ -11,7 +10,10 @@ set (${PROJECT_NAME}_VERSION_PATCH 1)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DET_VERSION='\"${EternalTCP_VERSION_MAJOR}.${EternalTCP_VERSION_MINOR}.${EternalTCP_VERSION_PATCH}\"'")

IF(BUILD_TEST)
add_subdirectory(${CMAKE_SOURCE_DIR}/cmake/external/googletest)
add_subdirectory(${CMAKE_SOURCE_DIR}/external/googletest)
if(UNIX)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage")
endif()
ENDIF(BUILD_TEST)

# Enable C++-11
Expand Down Expand Up @@ -180,54 +182,6 @@ if(BUILD_TEST) # Build unit tests.
add_subdirectory(test)
endif()

if(BUILD_PACKAGE)
message(STATUS "Building Package for ${PROJECT_NAME}")

set(CPACK_PACKAGE_NAME "et")
set(CPACK_PACKAGE_VERSION_MAJOR ${${PROJECT_NAME}_VERSION_MAJOR})
set(CPACK_PACKAGE_VERSION_MINOR ${${PROJECT_NAME}_VERSION_MINOR})
set(CPACK_PACKAGE_VERSION_PATCH ${${PROJECT_NAME}_VERSION_PATCH})

set(CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}")
set(CPACK_PACKAGE_VENDOR "Jason Gauci")
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Remote shell supporting IP roaming and connection loss.")
set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_SOURCE_DIR}/README.md")

# Strip files currently does not work, may be related to install TARGET
set(CPACK_SOURCE_STRIP_FILES "")
set(CPACK_STRIP_FILES "${CMAKE_BINARY_DIR}/${PROJECT_NAME}")

if(WIN32 AND NOT UNIX)
# for windows
elseif(APPLE)
# for mac
set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-mac-${CPACK_PACKAGE_VERSION}")
set(CPACK_GENERATOR "TGZ")
else()
set(CPACK_GENERATOR "DEB" "RPM")

# Debian-specific
set(CPACK_DEBIAN_PACKAGE_NAME "et")
set(CPACK_PACKAGING_INSTALL_PREFIX "/usr/")
set(CPACK_DEBIAN_PACKAGE_SECTION "bin")
# This will resolve dependencies automatically
set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)
set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Jason Gauci")

# RPM-specific
set(CPACK_RPM_PACKAGE_NAME "et")
set(CPACK_RPM_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION}")
set(CPACK_RPM_PACKAGE_REQUIRES "libsodium, protobuf, gflags, glog")

#To build and verify
#cpack && lintian -c EternalTCP-#.#.#-Linux.deb
endif()

include(CPack)

endif()

install(TARGETS etserver et
PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_EXECUTE WORLD_READ
DESTINATION "bin"
Expand Down
1 change: 0 additions & 1 deletion cmake/external/googletest
Submodule googletest deleted from a2b8a8
9 changes: 9 additions & 0 deletions coverage.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
pushd ./build
cmake ../ -DBUILD_TEST=ON -DBUILD_GTEST=ON
make -j8
popd
./build/test/EternalTCP-test
lcov --directory ./build --capture --output-file ./code-coverage.info -rc lcov_branch_coverage=1
genhtml code-coverage.info --branch-coverage --output-directory ./code_coverage_report/
echo "Report generated in code_coverage_report"
open code_coverage_report/index.html
1 change: 1 addition & 0 deletions external/googletest
Submodule googletest added at ec44c6
64 changes: 34 additions & 30 deletions test/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,33 +1,37 @@

# set the path for all test files
set(GTEST_PATH ${PROJECT_SOURCE_DIR}/test)
#
# Add your unit tests here
#
set(GTEST_SRC
test_template.cpp
)
# Add test executable target
set(TESTPREFIX gtest_)
foreach(SRC_LINE ${GTEST_SRC})
string(REPLACE ".cpp" "" FILE_LINE ${SRC_LINE})

add_executable(${FILE_LINE} ${SRC_LINE})
add_dependencies(${FILE_LINE} ${PROJECT_NAME}-static gtest gtest_main gmock gmock_main)
file(GLOB TEST_SRCS Test*.cpp )
add_executable(
${PROJECT_NAME}-test

${TEST_SRCS}
)

add_dependencies(
${PROJECT_NAME}-test
TerminalCommon
${PROJECT_NAME}-static
gtest
gtest_main
gmock
gmock_main)

target_link_libraries(
${FILE_LINE}
${CMAKE_THREAD_LIBS_INIT}
${PROJECT_NAME}-static
gtest
gtest_main
gmock
gmock_main
${GLOG_LIBRARIES}
${GFLAGS_LIBRARIES}
${sodium_LIBRARY_RELEASE}
resolv
util
)
add_test(${FILE_LINE} ${FILE_LINE})
endforeach()
target_link_libraries(
${PROJECT_NAME}-test
TerminalCommon
${PROJECT_NAME}-static
${CMAKE_THREAD_LIBS_INIT}
gtest
gtest_main
gmock
gmock_main
${GLOG_LIBRARIES}
${GFLAGS_LIBRARIES}
${sodium_LIBRARY_RELEASE}
resolv
util
)
add_test(
${PROJECT_NAME}-test
${PROJECT_NAME}-test
)
10 changes: 0 additions & 10 deletions test/test_template.cpp → test/TestCryptoHandler.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@

using namespace et;

TEST(A, B) { SUCCEED(); }

TEST(CryptoHandler, DoesEncryptDecrypt) {
string key = "12345678901234567890123456789012";
shared_ptr<CryptoHandler> encryptHandler(new CryptoHandler(key, 0));
Expand All @@ -18,11 +16,3 @@ TEST(CryptoHandler, DoesEncryptDecrypt) {
string decryptedMessage = decryptHandler->decrypt(encryptedMessage);
EXPECT_EQ(message, decryptedMessage);
}

int main(int argc, char **argv) {
srand(1);
google::InitGoogleLogging(argv[0]);
gflags::ParseCommandLineFlags(&argc, &argv, true);
testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
11 changes: 11 additions & 0 deletions test/TestMain.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#include "Headers.hpp"

#include "gtest/gtest.h"

int main(int argc, char **argv) {
srand(1);
google::InitGoogleLogging(argv[0]);
gflags::ParseCommandLineFlags(&argc, &argv, true);
testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}

0 comments on commit 3f6c93f

Please sign in to comment.