2015-09-04 04:52:41 +03:00
|
|
|
|
2015-09-07 23:07:48 +03:00
|
|
|
CFLAGS += -Wall -Werror -Wno-unused-function -g
|
2015-09-07 22:05:55 +03:00
|
|
|
CFLAGS += -L ../../
|
|
|
|
CFLAGS += -I ../../include
|
Unit testing in CI (#651)
- in appveyor, install clang and cmake in cygwin, enable package upgrades, and build cmocka and enable testing for gcc only
- in `gitignore`, ignore generated cmocka folder
- in travis, use brew in osx to install cmocka, and enable testing for gcc and clang on os x and linux
- in `Makefile`, change to use `uname -s` to determine os type
- make `install-cmocka-linux.sh`, a simple shell script to download and install cmocka on linux
- in `bindings/Makefile`, enable `make -c` to call subdirectory makefiles instead of `cd [dir] && make` and include environment variables for runtime access to generated libraries
- in `samples/Makefile`, change to use `uname -s` to determine os type, remove `clean_bins` from `all` command, and include `Werror` for compile strictness
- in `tests/unit/Makefile`, add `cflags` for compile time access to cmocka headers and library, include execute vars for runtime access to cmocka and unicorn libs
- in `tests/unit/test_tb_x86.c`, comment out assert that would not compile
2016-10-21 19:21:10 +03:00
|
|
|
CFLAGS += -L ../../cmocka/src -I ../../cmocka/include
|
|
|
|
EXECUTE_VARS = LD_LIBRARY_PATH=../../cmocka/src:../../ DYLD_LIBRARY_PATH=../../
|
2015-09-04 04:52:41 +03:00
|
|
|
|
2016-08-21 04:47:45 +03:00
|
|
|
LIBS += -lcmocka -lunicorn
|
|
|
|
|
2016-04-21 01:38:27 +03:00
|
|
|
ifeq ($(UNICORN_ASAN),yes)
|
|
|
|
CC = clang -fsanitize=address -fno-omit-frame-pointer
|
|
|
|
CXX = clang++ -fsanitize=address -fno-omit-frame-pointer
|
|
|
|
AR = llvm-ar
|
|
|
|
LDFLAGS := -fsanitize=address ${LDFLAGS}
|
|
|
|
endif
|
|
|
|
|
2016-01-17 02:05:32 +03:00
|
|
|
ALL_TESTS = test_sanity test_x86 test_mem_map test_mem_high test_mem_map_ptr \
|
2015-10-04 08:46:25 +03:00
|
|
|
test_tb_x86 test_multihook test_pc_change test_x86_soft_paging \
|
2016-08-21 04:47:45 +03:00
|
|
|
test_hookcounts test_hang test_x86_shl_enter_leave test_x86_rip_bug
|
2015-09-04 04:52:41 +03:00
|
|
|
|
2015-09-07 22:05:55 +03:00
|
|
|
.PHONY: all
|
2015-09-04 04:52:41 +03:00
|
|
|
all: ${ALL_TESTS}
|
|
|
|
|
2015-09-07 22:05:55 +03:00
|
|
|
.PHONY: clean
|
2015-09-04 04:52:41 +03:00
|
|
|
clean:
|
2015-09-24 09:18:02 +03:00
|
|
|
rm -rf ${ALL_TESTS}
|
2015-09-04 04:52:41 +03:00
|
|
|
|
2015-09-07 22:05:55 +03:00
|
|
|
.PHONY: test
|
|
|
|
test: ${ALL_TESTS}
|
Unit testing in CI (#651)
- in appveyor, install clang and cmake in cygwin, enable package upgrades, and build cmocka and enable testing for gcc only
- in `gitignore`, ignore generated cmocka folder
- in travis, use brew in osx to install cmocka, and enable testing for gcc and clang on os x and linux
- in `Makefile`, change to use `uname -s` to determine os type
- make `install-cmocka-linux.sh`, a simple shell script to download and install cmocka on linux
- in `bindings/Makefile`, enable `make -c` to call subdirectory makefiles instead of `cd [dir] && make` and include environment variables for runtime access to generated libraries
- in `samples/Makefile`, change to use `uname -s` to determine os type, remove `clean_bins` from `all` command, and include `Werror` for compile strictness
- in `tests/unit/Makefile`, add `cflags` for compile time access to cmocka headers and library, include execute vars for runtime access to cmocka and unicorn libs
- in `tests/unit/test_tb_x86.c`, comment out assert that would not compile
2016-10-21 19:21:10 +03:00
|
|
|
${EXECUTE_VARS} ./test_sanity
|
|
|
|
${EXECUTE_VARS} ./test_x86
|
|
|
|
${EXECUTE_VARS} ./test_mem_map
|
|
|
|
${EXECUTE_VARS} ./test_mem_map_ptr
|
|
|
|
${EXECUTE_VARS} ./test_mem_high
|
|
|
|
echo "skipping test_tb_x86" #${EXECUTE_VARS} ./test_tb_x86
|
|
|
|
${EXECUTE_VARS} ./test_multihook
|
|
|
|
${EXECUTE_VARS} ./test_pc_change
|
|
|
|
echo "skipping test_x86_soft_paging" #${EXECUTE_VARS} ./test_x86_soft_paging
|
|
|
|
${EXECUTE_VARS} ./test_hookcounts
|
|
|
|
echo "skipping test_hang" #${EXECUTE_VARS} ./test_hang
|
|
|
|
echo "skipping test_x86_sh1_enter_leave" #${EXECUTE_VARS} ./test_x86_shl_enter_leave
|
|
|
|
echo "skipping test_x86_rip_bug" #${EXECUTE_VARS} ./test_x86_rip_bug
|
2015-09-07 22:05:55 +03:00
|
|
|
|
2015-09-21 15:35:59 +03:00
|
|
|
test_sanity: test_sanity.c
|
2015-09-04 04:52:41 +03:00
|
|
|
test_x86: test_x86.c
|
2015-09-07 22:05:55 +03:00
|
|
|
test_mem_map: test_mem_map.c
|
2015-11-28 04:25:53 +03:00
|
|
|
test_mem_map_ptr: test_mem_map_ptr.c
|
2015-12-08 20:23:06 +03:00
|
|
|
test_mem_high: test_mem_high.c
|
2016-01-17 02:05:32 +03:00
|
|
|
test_tb_x86: test_tb_x86.c
|
2016-01-22 07:58:21 +03:00
|
|
|
test_multihook: test_multihook.c
|
2016-01-28 09:06:17 +03:00
|
|
|
test_pc_change: test_pc_change.c
|
2016-02-22 08:03:14 +03:00
|
|
|
test_x86_soft_paging: test_x86_soft_paging.c
|
2015-10-04 08:46:25 +03:00
|
|
|
test_hookcounts: test_hookcounts.c
|
2016-06-15 20:18:51 +03:00
|
|
|
test_hang: test_hang.c
|
2016-07-31 04:19:52 +03:00
|
|
|
test_x86_shl_enter_leave: test_x86_shl_enter_leave.c
|
2016-08-21 04:47:45 +03:00
|
|
|
test_x86_rip_bug: test_x86_rip_bug.c
|
2015-09-07 22:05:55 +03:00
|
|
|
|
|
|
|
${ALL_TESTS}:
|
2016-08-21 04:47:45 +03:00
|
|
|
${CC} ${CFLAGS} -o $@ $^ ${LIBS}
|