m4_define([RELEASE], 1.5.2)
AC_INIT([mtd-utils], [RELEASE], [linux-mtd@lists.infradead.org], mtd-utils)
+
+
+AC_ARG_ENABLE([unit-tests],
+ [AS_HELP_STRING([--enable-unit-tests], [Compile unit test programs])],
+ [case "${enableval}" in
+ yes) AM_CONDITIONAL([UNIT_TESTS], [true]) ;;
+ no) AM_CONDITIONAL([UNIT_TESTS], [false]) ;;
+ *) AC_MSG_ERROR([bad value ${enableval} for --enable-unit-tests]) ;;
+ esac],
+ [AM_CONDITIONAL([UNIT_TESTS], [false])])
+
+AM_COND_IF([UNIT_TESTS], [: ${CFLAGS=""}], [])
+
+
AC_CONFIG_MACRO_DIR([m4])
AM_INIT_AUTOMAKE([foreign subdir-objects dist-bzip2])
AM_SILENT_RULES([yes])
PKG_CHECK_MODULES(ZLIB, [ zlib ])
PKG_CHECK_MODULES(UUID, [ uuid ])
+AM_COND_IF([UNIT_TESTS], [PKG_CHECK_MODULES(CMOCKA, [ cmocka ])], [])
+
AM_COND_IF([WITHOUT_LZO], [], [
have_lzo="yes"
AC_ARG_VAR([LZO_CFLAGS], [C compiler flags for lzo])
--- /dev/null
+ubilib_test_SOURCES = tests/unittests/libubi_test.c ubi-utils/libubi.c
+ubilib_test_LDADD = $(CMOCKA_LIBS)
+ubilib_test_LDFLAGS = -Wl,--wrap=open -Wl,--wrap=close -Wl,--wrap=stat -Wl,--wrap=ioctl -Wl,--wrap=read -Wl,--wrap=lseek
+ubilib_test_CPPFLAGS = -O0 --std=gnu99 $(CMOCKA_CFLAGS) -I ubi-utils/include -I include -DSYSFS_ROOT='"tests/unittests/sysfs_mock"'
+
+mtdlib_test_SOURCES = tests/unittests/libmtd_test.c lib/libmtd.c lib/libmtd_legacy.c
+mtdlib_test_LDADD = $(CMOCKA_LIBS)
+mtdlib_test_LDFLAGS = -Wl,--wrap=open -Wl,--wrap=close -Wl,--wrap=stat -Wl,--wrap=ioctl -Wl,--wrap=read -Wl,--wrap=lseek -Wl,--wrap=write
+mtdlib_test_CPPFLAGS = -O0 --std=gnu99 $(CMOCKA_CFLAGS) -I lib/ -I include -DSYSFS_ROOT='"tests/unittests/sysfs_mock"'
+
+TEST_BINS = \
+ ubilib_test \
+ mtdlib_test
+
+
+noinst_PROGRAMS += $(TEST_BINS)