From: JINMEI Tatuya Date: Wed, 18 Jul 2012 19:26:05 +0000 (-0700) Subject: [2094] setup unittest framework X-Git-Tag: trac2351_base~158^2~16^2~16 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=49a8bcbf81bbb4feafc569793797b5ce3d5fbfce;p=thirdparty%2Fkea.git [2094] setup unittest framework --- diff --git a/configure.ac b/configure.ac index 6264d13349..352c5c9a46 100644 --- a/configure.ac +++ b/configure.ac @@ -1102,6 +1102,7 @@ AC_CONFIG_FILES([Makefile src/lib/exceptions/tests/Makefile src/lib/datasrc/Makefile src/lib/datasrc/memory/Makefile + src/lib/datasrc/memory/tests/Makefile src/lib/datasrc/tests/Makefile src/lib/datasrc/tests/testdata/Makefile src/lib/xfr/Makefile diff --git a/src/lib/datasrc/memory/Makefile.am b/src/lib/datasrc/memory/Makefile.am index 74143e4e6d..fbb6ac9db6 100644 --- a/src/lib/datasrc/memory/Makefile.am +++ b/src/lib/datasrc/memory/Makefile.am @@ -1,3 +1,5 @@ +SUBDIRS = . tests + AM_CPPFLAGS = -I$(top_srcdir)/src/lib -I$(top_builddir)/src/lib AM_CPPFLAGS += -I$(top_srcdir)/src/lib/dns -I$(top_builddir)/src/lib/dns AM_CPPFLAGS += $(BOOST_INCLUDES) diff --git a/src/lib/datasrc/memory/rdata_encoder.cc b/src/lib/datasrc/memory/rdata_encoder.cc index c02d3d0472..8996c48d28 100644 --- a/src/lib/datasrc/memory/rdata_encoder.cc +++ b/src/lib/datasrc/memory/rdata_encoder.cc @@ -55,13 +55,13 @@ struct RdataEncodeSpec { const RdataFieldSpec* fields; }; -const uint16_t NAME_NOATTRIBUTE_INITIALIZER = static_cast(0); -const uint16_t NAME_COMPRESSIBLE_INITIALIZER = - static_cast(NAME_COMPRESSIBLE); -const uint16_t NAME_ADDITIONAL_INITIALIZER = - static_cast(NAME_ADDITIONAL); -const uint16_t NAME_COMPADDITIONAL_INITIALIZER = - static_cast(NAME_COMPRESSIBLE | NAME_ADDITIONAL); +const uint16_t NAMEATTR_NOATTRIBUTE_INITIALIZER = static_cast(0); +const uint16_t NAMEATTR_COMPRESSIBLE_INITIALIZER = + static_cast(NAMEATTR_COMPRESSIBLE); +const uint16_t NAMEATTR_ADDITIONAL_INITIALIZER = + static_cast(NAMEATTR_ADDITIONAL); +const uint16_t NAMEATTR_COMPADDITIONAL_INITIALIZER = + static_cast(NAMEATTR_COMPRESSIBLE | NAMEATTR_ADDITIONAL); const RdataFieldSpec generic_data_fields[] = { {RdataFieldSpec::VARLEN_DATA, {0}} @@ -70,7 +70,7 @@ const uint16_t generic_data_fields_count = sizeof(generic_data_fields) / sizeof(RdataFieldSpec); const RdataFieldSpec generic_single_name_fields[] = { - {RdataFieldSpec::VARLEN_DATA, {NAME_COMPADDITIONAL_INITIALIZER}} + {RdataFieldSpec::VARLEN_DATA, {NAMEATTR_COMPADDITIONAL_INITIALIZER}} }; // Class IN encode specs diff --git a/src/lib/datasrc/memory/rdata_encoder.h b/src/lib/datasrc/memory/rdata_encoder.h index 38e88abc1f..e4dc729d72 100644 --- a/src/lib/datasrc/memory/rdata_encoder.h +++ b/src/lib/datasrc/memory/rdata_encoder.h @@ -20,8 +20,8 @@ namespace datasrc { namespace memory { enum RdataNameAttributes { - NAME_COMPRESSIBLE = 1, - NAME_ADDITIONAL = (NAME_COMPRESSIBLE << 1) + NAMEATTR_COMPRESSIBLE = 1, + NAMEATTR_ADDITIONAL = (NAMEATTR_COMPRESSIBLE << 1) }; } // namespace memory diff --git a/src/lib/datasrc/memory/tests/Makefile.am b/src/lib/datasrc/memory/tests/Makefile.am new file mode 100644 index 0000000000..f750493ed5 --- /dev/null +++ b/src/lib/datasrc/memory/tests/Makefile.am @@ -0,0 +1,34 @@ +AM_CPPFLAGS = -I$(top_srcdir)/src/lib -I$(top_builddir)/src/lib +AM_CPPFLAGS += -I$(top_builddir)/src/lib/dns -I$(top_srcdir)/src/lib/dns +AM_CPPFLAGS += $(BOOST_INCLUDES) +AM_CPPFLAGS += $(SQLITE_CFLAGS) + +AM_CXXFLAGS = $(B10_CXXFLAGS) + +if USE_STATIC_LINK +AM_LDFLAGS = -static +endif + +CLEANFILES = *.gcno *.gcda + +TESTS_ENVIRONMENT = \ + $(LIBTOOL) --mode=execute $(VALGRIND_COMMAND) + +TESTS = +if HAVE_GTEST +TESTS += run_unittests + +run_unittests_SOURCES = run_unittests.cc +run_unittests_SOURCES += rdata_encoder_unittest.cc + +run_unittests_CPPFLAGS = $(AM_CPPFLAGS) $(GTEST_INCLUDES) +run_unittests_LDFLAGS = $(AM_LDFLAGS) $(GTEST_LDFLAGS) + +run_unittests_LDADD = $(builddir)/../libdatasrc_memory.la +run_unittests_LDADD += $(top_builddir)/src/lib/dns/libdns++.la +run_unittests_LDADD += $(top_builddir)/src/lib/util/unittests/libutil_unittests.la +run_unittests_LDADD += $(top_builddir)/src/lib/exceptions/libexceptions.la +run_unittests_LDADD += $(GTEST_LDADD) +endif + +noinst_PROGRAMS = $(TESTS) diff --git a/src/lib/datasrc/memory/tests/rdata_encoder_unittest.cc b/src/lib/datasrc/memory/tests/rdata_encoder_unittest.cc new file mode 100644 index 0000000000..88ef551a43 --- /dev/null +++ b/src/lib/datasrc/memory/tests/rdata_encoder_unittest.cc @@ -0,0 +1,31 @@ +// Copyright (C) 2012 Internet Systems Consortium, Inc. ("ISC") +// +// Permission to use, copy, modify, and/or distribute this software for any +// purpose with or without fee is hereby granted, provided that the above +// copyright notice and this permission notice appear in all copies. +// +// THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH +// REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +// AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, +// INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +// LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE +// OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +// PERFORMANCE OF THIS SOFTWARE. + +#include + +#include + +using namespace isc::datasrc::memory; + +namespace { +class RdataEncoderTest : public ::testing::Test { +protected: + RdataEncoderTest() {} +}; + +TEST_F(RdataEncoderTest, test1) { + EXPECT_NE(NAMEATTR_COMPRESSIBLE, NAMEATTR_ADDITIONAL); +} + +} diff --git a/src/lib/datasrc/memory/tests/run_unittests.cc b/src/lib/datasrc/memory/tests/run_unittests.cc new file mode 100644 index 0000000000..998667c2cb --- /dev/null +++ b/src/lib/datasrc/memory/tests/run_unittests.cc @@ -0,0 +1,23 @@ +// Copyright (C) 2012 Internet Systems Consortium, Inc. ("ISC") +// +// Permission to use, copy, modify, and/or distribute this software for any +// purpose with or without fee is hereby granted, provided that the above +// copyright notice and this permission notice appear in all copies. +// +// THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH +// REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +// AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, +// INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +// LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE +// OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +// PERFORMANCE OF THIS SOFTWARE. + +#include +#include + +int +main(int argc, char* argv[]) { + ::testing::InitGoogleTest(&argc, argv); + + return (isc::util::unittests::run_all()); +}