From 2c2df752d05d4a9e91948ff12d99828ec48d6a3a Mon Sep 17 00:00:00 2001 From: Matias Fontanini Date: Sat, 23 Aug 2014 18:50:00 -0300 Subject: [PATCH] Added tests to CMake build system. --- CMakeLists.txt | 9 +- src/CMakeLists.txt | 9 +- tests/CMakeLists.txt | 6 ++ tests/src/CMakeLists.txt | 180 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 199 insertions(+), 5 deletions(-) create mode 100644 tests/CMakeLists.txt create mode 100644 tests/src/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index 52e5ad9..6691181 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -49,12 +49,16 @@ ELSE(LIBTINS_ENABLE_CXX11) ENDIF(LIBTINS_ENABLE_CXX11) OPTION(LIBTINS_ENABLE_DOT11 "Compile libtins with IEEE 802.11 support" ON) -OPTION(LIBTINS_ENABLE_WPA2 "Compile libtins with WPA2 decryption features (requires OpenSSL)" OFF) +OPTION(LIBTINS_ENABLE_WPA2 "Compile libtins with WPA2 decryption features (requires OpenSSL)" ON) IF(LIBTINS_ENABLE_DOT11) SET(HAVE_DOT11 ON) + MESSAGE(STATUS "Enabling IEEE 802.11 support.") IF(LIBTINS_ENABLE_WPA2) FIND_PACKAGE(OpenSSL REQUIRED) SET(HAVE_WPA2_DECRYPTION ON) + MESSAGE(STATUS "Enabling WPA2 decryption support.") + ELSE(LIBTINS_ENABLE_WPA2) + MESSAGE(STATUS "Disabling WPA2 decryption support.") ENDIF(LIBTINS_ENABLE_WPA2) ENDIF(LIBTINS_ENABLE_DOT11) @@ -67,9 +71,10 @@ CONFIGURE_FILE( "${PROJECT_SOURCE_DIR}/include/config.h" ) +ENABLE_TESTING() ADD_SUBDIRECTORY(include) ADD_SUBDIRECTORY(src) -ENABLE_TESTING() +ADD_SUBDIRECTORY(tests) # Add all targets to the build-tree export set EXPORT(TARGETS tins diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 3edeb21..ad41217 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,6 +1,10 @@ SET(LIBTINS_INCLUDE_DIR ../include) -INCLUDE_DIRECTORIES(${LIBTINS_INCLUDE_DIR}) +INCLUDE_DIRECTORIES( + ${LIBTINS_INCLUDE_DIR} + ${OPENSSL_INCLUDE_DIR} + ${PCAP_INCLUDE_DIR} +) ADD_LIBRARY( tins ${LIBTINS_TYPE} @@ -54,11 +58,10 @@ ADD_LIBRARY( dot11/dot11_control.cpp ) -TARGET_LINK_LIBRARIES(tins pcap) +TARGET_LINK_LIBRARIES(tins ${PCAP_LIBRARY} ${OPENSSL_LIBRARIES}) SET_TARGET_PROPERTIES(tins PROPERTIES OUTPUT_NAME tins ) SET_TARGET_PROPERTIES(tins PROPERTIES VERSION ${LIBTINS_CPP_VERSION} SOVERSION ${LIBTINS_CPP_VERSION} ) -SET_TARGET_PROPERTIES(tins PROPERTIES PUBLIC_HEADER "${PUBLIC_HEADERS}" ) # Install instructions for this target INSTALL( diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt new file mode 100644 index 0000000..6d016ec --- /dev/null +++ b/tests/CMakeLists.txt @@ -0,0 +1,6 @@ +FIND_PACKAGE(GTest) +IF(GTEST_FOUND) + ADD_SUBDIRECTORY(src) +ELSE(GTEST_FOUND) + MESSAGE(STATUS "Google test not found. Disabling tests.") +ENDIF(GTEST_FOUND) diff --git a/tests/src/CMakeLists.txt b/tests/src/CMakeLists.txt new file mode 100644 index 0000000..a58b621 --- /dev/null +++ b/tests/src/CMakeLists.txt @@ -0,0 +1,180 @@ +# Use libtins' include directories + test include directories +INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/include/ ../include/) + +# Link against GoogleTest, libtins and pthread. +# Pthread is required by GoogleTest +LINK_LIBRARIES(${GTEST_LIBRARIES} ${GTEST_MAIN_LIBRARY} tins pthread) + +# Add tests target +ADD_CUSTOM_TARGET( + tests DEPENDS + AddressRangeTest + AllocatorsTest + ArpTest + DHCPTest + DHCPv6Test + DNSTest + Dot11AckTest + Dot11AssocRequestTest + Dot11AssocResponseTest + Dot11AuthenticationTest + Dot11BeaconTest + Dot11BlockAckRequestTest + Dot11CFEndTest + Dot11CFEndACKTest + Dot11DataTest + Dot11DeauthenticationTest + Dot11DisassocTest + Dot11Test + Dot11ProbeRequestTest + Dot11ProbeResponseTest + Dot11PSPollTest + Dot11ReassocRequestTest + Dot11ReassocResponseTest + Dot11RTSTest + Dot1QTest + EthernetTest + HWAddressTest + ICMPTest + ICMPv6Test + IPTest + IPReassemblerTest + IPAddressTest + IPSecTest + IPv6Test + IPv6AddressTest + LLCTest + MatchesResponseTest + NetworkInterfaceTest + PDUTest + PPITest + PPPoETest + RadioTapTest + RC4EAPOLTest + RSNEAPOLTest + SLLTest + SNAPTest + STPTest + TCPTest + TCPStreamTest + UDPTest + UtilsTest + WEPDecryptTest + WPA2DecryptTest +) + +# Test executables + +ADD_EXECUTABLE(AddressRangeTest EXCLUDE_FROM_ALL address_range.cpp) +ADD_EXECUTABLE(AllocatorsTest EXCLUDE_FROM_ALL allocators.cpp) +ADD_EXECUTABLE(ArpTest EXCLUDE_FROM_ALL arp.cpp) +ADD_EXECUTABLE(DHCPTest EXCLUDE_FROM_ALL dhcp.cpp) +ADD_EXECUTABLE(DHCPv6Test EXCLUDE_FROM_ALL dhcpv6.cpp) +ADD_EXECUTABLE(DNSTest EXCLUDE_FROM_ALL dns.cpp) +ADD_EXECUTABLE(Dot1QTest EXCLUDE_FROM_ALL dot1q.cpp) +ADD_EXECUTABLE(EthernetTest EXCLUDE_FROM_ALL ethernetII.cpp) +ADD_EXECUTABLE(HWAddressTest EXCLUDE_FROM_ALL hwaddress.cpp) +ADD_EXECUTABLE(ICMPTest EXCLUDE_FROM_ALL icmp.cpp) +ADD_EXECUTABLE(ICMPv6Test EXCLUDE_FROM_ALL icmpv6.cpp) +ADD_EXECUTABLE(IPTest EXCLUDE_FROM_ALL ip.cpp) +ADD_EXECUTABLE(IPReassemblerTest EXCLUDE_FROM_ALL ip_reassembler.cpp) +ADD_EXECUTABLE(IPAddressTest EXCLUDE_FROM_ALL ipaddress.cpp) +ADD_EXECUTABLE(IPSecTest EXCLUDE_FROM_ALL ipsec.cpp) +ADD_EXECUTABLE(IPv6Test EXCLUDE_FROM_ALL ipv6.cpp) +ADD_EXECUTABLE(IPv6AddressTest EXCLUDE_FROM_ALL ipv6address.cpp) +ADD_EXECUTABLE(LLCTest EXCLUDE_FROM_ALL llc.cpp) +ADD_EXECUTABLE(MatchesResponseTest EXCLUDE_FROM_ALL matches_response.cpp) +ADD_EXECUTABLE(NetworkInterfaceTest EXCLUDE_FROM_ALL network_interface.cpp) +ADD_EXECUTABLE(PDUTest EXCLUDE_FROM_ALL pdu.cpp) +ADD_EXECUTABLE(PPITest EXCLUDE_FROM_ALL ppi.cpp) +ADD_EXECUTABLE(PPPoETest EXCLUDE_FROM_ALL pppoe.cpp) +ADD_EXECUTABLE(RadioTapTest EXCLUDE_FROM_ALL radiotap.cpp) +ADD_EXECUTABLE(RC4EAPOLTest EXCLUDE_FROM_ALL rc4eapol.cpp) +ADD_EXECUTABLE(RSNEAPOLTest EXCLUDE_FROM_ALL rsn_eapol.cpp) +ADD_EXECUTABLE(SLLTest EXCLUDE_FROM_ALL sll.cpp) +ADD_EXECUTABLE(SNAPTest EXCLUDE_FROM_ALL snap.cpp) +ADD_EXECUTABLE(STPTest EXCLUDE_FROM_ALL stp.cpp) +ADD_EXECUTABLE(TCPTest EXCLUDE_FROM_ALL tcp.cpp) +ADD_EXECUTABLE(TCPStreamTest EXCLUDE_FROM_ALL tcp_stream.cpp) +ADD_EXECUTABLE(UDPTest EXCLUDE_FROM_ALL udp.cpp) +ADD_EXECUTABLE(UtilsTest EXCLUDE_FROM_ALL utils.cpp) +ADD_EXECUTABLE(WEPDecryptTest EXCLUDE_FROM_ALL wep_decrypt.cpp) +ADD_EXECUTABLE(WPA2DecryptTest EXCLUDE_FROM_ALL wpa2_decrypt.cpp) + +# Dot11 tests executables + +ADD_EXECUTABLE(Dot11AckTest EXCLUDE_FROM_ALL dot11/ack.cpp) +ADD_EXECUTABLE(Dot11AssocRequestTest EXCLUDE_FROM_ALL dot11/assoc_request.cpp) +ADD_EXECUTABLE(Dot11AssocResponseTest EXCLUDE_FROM_ALL dot11/assoc_response.cpp) +ADD_EXECUTABLE(Dot11AuthenticationTest EXCLUDE_FROM_ALL dot11/authentication.cpp) +ADD_EXECUTABLE(Dot11BeaconTest EXCLUDE_FROM_ALL dot11/beacon.cpp) +ADD_EXECUTABLE(Dot11BlockAckRequestTest EXCLUDE_FROM_ALL dot11/block_ack_request.cpp) +ADD_EXECUTABLE(Dot11CFEndTest EXCLUDE_FROM_ALL dot11/cfend.cpp) +ADD_EXECUTABLE(Dot11CFEndACKTest EXCLUDE_FROM_ALL dot11/cfendack.cpp) +ADD_EXECUTABLE(Dot11DataTest EXCLUDE_FROM_ALL dot11/data.cpp) +ADD_EXECUTABLE(Dot11DeauthenticationTest EXCLUDE_FROM_ALL dot11/deauthentication.cpp) +ADD_EXECUTABLE(Dot11DisassocTest EXCLUDE_FROM_ALL dot11/disassoc.cpp) +ADD_EXECUTABLE(Dot11Test EXCLUDE_FROM_ALL dot11/dot11.cpp) +ADD_EXECUTABLE(Dot11ProbeRequestTest EXCLUDE_FROM_ALL dot11/probe_request.cpp) +ADD_EXECUTABLE(Dot11ProbeResponseTest EXCLUDE_FROM_ALL dot11/probe_response.cpp) +ADD_EXECUTABLE(Dot11PSPollTest EXCLUDE_FROM_ALL dot11/pspoll.cpp) +ADD_EXECUTABLE(Dot11ReassocRequestTest EXCLUDE_FROM_ALL dot11/reassoc_request.cpp) +ADD_EXECUTABLE(Dot11ReassocResponseTest EXCLUDE_FROM_ALL dot11/reassoc_response.cpp) +ADD_EXECUTABLE(Dot11RTSTest EXCLUDE_FROM_ALL dot11/rts.cpp) + +# Tests + +ADD_TEST(AddressRange AddressRangeTest) +ADD_TEST(Allocators AllocatorsTest) +ADD_TEST(Arp ArpTest) +ADD_TEST(DHCP DHCPTest) +ADD_TEST(DHCPv6 DHCPv6Test) +ADD_TEST(DNS DNSTest) +ADD_TEST(Dot11Ack Dot11AckTest) +ADD_TEST(Dot11AssocRequest Dot11AssocRequestTest) +ADD_TEST(Dot11AssocResponse Dot11AssocResponseTest) +ADD_TEST(Dot11Authentication Dot11AuthenticationTest) +ADD_TEST(Dot11Beacon Dot11BeaconTest) +ADD_TEST(Dot11BlockAckRequest Dot11BlockAckRequestTest) +ADD_TEST(Dot11CFEnd Dot11CFEndTest) +ADD_TEST(Dot11CFEndACK Dot11CFEndACKTest) +ADD_TEST(Dot11Data Dot11DataTest) +ADD_TEST(Dot11Deauthentication Dot11DeauthenticationTest) +ADD_TEST(Dot11Disassoc Dot11DisassocTest) +ADD_TEST(Dot11 Dot11Test) +ADD_TEST(Dot11ProbeRequest Dot11ProbeRequestTest) +ADD_TEST(Dot11ProbeResponse Dot11ProbeResponseTest) +ADD_TEST(Dot11PSPoll Dot11PSPollTest) +ADD_TEST(Dot11ReassocRequest Dot11ReassocRequestTest) +ADD_TEST(Dot11ReassocResponse Dot11ReassocResponseTest) +ADD_TEST(Dot11RTS Dot11RTSTest) +ADD_TEST(Dot1Q Dot1QTest) +ADD_TEST(Ethernet EthernetTest) +ADD_TEST(HWAddress HWAddressTest) +ADD_TEST(ICMP ICMPTest) +ADD_TEST(ICMPv6 ICMPv6Test) +ADD_TEST(IP IPTest) +ADD_TEST(IPReassembler IPReassemblerTest) +ADD_TEST(IPAddress IPAddressTest) +ADD_TEST(IPSec IPSecTest) +ADD_TEST(IPv6 IPv6Test) +ADD_TEST(IPv6Address IPv6AddressTest) +ADD_TEST(LLC LLCTest) +ADD_TEST(MatchesResponse MatchesResponseTest) +ADD_TEST(NetworkInterface NetworkInterfaceTest) +ADD_TEST(PDU PDUTest) +ADD_TEST(PPI PPITest) +ADD_TEST(PPPoE PPPoETest) +ADD_TEST(RadioTap RadioTapTest) +ADD_TEST(RC4EAPOL RC4EAPOLTest) +ADD_TEST(RSNEAPOL RSNEAPOLTest) +ADD_TEST(SLL SLLTest) +ADD_TEST(SNAP SNAPTest) +ADD_TEST(STP STPTest) +ADD_TEST(TCP TCPTest) +ADD_TEST(TCPStream TCPStreamTest) +ADD_TEST(UDP UDPTest) +ADD_TEST(Utils UtilsTest) +ADD_TEST(WEPDecrypt WEPDecryptTest) +ADD_TEST(WPA2Decrypt WPA2DecryptTest) +