PKG_PROG_PKG_CONFIG
# Check for dependencies
-AC_CHECK_FUNCS([opendir, mkdtemp, gettimeofday, time])
+AC_CHECK_FUNCS([opendir mkdtemp gettimeofday time])
PKG_CHECK_MODULES([libknot], [libknot])
PKG_CHECK_MODULES([libuv], [libuv], [build_daemon=yes], [build_daemon=no])
PKG_CHECK_MODULES([cmocka], [cmocka], [build_tests=yes], [build_tests=no])
-# Unit tests
-if BUILD_TESTS
-
AM_CPPFLAGS = \
-include $(top_builddir)/config.h \
-I$(top_srcdir)/lib \
$(libknot_LIBS) \
$(cmocka_LIBS)
+# Unit tests
+if BUILD_TESTS
check_PROGRAMS = \
test_cache \
@echo "---- Executing unit tests ----"
$(top_builddir)/tests/runtests -b $(top_builddir)/tests $(check_PROGRAMS)
+else
+
+check-local-exec:
+
endif
# Integration tests
check_LTLIBRARIES = _test_integration.la
_test_integration_la_SOURCES = test_integration.c
-_test_integration_la_CPPFLAGS = $(PYTHON_CPPFLAGS) $(AM_CPPFLAGS)
-_test_integration_la_LDFLAGS = -rpath $(abs_builddir) -module -shared -avoid-version --wrap=gettimeofday
+_test_integration_la_CPPFLAGS = $(AM_CPPFLAGS) $(PYTHON_CPPFLAGS)
+_test_integration_la_LDFLAGS = $(LDFLAGS) -rpath $(abs_builddir) -module -shared -avoid-version --wrap=gettimeofday
_test_integration_la_LIBADD = $(top_builddir)/lib/libkresolve_static.la $(libknot_LIBS) $(PYTHON_LIBS)
-convenience-link: $(noinst_LTLIBRARIES)
- @for soname in `echo | $(EGREP) "^dlname=" $(noinst_LTLIBRARIES) | $(SED) -e "s|^dlname='\(.*\)'|\1|"`; do \
+convenience-link: $(check_LTLIBRARIES)
+ @for soname in `echo | $(EGREP) "^dlname=" $(check_LTLIBRARIES) | $(SED) -e "s|^dlname='\(.*\)'|\1|"`; do \
rm -f $(abs_builddir)/$$soname; $(LN_S) $(abs_builddir)/.libs/$$soname $$soname || true;\
done
check-local-integration: convenience-link
@echo "---- Executing integration tests ----"
- echo ./test_integration.py testdata
+ @$(abs_builddir)/test_integration.py testdata
clean-local:
- @for soname in `echo | $(EGREP) "^dlname=" $(noinst_LTLIBRARIES) | $(SED) -e "s|^dlname='\(.*\)'|\1|"`; do \
+ @for soname in `echo | $(EGREP) "^dlname=" $(check_LTLIBRARIES) | $(SED) -e "s|^dlname='\(.*\)'|\1|"`; do \
test -L $(abs_builddir)/$$soname && rm -f $(abs_builddir)/$$soname || true; \
done
else
test_mm_ctx_init(&global_mm);
kr_context_init(&global_context, &global_mm);
global_tmpdir = test_tmpdir_create();
+ assert(global_tmpdir);
global_context.cache = kr_cache_open(global_tmpdir, &global_mm, CACHE_SIZE);
- if (global_context.cache == NULL) {
- test_tmpdir_remove(global_tmpdir);
- kr_context_deinit(&global_context);
- return NULL;
- }
+ assert(global_context.cache);
return Py_BuildValue("s", PACKAGE_STRING " (integration tests)");
}
int __wrap_gettimeofday(struct timeval *tv, struct timezone *tz)
{
- if (_mock_fd < 0) {
- gettimeofday(tv, tz);
- } else {
- memcpy(tv, &_mock_time, sizeof(struct timeval));
- }
fprintf(stderr, "gettimeofday = %ld\n", tv->tv_sec);
+ memcpy(tv, &_mock_time, sizeof(struct timeval));
return 0;
}
char addr_str[SOCKADDR_STRLEN];
sockaddr_tostr(addr_str, sizeof(addr_str), ss);
fprintf(stderr, "%s (%d, %s)\n", __func__, type, addr_str);
- if (_mock_fd < 0) {
- return net_unbound_socket(type, ss);
- } else {
- return _mock_fd;
- }
+ return _mock_fd;
}
int net_bound_socket(int type, const struct sockaddr_storage *ss)
char addr_str[SOCKADDR_STRLEN];
sockaddr_tostr(addr_str, sizeof(addr_str), ss);
fprintf(stderr, "%s (%d, %s)\n", __func__, type, addr_str);
- if (_mock_fd < 0) {
- return net_bound_socket(type, ss);
- } else {
- return _mock_fd;
- }
+ return _mock_fd;
}
int net_connected_socket(int type, const struct sockaddr_storage *dst_addr,
sockaddr_tostr(dst_addr_str, sizeof(dst_addr_str), dst_addr);
sockaddr_tostr(src_addr_str, sizeof(src_addr_str), src_addr);
fprintf(stderr, "%s (%d, %s, %s, %u)\n", __func__, type, dst_addr_str, src_addr_str, flags);
- if (_mock_fd < 0) {
- return net_connected_socket(type, dst_addr, src_addr, flags);
- } else {
- return _mock_fd;
- }
+ return _mock_fd;
}
int net_is_connected(int fd)
{
fprintf(stderr, "%s (%d)\n", __func__, fd);
- if (fd < 0) {
- return false;
- } else {
- return net_is_connected(fd);
- }
+ return true;
}