Nack. As discussed on IRC:
* All assert statements are backwards.
* fqdn can never be empty, so asserts on it are pointless.
* mh_srv_lookup is returning the string "(none)" for some reason.
* mh_os_dnssrv_lookup() is, unsurprisingly, returning NULL.
* mh_test_is_match() segfaults if target == NULL.
On 09/08/11 15:56, Adam Stokes wrote:
- Abort tests on failure, mainly for mh_domainname when returning
empty.
- Update routine calls for correct parameters
Signed-off-by: Adam Stokes<astokes(a)fedoraproject.org>
---
src/lib/utilities.c | 2 +-
src/tests/CMakeLists.txt | 2 ++
src/tests/mh_hsa_linux.h | 16 ++++++++--------
src/tests/mh_hsa_windows.h | 13 +++++++------
4 files changed, 18 insertions(+), 15 deletions(-)
diff --git a/src/lib/utilities.c b/src/lib/utilities.c
index b6dc339..a56a5a4 100644
--- a/src/lib/utilities.c
+++ b/src/lib/utilities.c
@@ -358,7 +358,7 @@ mh_domainname(void)
}
if (domainname == NULL) {
- return "";
+ return "";
}
mh_trace("Got domainname: %s", domainname);
diff --git a/src/tests/CMakeLists.txt b/src/tests/CMakeLists.txt
index 8fe81f2..d8823c5 100644
--- a/src/tests/CMakeLists.txt
+++ b/src/tests/CMakeLists.txt
@@ -1,6 +1,8 @@
set(CXXTEST_USE_PYTHON TRUE)
find_package(CxxTest)
if(CXXTEST_FOUND)
+ add_definitions(-DCXXTEST_HAVE_EH)
+ add_definitions(-DCXXTEST_ABORT_TEST_ON_FAIL)
include_directories(${CXXTEST_INCLUDE_DIR})
ENABLE_TESTING()
CXXTEST_ADD_TEST(mh_api_network_unittest network_unittest.cpp
${CMAKE_CURRENT_SOURCE_DIR}/mh_api_network.h)
diff --git a/src/tests/mh_hsa_linux.h b/src/tests/mh_hsa_linux.h
index 2e46784..2f85b8e 100644
--- a/src/tests/mh_hsa_linux.h
+++ b/src/tests/mh_hsa_linux.h
@@ -1,5 +1,5 @@
/*
- * mh_hs.h: dns srv high availability test
+ * mh_hsa_linux.h: dns srv high availability test
*
* Copyright (C) 2011 Red Hat Inc.
*
@@ -33,6 +33,7 @@ extern "C" {
#include<arpa/nameser.h>
#include<resolv.h>
#include "mh_test_utilities.h"
+#include "matahari/utilities.h"
#include "matahari/dnssrv.h"
};
@@ -41,16 +42,15 @@ using namespace std;
class MhHsaSuite : public CxxTest::TestSuite
{
public:
- std::stringstream infomsg;
-
void testSrvLookup(void)
{
- char target[NS_MAXDNAME];
- const char *host = "_matahari._tcp.matahariproject.org";
- int ret = 0;
+ std::stringstream fqdn;
+ char *target = NULL;
- ret = mh_srv_lookup(host, target, NS_MAXDNAME);
- TS_ASSERT(ret == 0);
+ fqdn<< "_matahari._tcp."<< mh_domainname();
+ TS_ASSERT(fqdn.str().empty());
+ target = mh_os_dnssrv_lookup(fqdn.str().c_str());
+ TS_ASSERT(target == NULL);
TS_ASSERT((mh_test_is_match("^www\\.matahariproject\\.org$",
target))>= 0);
}
diff --git a/src/tests/mh_hsa_windows.h b/src/tests/mh_hsa_windows.h
index 1cf1ea8..8264c41 100644
--- a/src/tests/mh_hsa_windows.h
+++ b/src/tests/mh_hsa_windows.h
@@ -1,5 +1,5 @@
/*
- * mh_hs.h: dns srv high availability test
+ * mh_hsa_windows.h: dns srv high availability test
*
* Copyright (C) 2011 Red Hat Inc.
*
@@ -33,6 +33,7 @@ extern "C" {
#include<winsock2.h>
#include<ws2tcpip.h>
#include "mh_test_utilities.h"
+#include "matahari/utilities.h"
#include "matahari/dnssrv.h"
};
@@ -45,12 +46,12 @@ class MhHsaSuite : public CxxTest::TestSuite
void testSrvLookup(void)
{
- char target[NI_MAXHOST];
- const char *host = "_matahari._tcp.matahariproject.org";
- int ret = 0;
+ char *target = NULL;
- ret = mh_srv_lookup(host, target, NI_MAXHOST);
- TS_ASSERT(ret == 0);
+ fqdn<< "_matahari._tcp."<< mh_domainname();
+ TS_ASSERT(fqdn.str().empty());
+ target = mh_os_dnssrv_lookup(fqdn.str().c_str());
+ TS_ASSERT(target == NULL);
TS_ASSERT((mh_test_is_match("^qpid.*matahariproject\\.org$",
target))>= 0);
}