Parcourir la source

[2094] setup unittest framework

JINMEI Tatuya il y a 12 ans
Parent
commit
49a8bcbf81

+ 1 - 0
configure.ac

@@ -1102,6 +1102,7 @@ AC_CONFIG_FILES([Makefile
                  src/lib/exceptions/tests/Makefile
                  src/lib/exceptions/tests/Makefile
                  src/lib/datasrc/Makefile
                  src/lib/datasrc/Makefile
                  src/lib/datasrc/memory/Makefile
                  src/lib/datasrc/memory/Makefile
+                 src/lib/datasrc/memory/tests/Makefile
                  src/lib/datasrc/tests/Makefile
                  src/lib/datasrc/tests/Makefile
                  src/lib/datasrc/tests/testdata/Makefile
                  src/lib/datasrc/tests/testdata/Makefile
                  src/lib/xfr/Makefile
                  src/lib/xfr/Makefile

+ 2 - 0
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 -I$(top_builddir)/src/lib
 AM_CPPFLAGS += -I$(top_srcdir)/src/lib/dns -I$(top_builddir)/src/lib/dns
 AM_CPPFLAGS += -I$(top_srcdir)/src/lib/dns -I$(top_builddir)/src/lib/dns
 AM_CPPFLAGS += $(BOOST_INCLUDES)
 AM_CPPFLAGS += $(BOOST_INCLUDES)

+ 8 - 8
src/lib/datasrc/memory/rdata_encoder.cc

@@ -55,13 +55,13 @@ struct RdataEncodeSpec {
     const RdataFieldSpec* fields;
     const RdataFieldSpec* fields;
 };
 };
 
 
-const uint16_t NAME_NOATTRIBUTE_INITIALIZER = static_cast<uint16_t>(0);
-const uint16_t NAME_COMPRESSIBLE_INITIALIZER =
-    static_cast<uint16_t>(NAME_COMPRESSIBLE);
-const uint16_t NAME_ADDITIONAL_INITIALIZER =
-    static_cast<uint16_t>(NAME_ADDITIONAL);
-const uint16_t NAME_COMPADDITIONAL_INITIALIZER =
-    static_cast<uint16_t>(NAME_COMPRESSIBLE | NAME_ADDITIONAL);
+const uint16_t NAMEATTR_NOATTRIBUTE_INITIALIZER = static_cast<uint16_t>(0);
+const uint16_t NAMEATTR_COMPRESSIBLE_INITIALIZER =
+    static_cast<uint16_t>(NAMEATTR_COMPRESSIBLE);
+const uint16_t NAMEATTR_ADDITIONAL_INITIALIZER =
+    static_cast<uint16_t>(NAMEATTR_ADDITIONAL);
+const uint16_t NAMEATTR_COMPADDITIONAL_INITIALIZER =
+    static_cast<uint16_t>(NAMEATTR_COMPRESSIBLE | NAMEATTR_ADDITIONAL);
 
 
 const RdataFieldSpec generic_data_fields[] = {
 const RdataFieldSpec generic_data_fields[] = {
     {RdataFieldSpec::VARLEN_DATA, {0}}
     {RdataFieldSpec::VARLEN_DATA, {0}}
@@ -70,7 +70,7 @@ const uint16_t generic_data_fields_count =
     sizeof(generic_data_fields) / sizeof(RdataFieldSpec);
     sizeof(generic_data_fields) / sizeof(RdataFieldSpec);
 
 
 const RdataFieldSpec generic_single_name_fields[] = {
 const RdataFieldSpec generic_single_name_fields[] = {
-    {RdataFieldSpec::VARLEN_DATA, {NAME_COMPADDITIONAL_INITIALIZER}}
+    {RdataFieldSpec::VARLEN_DATA, {NAMEATTR_COMPADDITIONAL_INITIALIZER}}
 };
 };
 
 
 // Class IN encode specs
 // Class IN encode specs

+ 2 - 2
src/lib/datasrc/memory/rdata_encoder.h

@@ -20,8 +20,8 @@ namespace datasrc {
 namespace memory {
 namespace memory {
 
 
 enum RdataNameAttributes {
 enum RdataNameAttributes {
-    NAME_COMPRESSIBLE = 1,
-    NAME_ADDITIONAL = (NAME_COMPRESSIBLE << 1)
+    NAMEATTR_COMPRESSIBLE = 1,
+    NAMEATTR_ADDITIONAL = (NAMEATTR_COMPRESSIBLE << 1)
 };
 };
 
 
 } // namespace memory
 } // namespace memory

+ 34 - 0
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)

+ 31 - 0
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 <datasrc/memory/rdata_encoder.h>
+
+#include <gtest/gtest.h>
+
+using namespace isc::datasrc::memory;
+
+namespace {
+class RdataEncoderTest : public ::testing::Test {
+protected:
+    RdataEncoderTest() {}
+};
+
+TEST_F(RdataEncoderTest, test1) {
+    EXPECT_NE(NAMEATTR_COMPRESSIBLE, NAMEATTR_ADDITIONAL);
+}
+
+}

+ 23 - 0
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 <gtest/gtest.h>
+#include <util/unittests/run_all.h>
+
+int
+main(int argc, char* argv[]) {
+    ::testing::InitGoogleTest(&argc, argv);
+
+    return (isc::util::unittests::run_all());
+}