From 6dcf379ed72ea29dfa8f5333a2a43e656e3eb962 Mon Sep 17 00:00:00 2001 From: Colin Patrick McCabe Date: Fri, 5 Aug 2011 11:04:08 -0700 Subject: [PATCH] add config unit test Signed-off-by: Colin McCabe --- src/Makefile.am | 6 +++++ src/test/config.cc | 63 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 69 insertions(+) create mode 100644 src/test/config.cc diff --git a/src/Makefile.am b/src/Makefile.am index c1cf07150375a..95c4e69bb3442 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -543,6 +543,12 @@ unittest_formatter_LDADD = ${UNITTEST_LDADD} $(LIBGLOBAL_LDA) unittest_formatter_CXXFLAGS = ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS} check_PROGRAMS += unittest_formatter +unittest_config_SOURCES = test/config.cc +unittest_config_LDFLAGS = -pthread ${AM_LDFLAGS} +unittest_config_LDADD = librados.la ${UNITTEST_LDADD} +unittest_config_CXXFLAGS = ${CRYPTO_CFLAGS} ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS} +check_PROGRAMS += unittest_config + if WITH_RADOSGW unittest_librgw_SOURCES = test/librgw.cc unittest_librgw_LDFLAGS = -lrt -pthread -lcurl ${AM_LDFLAGS} diff --git a/src/test/config.cc b/src/test/config.cc new file mode 100644 index 0000000000000..210fcd0364c15 --- /dev/null +++ b/src/test/config.cc @@ -0,0 +1,63 @@ +// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- +// vim: ts=8 sw=2 smarttab +/* + * Ceph - scalable distributed file system + * + * Copyright (C) 2011 New Dream Network + * + * This is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software + * Foundation. See file COPYING. + * + */ + +#include "gtest/gtest.h" +#include "include/rados/librados.h" + +#include +#include +#include + +using std::string; + +TEST(RadosConfig, SimpleSet) { + rados_t cl; + int ret = rados_create(&cl, NULL); + ASSERT_EQ(ret, 0); + + ret = rados_conf_set(cl, "debug", "21"); + ASSERT_EQ(ret, 0); + + char buf[128]; + memset(buf, 0, sizeof(buf)); + ret = rados_conf_get(cl, "debug", buf, sizeof(buf)); + ASSERT_EQ(ret, 0); + ASSERT_EQ(string("21"), string(buf)); + + rados_shutdown(cl); +} + +TEST(RadosConfig, ArgV) { + rados_t cl; + int ret = rados_create(&cl, NULL); + ASSERT_EQ(ret, 0); + + const char *argv[] = { "foo", "--debug", "2", + "--keyfile", "/tmp/my-keyfile", NULL }; + size_t argc = (sizeof(argv) / sizeof(argv[0])) - 1; + rados_conf_parse_argv(cl, argc, argv); + + char buf[128]; + memset(buf, 0, sizeof(buf)); + ret = rados_conf_get(cl, "keyfile", buf, sizeof(buf)); + ASSERT_EQ(ret, 0); + ASSERT_EQ(string("/tmp/my-keyfile"), string(buf)); + + memset(buf, 0, sizeof(buf)); + ret = rados_conf_get(cl, "debug", buf, sizeof(buf)); + ASSERT_EQ(ret, 0); + ASSERT_EQ(string("2"), string(buf)); + + rados_shutdown(cl); +} -- 2.39.5