Skip to content
This repository has been archived by the owner on Aug 12, 2020. It is now read-only.

Commit

Permalink
swapped unit test frameworks from gtest to boost.test. Addresses some…
Browse files Browse the repository at this point in the history
… of the concerns raised in issue #8 and closes #7.
  • Loading branch information
mstump committed Apr 18, 2013
1 parent 0ddf2fe commit 5467aad
Show file tree
Hide file tree
Showing 14 changed files with 276 additions and 294 deletions.
5 changes: 1 addition & 4 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -39,16 +39,13 @@ endif()

# Boost
set(Boost_USE_MULTITHREADED ON)
find_package(Boost 1.47.0 COMPONENTS system)
find_package(Boost 1.47.0 COMPONENTS system unit_test_framework)
set(LIBS ${LIBS} ${Boost_LIBRARIES} )

# Threading
find_package(Threads)
set(LIBS ${LIBS} ${CMAKE_THREAD_LIBS_INIT} )

# google test
include(gtest)

add_custom_target (AppDependencies ALL
DEPENDS ${APP_DEPENDENCIES}
COMMENT "Installing any missing dependencies.")
Expand Down
54 changes: 0 additions & 54 deletions ext/gtest.cmake

This file was deleted.

6 changes: 2 additions & 4 deletions test/unit_tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,14 @@
enable_testing()
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ".")
set(PROJECT_TEST_NAME ${PROJECT_NAME_STR}_test)
include_directories(${INCLUDES} ${gtest_INCLUDE_DIRS} ${PROJECT_SOURCE_DIR}/src/)
include_directories(${INCLUDES} ${PROJECT_SOURCE_DIR}/src/)

file(GLOB TEST_SRC_FILES *.cpp)
add_executable(${PROJECT_TEST_NAME} ${TEST_SRC_FILES})
target_link_libraries(${PROJECT_TEST_NAME} ${gtest_STATIC_LIBRARIES} ${LIBS} ${PROJECT_LIB_NAME} ${zlib_LIBRARIES} ${OpenSSL_LIBRARIES} "pthread")
target_link_libraries(${PROJECT_TEST_NAME} ${PROJECT_LIB_NAME} ${Boost_LIBRARIES} ${zlib_LIBRARIES} ${OpenSSL_LIBRARIES} "pthread")

set_property(
TARGET ${PROJECT_TEST_NAME}
APPEND PROPERTY COMPILE_FLAGS "-g")

add_dependencies(${PROJECT_TEST_NAME} gtest)

add_test(${PROJECT_TEST_NAME} ${PROJECT_TEST_NAME})
62 changes: 33 additions & 29 deletions test/unit_tests/cql_header.cpp
Original file line number Diff line number Diff line change
@@ -1,23 +1,25 @@
#include "gtest/gtest.h"
#include <boost/test/unit_test.hpp>
#include "libcql/cql.hpp"
#include "libcql/cql_error.hpp"
#include "libcql/internal/cql_defines.hpp"
#include "libcql/internal/cql_header_impl.hpp"

char TEST_HEADER[] = { 0x01, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x05 };

TEST(cql_header_cpp, getters_and_constructor)
BOOST_AUTO_TEST_SUITE(cql_header)

BOOST_AUTO_TEST_CASE(getters_and_constructor)
{
std::stringstream output;
cql::cql_header_impl_t header(CQL_VERSION_1_REQUEST, CQL_FLAG_NOFLAG, 1, cql::CQL_OPCODE_READY, 5);
EXPECT_EQ(1, header.version());
EXPECT_EQ(0, header.flags());
EXPECT_EQ(1, header.stream());
EXPECT_EQ(2, header.opcode());
EXPECT_EQ(5, header.length());
BOOST_CHECK_EQUAL(1, header.version());
BOOST_CHECK_EQUAL(0, header.flags());
BOOST_CHECK_EQUAL(1, header.stream());
BOOST_CHECK_EQUAL(2, header.opcode());
BOOST_CHECK_EQUAL(5, header.length());
}

TEST(cql_header_cpp, setters)
BOOST_AUTO_TEST_CASE(setters)
{
std::stringstream output;
cql::cql_header_impl_t header;
Expand All @@ -28,52 +30,54 @@ TEST(cql_header_cpp, setters)
header.opcode(cql::CQL_OPCODE_READY);
header.length(5);

EXPECT_EQ(1, header.version());
EXPECT_EQ(0, header.flags());
EXPECT_EQ(1, header.stream());
EXPECT_EQ(2, header.opcode());
EXPECT_EQ(5, header.length());
BOOST_CHECK_EQUAL(1, header.version());
BOOST_CHECK_EQUAL(0, header.flags());
BOOST_CHECK_EQUAL(1, header.stream());
BOOST_CHECK_EQUAL(2, header.opcode());
BOOST_CHECK_EQUAL(5, header.length());
}

TEST(cql_header_cpp, serialization_size)
BOOST_AUTO_TEST_CASE(serialization_size)
{
cql::cql_header_impl_t header(CQL_VERSION_1_REQUEST, CQL_FLAG_NOFLAG, 0, cql::CQL_OPCODE_READY, 5);
cql::cql_error_t err;
header.prepare(&err);
EXPECT_EQ(8, header.size());
BOOST_CHECK_EQUAL(8, header.size());
}

TEST(cql_header_cpp, serialization_round_trip)
BOOST_AUTO_TEST_CASE(serialization_round_trip)
{
cql::cql_header_impl_t header(CQL_VERSION_1_REQUEST, CQL_FLAG_NOFLAG, 1, cql::CQL_OPCODE_READY, 5);
cql::cql_error_t err;
header.prepare(&err);
header.consume(&err);
EXPECT_EQ(CQL_VERSION_1_REQUEST, header.version());
EXPECT_EQ(CQL_FLAG_NOFLAG, header.flags());
EXPECT_EQ(1, header.stream());
EXPECT_EQ(cql::CQL_OPCODE_READY, header.opcode());
EXPECT_EQ(5, header.length());
BOOST_CHECK_EQUAL(CQL_VERSION_1_REQUEST, header.version());
BOOST_CHECK_EQUAL(CQL_FLAG_NOFLAG, header.flags());
BOOST_CHECK_EQUAL(1, header.stream());
BOOST_CHECK_EQUAL(cql::CQL_OPCODE_READY, header.opcode());
BOOST_CHECK_EQUAL(5, header.length());
}

TEST(cql_header_cpp, serialization_to_byte)
BOOST_AUTO_TEST_CASE(serialization_to_byte)
{
cql::cql_header_impl_t header(CQL_VERSION_1_REQUEST, CQL_FLAG_NOFLAG, 1, cql::CQL_OPCODE_READY, 5);
cql::cql_error_t err;
header.prepare(&err);
EXPECT_TRUE(memcmp(TEST_HEADER, &(*header.buffer())[0], sizeof(TEST_HEADER)) == 0);
BOOST_CHECK(memcmp(TEST_HEADER, &(*header.buffer())[0], sizeof(TEST_HEADER)) == 0);
}

TEST(cql_header_cpp, serialization_from_byte)
BOOST_AUTO_TEST_CASE(serialization_from_byte)
{
cql::cql_header_impl_t header;

header.buffer()->assign(TEST_HEADER, TEST_HEADER + sizeof(TEST_HEADER));
cql::cql_error_t err;
header.consume(&err);
EXPECT_EQ(1, header.version());
EXPECT_EQ(0, header.flags());
EXPECT_EQ(1, header.stream());
EXPECT_EQ(2, header.opcode());
EXPECT_EQ(5, header.length());
BOOST_CHECK_EQUAL(1, header.version());
BOOST_CHECK_EQUAL(0, header.flags());
BOOST_CHECK_EQUAL(1, header.stream());
BOOST_CHECK_EQUAL(2, header.opcode());
BOOST_CHECK_EQUAL(5, header.length());
}

BOOST_AUTO_TEST_SUITE_END()
27 changes: 15 additions & 12 deletions test/unit_tests/cql_message_error.cpp
Original file line number Diff line number Diff line change
@@ -1,39 +1,42 @@
#include "gtest/gtest.h"
#include <boost/test/unit_test.hpp>
#include "libcql/cql.hpp"
#include "libcql/cql_error.hpp"
#include "libcql/internal/cql_defines.hpp"
#include "libcql/internal/cql_message_error_impl.hpp"

BOOST_AUTO_TEST_SUITE(cql_message_error)

TEST(cql_message_error_cpp, setters_and_getters)
BOOST_AUTO_TEST_CASE(setters_and_getters)
{
cql::cql_message_error_impl_t m;
m.code(1);
m.message("foo");
EXPECT_EQ(1, m.code());
EXPECT_EQ("foo", m.message());
BOOST_CHECK_EQUAL(1, m.code());
BOOST_CHECK_EQUAL("foo", m.message());
}

TEST(cql_message_error_cpp, constructor)
BOOST_AUTO_TEST_CASE(constructor)
{
cql::cql_message_error_impl_t m(1, "foo");
EXPECT_EQ(1, m.code());
EXPECT_EQ("foo", m.message());
BOOST_CHECK_EQUAL(1, m.code());
BOOST_CHECK_EQUAL("foo", m.message());
}

TEST(cql_message_error_cpp, opcode)
BOOST_AUTO_TEST_CASE(opcode)
{
cql::cql_message_error_impl_t m;
EXPECT_EQ(cql::CQL_OPCODE_ERROR, m.opcode());
BOOST_CHECK_EQUAL(cql::CQL_OPCODE_ERROR, m.opcode());
}

TEST(cql_message_error_cpp, serialization_round_trip)
BOOST_AUTO_TEST_CASE(serialization_round_trip)
{
std::stringstream output;
cql::cql_message_error_impl_t m(1, "foo");
cql::cql_error_t err;
m.prepare(&err);
m.consume(&err);
EXPECT_EQ("foo", m.message());
EXPECT_EQ(1, m.code());
BOOST_CHECK_EQUAL("foo", m.message());
BOOST_CHECK_EQUAL(1, m.code());
}

BOOST_AUTO_TEST_SUITE_END()
29 changes: 16 additions & 13 deletions test/unit_tests/cql_message_event.cpp
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
#include "gtest/gtest.h"
#include <boost/test/unit_test.hpp>
#include "libcql/cql.hpp"
#include "libcql/cql_error.hpp"
#include "libcql/internal/cql_defines.hpp"
#include "libcql/internal/cql_message_event_impl.hpp"

BOOST_AUTO_TEST_SUITE(cql_message_event)

char TEST_MESSAGE_EVENT[] = {
// 0x81, 0x00, 0xff, 0x0c, 0x00, 0x00, 0x00, 0x25, // header
Expand All @@ -13,58 +14,60 @@ char TEST_MESSAGE_EVENT[] = {
0x00, 0x02, 0x6b, 0x6d, 0x00, 0x07, 0x74, 0x65,
0x73, 0x74, 0x5f, 0x63, 0x66 };

TEST(cql_message_event_cpp, opcode)
BOOST_AUTO_TEST_CASE(opcode)
{
cql::cql_message_event_impl_t m;
EXPECT_EQ(cql::CQL_OPCODE_EVENT, m.opcode());
BOOST_CHECK_EQUAL(cql::CQL_OPCODE_EVENT, m.opcode());
}

TEST(cql_message_event_cpp, serialization_from_byte_size)
BOOST_AUTO_TEST_CASE(serialization_from_byte_size)
{
cql::cql_message_event_impl_t m;
m.buffer()->assign(TEST_MESSAGE_EVENT, TEST_MESSAGE_EVENT + sizeof(TEST_MESSAGE_EVENT));
cql::cql_error_t err;
m.consume(&err);

EXPECT_EQ(sizeof(TEST_MESSAGE_EVENT), m.buffer()->size());
BOOST_CHECK_EQUAL(sizeof(TEST_MESSAGE_EVENT), m.buffer()->size());
}

TEST(cql_message_event_cpp, serialization_from_byte_event_type)
BOOST_AUTO_TEST_CASE(serialization_from_byte_event_type)
{
cql::cql_message_event_impl_t m;
m.buffer()->assign(TEST_MESSAGE_EVENT, TEST_MESSAGE_EVENT + sizeof(TEST_MESSAGE_EVENT));
cql::cql_error_t err;
m.consume(&err);

EXPECT_EQ(cql::CQL_EVENT_TYPE_SCHEMA, m.event_type());
BOOST_CHECK_EQUAL(cql::CQL_EVENT_TYPE_SCHEMA, m.event_type());
}

TEST(cql_message_event_cpp, serialization_from_byte_keyspace)
BOOST_AUTO_TEST_CASE(serialization_from_byte_keyspace)
{
cql::cql_message_event_impl_t m;
m.buffer()->assign(TEST_MESSAGE_EVENT, TEST_MESSAGE_EVENT + sizeof(TEST_MESSAGE_EVENT));
cql::cql_error_t err;
m.consume(&err);

EXPECT_EQ("km", m.keyspace());
BOOST_CHECK_EQUAL("km", m.keyspace());
}

TEST(cql_message_event_cpp, serialization_from_byte_column_family)
BOOST_AUTO_TEST_CASE(serialization_from_byte_column_family)
{
cql::cql_message_event_impl_t m;
m.buffer()->assign(TEST_MESSAGE_EVENT, TEST_MESSAGE_EVENT + sizeof(TEST_MESSAGE_EVENT));
cql::cql_error_t err;
m.consume(&err);

EXPECT_EQ("test_cf", m.column_family());
BOOST_CHECK_EQUAL("test_cf", m.column_family());
}

TEST(cql_message_event_cpp, serialization_from_byte_schema_change)
BOOST_AUTO_TEST_CASE(serialization_from_byte_schema_change)
{
cql::cql_message_event_impl_t m;
m.buffer()->assign(TEST_MESSAGE_EVENT, TEST_MESSAGE_EVENT + sizeof(TEST_MESSAGE_EVENT));
cql::cql_error_t err;
m.consume(&err);

EXPECT_EQ(cql::CQL_EVENT_SCHEMA_DROPPED, m.schema_change());
BOOST_CHECK_EQUAL(cql::CQL_EVENT_SCHEMA_DROPPED, m.schema_change());
}

BOOST_AUTO_TEST_SUITE_END()
14 changes: 9 additions & 5 deletions test/unit_tests/cql_message_options.cpp
Original file line number Diff line number Diff line change
@@ -1,19 +1,23 @@
#include "gtest/gtest.h"
#include <boost/test/unit_test.hpp>
#include "libcql/cql.hpp"
#include "libcql/cql_error.hpp"
#include "libcql/internal/cql_defines.hpp"
#include "libcql/internal/cql_message_options_impl.hpp"

TEST(cql_message_options_cpp, opcode)
BOOST_AUTO_TEST_SUITE(cql_message_options)

BOOST_AUTO_TEST_CASE(opcode)
{
cql::cql_message_options_impl_t m;
EXPECT_EQ(cql::CQL_OPCODE_OPTIONS, m.opcode());
BOOST_CHECK_EQUAL(cql::CQL_OPCODE_OPTIONS, m.opcode());
}

TEST(cql_message_options_cpp, zero_length_serialization)
BOOST_AUTO_TEST_CASE(zero_length_serialization)
{
cql::cql_message_options_impl_t m;
cql::cql_error_t err;
m.prepare(&err);
EXPECT_EQ(0, m.size());
BOOST_CHECK_EQUAL(0, m.size());
}

BOOST_AUTO_TEST_SUITE_END()
Loading

0 comments on commit 5467aad

Please sign in to comment.