diff options
author | Endi Sukma Dewata <edewata@redhat.com> | 2011-11-23 22:24:21 -0800 |
---|---|---|
committer | Adam Young <ayoung@redhat.com> | 2011-11-28 16:55:12 -0500 |
commit | 02d13e6c2f06efb6a7901a6a8f239492ba49a66c (patch) | |
tree | 467b262b8e1a91c865752778e3100ac147a5b6d8 /pki | |
parent | 22bb099f2020e2dc596b1ee5b843165edc7a30d6 (diff) | |
download | pki-02d13e6c2f06efb6a7901a6a8f239492ba49a66c.tar.gz pki-02d13e6c2f06efb6a7901a6a8f239492ba49a66c.tar.xz pki-02d13e6c2f06efb6a7901a6a8f239492ba49a66c.zip |
Added support for JUnit in CMake.
A new function add_junit_test() has been added to execute JUnit
tests in CMake. The function is used to execute the unit tests in
the common package.
Ticket #36
Diffstat (limited to 'pki')
-rw-r--r-- | pki/CMakeLists.txt | 3 | ||||
-rw-r--r-- | pki/base/common/CMakeLists.txt | 1 | ||||
-rw-r--r-- | pki/base/common/test/CMakeLists.txt | 93 | ||||
-rw-r--r-- | pki/cmake/Modules/JUnit.cmake | 53 | ||||
-rw-r--r-- | pki/specs/pki-core.spec | 5 |
5 files changed, 154 insertions, 1 deletions
diff --git a/pki/CMakeLists.txt b/pki/CMakeLists.txt index 88c0a0e69..b17efe53b 100644 --- a/pki/CMakeLists.txt +++ b/pki/CMakeLists.txt @@ -72,6 +72,9 @@ macro_ensure_out_of_source_build("${PROJECT_NAME} requires an out of source buil # add macros include(MacroCopyFile) include(UseJava) +include(JUnit) + +add_custom_target(test) # search for libraries diff --git a/pki/base/common/CMakeLists.txt b/pki/base/common/CMakeLists.txt index 5a35f6fbc..10a7cc0bb 100644 --- a/pki/base/common/CMakeLists.txt +++ b/pki/base/common/CMakeLists.txt @@ -13,3 +13,4 @@ install( ) add_subdirectory(src) +add_subdirectory(test) diff --git a/pki/base/common/test/CMakeLists.txt b/pki/base/common/test/CMakeLists.txt new file mode 100644 index 000000000..4f3ebf7bf --- /dev/null +++ b/pki/base/common/test/CMakeLists.txt @@ -0,0 +1,93 @@ +project(pki-common-test Java) + +find_file(PKI_CERTSRV_JAR + NAMES + pki-certsrv.jar + PATHS + ${JAVA_JAR_INSTALL_DIR}/pki +) + +find_file(PKI_CMS_JAR + NAMES + pki-cms + PATHS + ${JAVA_JAR_INSTALL_DIR}/pki +) + +find_file(PKI_CMSCORE_JAR + NAMES + pki-cmscore + PATHS + ${JAVA_JAR_INSTALL_DIR}/pki +) + +find_file(PKI_CMSBUNDLE_JAR + NAMES + pki-cmsbundle + PATHS + ${JAVA_JAR_INSTALL_DIR}/pki +) + +# TODO: create CMake function to find all Java files +set(pki-common-test_SRCS + com/netscape/certsrv/app/CMSEngineDefaultStub.java + com/netscape/certsrv/authentication/AuthTokenTest.java + com/netscape/certsrv/logging/LoggerDefaultStub.java + com/netscape/certsrv/request/AgentApprovalsTest.java + com/netscape/cmscore/dbs/CertRecordListTest.java + com/netscape/cmscore/dbs/DBRegistryDefaultStub.java + com/netscape/cmscore/dbs/DBRegistryTest.java + com/netscape/cmscore/dbs/DBSSessionDefaultStub.java + com/netscape/cmscore/dbs/DBSubsystemDefaultStub.java + com/netscape/cmscore/dbs/DBVirtualListDefaultStub.java + com/netscape/cmscore/dbs/RequestRecordDefaultStub.java + com/netscape/cmscore/request/DBDynAttrMapperDefaultStub.java + com/netscape/cmscore/request/ExtAttrDynMapperTest.java + com/netscape/cmscore/request/ExtDataHashtableTest.java + com/netscape/cmscore/request/RequestDefaultStub.java + com/netscape/cmscore/request/RequestModDefaultStub.java + com/netscape/cmscore/request/RequestQueueTest.java + com/netscape/cmscore/request/RequestRecordTest.java + com/netscape/cmscore/request/RequestTest.java + com/netscape/cmscore/test/CMSBaseTestCase.java + com/netscape/cmscore/test/TestHelper.java +) + +set(CMAKE_JAVA_INCLUDE_PATH + ${PKI_NSUTIL_JAR} ${PKI_CMSUTIL_JAR} + ${PKI_CERTSRV_JAR} ${PKI_CMS_JAR} ${PKI_CMSCORE_JAR} ${PKI_CMSBUNDLE_JAR} + ${LDAPJDK_JAR} ${SERVLET_JAR} ${VELOCITY_JAR} ${XALAN_JAR} ${XERCES_JAR} + ${JSS_JAR} ${OSUTIL_JAR} ${SYMKEY_JAR} ${JUNIT_JAR} +) + +set(CMAKE_JAVA_TARGET_VERSION ${APPLICATION_VERSION}) + +# build test jar file +# TODO: create CMake function to compile without building jar file +set(CMAKE_JAR_CLASSES_PREFIX com/netscape) +add_jar(pki-common-test ${pki-common-test_SRCS}) +add_dependencies(pki-common-test + osutil pki-nsutil pki-cmsutil + pki-certsrv pki-cms pki-cmscore pki-cmsbundle +) + +# create test target +# TODO: create CMake function to find all JUnit test classes +add_junit_test(test-pki-common + CLASSPATH + ${pki-common-test_JAR_FILE} + ${CMAKE_JAVA_INCLUDE_PATH} + TESTS + com.netscape.certsrv.authentication.AuthTokenTest + com.netscape.certsrv.request.AgentApprovalsTest + com.netscape.cmscore.dbs.CertRecordListTest + com.netscape.cmscore.dbs.DBRegistryTest + com.netscape.cmscore.request.ExtAttrDynMapperTest + com.netscape.cmscore.request.ExtDataHashtableTest + com.netscape.cmscore.request.RequestQueueTest + com.netscape.cmscore.request.RequestRecordTest + com.netscape.cmscore.request.RequestTest +) + +# include test into the main test +add_dependencies(test test-pki-common) diff --git a/pki/cmake/Modules/JUnit.cmake b/pki/cmake/Modules/JUnit.cmake new file mode 100644 index 000000000..936dd000e --- /dev/null +++ b/pki/cmake/Modules/JUnit.cmake @@ -0,0 +1,53 @@ +# +# This file provides functions for JUnit support. +# +# Available Functions: +# +# add_junit_test(<target name> +# CLASSPATH [path1 ...] +# TESTS [class1 ...] +# ) +# +# This command creates a target for executing JUnit test classes +# using the specified class path. +# + +find_file(JUNIT_JAR + NAMES + junit4.jar + PATHS + ${JAVA_LIB_INSTALL_DIR} + /usr/share/java +) + +function(add_junit_test TARGET_NAME) + + if (WIN32 AND NOT CYGWIN) + set(SEPARATOR ";") + else (WIN32 AND NOT CYGWIN) + set(SEPARATOR ":") + endif(WIN32 AND NOT CYGWIN) + + foreach (ARG ${ARGN}) + if (ARG MATCHES "CLASSPATH" OR ARG MATCHES "TESTS") + set(TYPE ${ARG}) + + else (ARG MATCHES "TESTS") + + if (TYPE MATCHES "CLASSPATH") + set(CLASSPATH "${CLASSPATH}${SEPARATOR}${ARG}") + + elseif (TYPE MATCHES "TESTS") + set(TESTS ${TESTS} ${ARG}) + + endif(TYPE MATCHES "TESTS") + + endif(ARG MATCHES "CLASSPATH" OR ARG MATCHES "TESTS") + + endforeach(ARG) + + add_custom_target(${TARGET_NAME} + COMMAND ${CMAKE_Java_RUNTIME} -classpath ${CLASSPATH} org.junit.runner.JUnitCore ${TESTS} + ) + +endfunction(add_junit_test) diff --git a/pki/specs/pki-core.spec b/pki/specs/pki-core.spec index 020b31a14..340858145 100644 --- a/pki/specs/pki-core.spec +++ b/pki/specs/pki-core.spec @@ -447,7 +447,7 @@ This package is a part of the PKI Core used by the Certificate System. %{__mkdir_p} build cd build %cmake -DVAR_INSTALL_DIR:PATH=/var -DBUILD_PKI_CORE:BOOL=ON -DJAVA_LIB_INSTALL_DIR=%{_jnidir} .. -%{__make} VERBOSE=1 %{?_smp_mflags} +%{__make} VERBOSE=1 %{?_smp_mflags} all test %install @@ -721,6 +721,9 @@ fi %changelog +* Mon Nov 28 2011 Endi S. Dewata <edewata@redhat.com> 9.0.16-2 +- Added JUnit tests + * Fri Oct 28 2011 Matthew Harmsen <mharmsen@redhat.com> 9.0.16-1 - 'pki-setup' - 'pki-symkey' |