Adding gtest framework.
authorBrian Aker <brian@gaz>
Tue, 29 Jun 2010 22:04:05 +0000 (15:04 -0700)
committerBrian Aker <brian@gaz>
Tue, 29 Jun 2010 22:04:05 +0000 (15:04 -0700)
1  2 
.bzrignore
Makefile.am
libmemcached/common.h
m4/pandora_warnings.m4
tests/include.am
unittests/include.am
unittests/main.cc
unittests/strings.cc

diff --cc .bzrignore
index e28af860bad8ee84ce4753e5f9900b3dec5a3ace,e28af860bad8ee84ce4753e5f9900b3dec5a3ace..ea78c2ef1c78cf4f788d1d4cf0a44097ea267005
@@@ -181,3 -181,3 +181,4 @@@ tests/testap
  tests/testhashkit
  tests/testplus
  tests/testudp
++unittests/unittests
diff --cc Makefile.am
index d2acebaa4658258582dd8e4b712c90d91b5223f1,d855c8f493ba29053ac88e4af8f9605065283fea..38f87c5e76f02c643bba3927fb707831afb4ec89
@@@ -37,6 -38,6 +38,7 @@@ test-docs
  include libmemcached/include.am
  include clients/include.am
  include libhashkit/include.am
++include unittests/include.am
  include tests/include.am
  include example/include.am
  include support/include.am
index bfbc9220950569b45fddc320d22cb4b503b3b402,bfbc9220950569b45fddc320d22cb4b503b3b402..b45bf80791ac83de883cbbd239145dcabfefee20
@@@ -79,7 -79,7 +79,7 @@@ struct memcached_continuum_item_s
  typedef enum {
    MEM_NOT= -1,
    MEM_FALSE= false,
--  MEM_TRUE= true,
++  MEM_TRUE= true
  } memcached_ternary_t;
  
  
index 1731870d6f94fc28b17548305660724194103220,1731870d6f94fc28b17548305660724194103220..9ee365a023537af1539f10a425170aa3c9f76ca9
@@@ -145,7 -145,7 +145,7 @@@ uint16_t x= htons(80)
        m4_if(PW_LESS_WARNINGS,[no],[
          BASE_WARNINGS_FULL="-Wformat=2 ${W_CONVERSION} -Wstrict-aliasing"
          CC_WARNINGS_FULL="-Wswitch-default -Wswitch-enum -Wwrite-strings"
--        CXX_WARNINGS_FULL="-Weffc++ -Wold-style-cast"
++        CXX_WARNINGS_FULL="-Wold-style-cast"
          NO_OLD_STYLE_CAST="-Wno-old-style-cast"
          NO_EFF_CXX="-Wno-effc++"
        ],[
index f3b767cafc97972ff4b4e780431fc53eec507089,21450f6df26178039889229c793f144f223fc2c4..3631a81e25713fc083b4b2d24ff9f2b33a3ab866
@@@ -89,7 -99,7 +89,7 @@@ tests_memplus_CXXFLAGS = $(AM_CXXFLAGS
  tests_memplus_DEPENDENCIES = tests/libtest.la tests/libserver.la libmemcached/libmemcached.la
  tests_memplus_LDADD = $(tests_memplus_DEPENDENCIES)
  
--test: test-docs test-mem test-hash memcapable
++test: unittests-run test-docs test-mem test-hash memcapable
        echo "Tests completed"
  
  test-x: test-docs test-plus test-mem test-hash memcapable test-memcat test-memcp test-memrm test-memerror test-memdump test-memflush test-memstat
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..fc67e93762e7bde86dc62adc2d1ef33aaf816376
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,23 @@@
++# vim:ft=automake
++# included from Top Level Makefile.am
++# All paths should be given relative to the root
++
++if HAVE_LIBGTEST
++UNITTEST_PROGRAM= unittests/unittests
++
++noinst_PROGRAMS += $(UNITTEST_PROGRAM)
++
++unittests_unittests_SOURCES= \
++                           unittests/strings.cc \
++                           unittests/main.cc
++unittests_unittests_LDADD= \
++                         tests/libserver.la \
++                         libmemcached/libmemcachedinternal.la \
++                         ${TESTS_LDADDS} ${LTLIBGTEST}
++endif
++
++# Shorthand
++unit: unittests-run
++
++unittests-run: $(UNITTEST_PROGRAM)
++      $(UNITTEST_PROGRAM)
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..7e575c3079603713f02f4aa321b658d8bd605ba4
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,21 @@@
++/* -*- mode: c; c-basic-offset: 2; indent-tabs-mode: nil; -*-
++ *  vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
++ *
++ *  Copyright (C) 2010 Monty Taylor
++ *
++ *  All rights reserved.
++ *
++ *  Use and distribution licensed under the BSD license.  See
++ *  the COPYING file in the parent directory for full text.
++ */
++
++#include "config.h"
++
++#include <gtest/gtest.h>
++
++
++int main(int argc, char **argv)
++{
++  ::testing::InitGoogleTest(&argc, argv);
++  return RUN_ALL_TESTS();
++}
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..8728926bd00ed346277794d12fe3fdfe7629f8f0
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,131 @@@
++/* libMemcached
++ * Copyright (C) 2010 Brian Aker
++ * All rights reserved.
++ *
++ * Use and distribution licensed under the BSD license.  See
++ * the COPYING file in the parent directory for full text.
++ */
++
++#include "config.h"
++
++#include <gtest/gtest.h>
++
++#include <libmemcached/common.h>
++
++TEST(memcached_string_st, memcached_create_static)
++{
++  memcached_string_st string;
++  memcached_string_st *string_ptr;
++
++  memcached_st *memc= memcached_create(NULL);
++  string_ptr= memcached_string_create(memc, &string, 0);
++  ASSERT_TRUE(string.options.is_initialized);
++  ASSERT_TRUE(string_ptr);
++
++  /* The following two better be the same! */
++  ASSERT_FALSE(memcached_is_allocated(string_ptr));
++  ASSERT_FALSE(memcached_is_allocated(&string));
++  EXPECT_EQ(&string, string_ptr);
++
++  ASSERT_TRUE(string.options.is_initialized);
++  ASSERT_TRUE(memcached_is_initialized(&string));
++  memcached_string_free(&string);
++  ASSERT_FALSE(memcached_is_initialized(&string));
++
++  memcached_free(memc);
++}
++
++TEST(memcached_string_st, memcached_create_null)
++{
++  memcached_string_st *string;
++  memcached_st *memc= memcached_create(NULL);
++
++  string= memcached_string_create(memc, NULL, 0);
++  ASSERT_TRUE(string);
++  ASSERT_TRUE(memcached_is_allocated(string));
++  ASSERT_TRUE(memcached_is_initialized(string));
++  memcached_string_free(string);
++
++  memcached_free(memc);
++}
++
++TEST(memcached_string_st, string_alloc_with_size)
++{
++  memcached_string_st *string;
++  memcached_st *memc= memcached_create(NULL);
++
++  string= memcached_string_create(memc, NULL, 1024);
++  ASSERT_TRUE(string);
++  ASSERT_TRUE(memcached_is_allocated(string));
++  ASSERT_TRUE(memcached_is_initialized(string));
++  memcached_string_free(string);
++
++  memcached_free(memc);
++}
++
++TEST(memcached_string_st, string_alloc_with_size_toobig)
++{
++  memcached_st *memc= memcached_create(NULL);
++  memcached_string_st *string;
++
++  string= memcached_string_create(memc, NULL, SIZE_MAX);
++  ASSERT_FALSE(string);
++
++  memcached_free(memc);
++}
++
++TEST(memcached_string_st, string_alloc_append)
++{
++  char buffer[SMALL_STRING_LEN];
++  memcached_string_st *string;
++
++  memcached_st *memc= memcached_create(NULL);
++
++  /* Ring the bell! */
++  memset(buffer, 6, SMALL_STRING_LEN);
++
++  string= memcached_string_create(memc, NULL, 100);
++  ASSERT_TRUE(string);
++  ASSERT_TRUE(memcached_is_allocated(string));
++  ASSERT_TRUE(memcached_is_initialized(string));
++
++  for (uint32_t x= 0; x < 1024; x++)
++  {
++    memcached_return_t rc;
++    rc= memcached_string_append(string, buffer, SMALL_STRING_LEN);
++    EXPECT_EQ(rc, MEMCACHED_SUCCESS);
++  }
++  ASSERT_TRUE(memcached_is_allocated(string));
++  memcached_string_free(string);
++
++  memcached_free(memc);
++}
++
++TEST(memcached_string_st, string_alloc_append_toobig)
++{
++  memcached_return_t rc;
++  char buffer[SMALL_STRING_LEN];
++  memcached_string_st *string;
++
++  memcached_st *memc= memcached_create(NULL);
++
++  /* Ring the bell! */
++  memset(buffer, 6, SMALL_STRING_LEN);
++
++  string= memcached_string_create(memc, NULL, 100);
++  ASSERT_TRUE(string);
++  ASSERT_TRUE(memcached_is_allocated(string));
++  ASSERT_TRUE(memcached_is_initialized(string));
++
++  for (uint32_t x= 0; x < 1024; x++)
++  {
++    rc= memcached_string_append(string, buffer, SMALL_STRING_LEN);
++    EXPECT_EQ(rc, MEMCACHED_SUCCESS);
++  }
++  rc= memcached_string_append(string, buffer, SIZE_MAX);
++  EXPECT_EQ(rc, MEMCACHED_MEMORY_ALLOCATION_FAILURE);
++  ASSERT_TRUE(memcached_is_allocated(string));
++  memcached_string_free(string);
++
++  memcached_free(memc);
++}