Add a regression test directory.
This commit is contained in:
parent
f237d44339
commit
9cc31f6aad
5 changed files with 107 additions and 1 deletions
|
@ -2,7 +2,7 @@ ACLOCAL_AMFLAGS = -I m4
|
|||
|
||||
AM_CFLAGS = $(LIBNFC_CFLAGS)
|
||||
|
||||
SUBDIRS = libnfc examples include cmake_modules
|
||||
SUBDIRS = libnfc examples include cmake_modules test
|
||||
|
||||
pkgconfigdir = $(libdir)/pkgconfig
|
||||
pkgconfig_DATA = libnfc.pc
|
||||
|
|
|
@ -111,6 +111,14 @@ AC_SUBST(PKG_CONFIG_REQUIRES)
|
|||
AM_CONDITIONAL(LIBUSB_ENABLED, [test "$HAVE_LIBUSB" = "1"])
|
||||
AM_CONDITIONAL(PCSC_ENABLED, [test "$HAVE_PCSC" = "1"])
|
||||
|
||||
CUTTER_REQUIRED_VERSION=1.1.2
|
||||
m4_ifdef([AC_CHECK_CUTTER], [AC_CHECK_CUTTER([>= $CUTTER_REQUIRED_VERSION])], [ac_cv_use_cutter="no"])
|
||||
if test x$ac_cv_with_cutter = xyes -a x$ac_cv_use_cutter = xno; then
|
||||
AC_MSG_ERROR([cutter >= $CUTTER_REQUIRED_VERSION is mandatory.])
|
||||
fi
|
||||
AM_CONDITIONAL([WITH_CUTTER], [test "$ac_cv_use_cutter" != "no"])
|
||||
|
||||
|
||||
# Defines and C flags
|
||||
CFLAGS="$CFLAGS -std=c99"
|
||||
|
||||
|
@ -127,6 +135,7 @@ AC_CONFIG_FILES([
|
|||
libnfc/Makefile
|
||||
examples/Makefile
|
||||
cmake_modules/Makefile
|
||||
test/Makefile
|
||||
libnfc.pc
|
||||
Doxyfile
|
||||
])
|
||||
|
|
24
test/Makefile.am
Normal file
24
test/Makefile.am
Normal file
|
@ -0,0 +1,24 @@
|
|||
# $Id$
|
||||
|
||||
INCLUDES = $(CUTTER_CFLAGS) $(LIBNFC_CFLAGS)
|
||||
LIBS = $(CUTTER_LIBS)
|
||||
|
||||
if WITH_CUTTER
|
||||
TESTS = run-test.sh
|
||||
TESTS_ENVIRONMENT = NO_MAKE=yes CUTTER="$(CUTTER)"
|
||||
|
||||
noinst_LTLIBRARIES = \
|
||||
test_access.la
|
||||
|
||||
AM_LDFLAGS = -module -rpath $(libdir) -avoid-version -no-undefined
|
||||
|
||||
test_access_la_SOURCES = test_access.c
|
||||
test_access_la_LIBADD = $(top_builddir)/libnfc/libnfc.la
|
||||
|
||||
echo-cutter:
|
||||
@echo $(CUTTER)
|
||||
|
||||
EXTRA_DIST = run-test.sh
|
||||
CLEANFILES = *.gcno
|
||||
|
||||
endif
|
17
test/run-test.sh
Executable file
17
test/run-test.sh
Executable file
|
@ -0,0 +1,17 @@
|
|||
#!/bin/sh
|
||||
|
||||
export BASE_DIR="`dirname $0`"
|
||||
|
||||
if test -z "$NO_MAKE"; then
|
||||
make -C "$BASE_DIR/../" > /dev/null || exit 1
|
||||
fi
|
||||
|
||||
if test -z "$CUTTER"; then
|
||||
CUTTER="`make -s -C "$BASE_DIR" echo-cutter`"
|
||||
fi
|
||||
|
||||
"$CUTTER" --keep-opening-modules -s "$BASE_DIR" "$@" "$BASE_DIR"
|
||||
# ^^^^^^^^^^^^^^^^^^^^^^
|
||||
# FIXME: Remove this workaround once cutter has been fixed upstream.
|
||||
# Bug report:
|
||||
# http://sourceforge.net/mailarchive/forum.php?thread_name=20100626123941.GA258%40blogreen.org&forum_name=cutter-users-en
|
56
test/test_access.c
Normal file
56
test/test_access.c
Normal file
|
@ -0,0 +1,56 @@
|
|||
#include <cutter.h>
|
||||
|
||||
#include <nfc/nfc.h>
|
||||
|
||||
#define NTESTS 42
|
||||
#define MAX_TARGET_COUNT 8
|
||||
|
||||
void
|
||||
test_access (void)
|
||||
{
|
||||
int n = NTESTS;
|
||||
nfc_device_desc_t devices[8];
|
||||
size_t device_count, ref_device_count, target_count;
|
||||
bool res;
|
||||
|
||||
nfc_list_devices (devices, 8, &ref_device_count);
|
||||
if (!ref_device_count)
|
||||
cut_omit ("No NFC device found");
|
||||
|
||||
while (n) {
|
||||
size_t i;
|
||||
|
||||
nfc_list_devices (devices, 8, &device_count);
|
||||
cut_assert_equal_int (ref_device_count, device_count, cut_message ("device count"));
|
||||
|
||||
for (i = 0; i < device_count; i++) {
|
||||
nfc_device_t *device;
|
||||
nfc_target_info_t anti[MAX_TARGET_COUNT];
|
||||
|
||||
device = nfc_connect (&(devices[i]));
|
||||
cut_assert_not_null (device, cut_message ("nfc_connect"));
|
||||
|
||||
nfc_initiator_init(device);
|
||||
|
||||
// Drop the field for a while
|
||||
nfc_configure(device,NDO_ACTIVATE_FIELD,false);
|
||||
|
||||
// Let the reader only try once to find a tag
|
||||
nfc_configure(device,NDO_INFINITE_SELECT,false);
|
||||
|
||||
// Configure the CRC and Parity settings
|
||||
nfc_configure(device,NDO_HANDLE_CRC,true);
|
||||
nfc_configure(device,NDO_HANDLE_PARITY,true);
|
||||
|
||||
// Enable field so more power consuming cards can power themselves
|
||||
nfc_configure(device,NDO_ACTIVATE_FIELD,true);
|
||||
|
||||
res = nfc_initiator_list_passive_targets(device, NM_ISO14443A_106, anti, MAX_TARGET_COUNT, &target_count);
|
||||
cut_assert_true (res, cut_message ("nfc_initiator_list_passive_targets"));
|
||||
|
||||
nfc_disconnect (device);
|
||||
}
|
||||
|
||||
n--;
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue