export CFLAGS += $(ARCH)
ROLLUP_LOG = run.log
LTP_BASE = ltp-full
LTP_ROLLUP_LOG = ../../ltp.rollup.log
LTP_RUN_LOG = ltp.run.log
PRIMARY_SCENARIO = syscalls
# Note: syscalls suite is implicit...  all other suites will be appended to syscalls
SCENARIOS_TO_INCLUDE = admin_tools \
	modules \
	network_commands \
	quickhit \
	stress.part3 \
	tcp_cmds \
	tcp_cmds_noexpect
TESTS_TO_EXCLUDE = arp \
	cron01 \
	echo \
	finger \
	ftp \
	host \
	iptables \
	rcp \
	rpc01 \
	rdist \
	rlogin \
	rsh \
	rwho \
	sendfile \
	swapon02 \
	tcpdump \
	telnet \
	ulimit01 \
	statfs03 \
	nftw6401

all:: extract
	if [ `uname -m | sed s/i.86/ix86/` != "ix86" && "$$MODE" != "32" -a "$$MODE" != "64" ]; then echo "ERROR: You must define MODE=32 or MODE=64 !!!"; exit 1; fi
#Additions for including delete_module in build process
	patch -p1 < patches/Ker_Makefile.patch
	patch -p1 < patches/Mod_Makefile.patch
# end of changes for delete module tests
	@$(MAKE) -C $(LTP_BASE)
	-rm -f $(LTP_BASE)/runtest/$(PRIMARY_SCENARIO)
	for scenario in $(SCENARIOS_TO_INCLUDE) ; do cat $(LTP_BASE)/runtest/$$scenario >> $(LTP_BASE)/runtest/$(PRIMARY_SCENARIO) ; done
	for test in $(TESTS_TO_EXCLUDE); do grep -v "^$$test " $(LTP_BASE)/runtest/$(PRIMARY_SCENARIO) > $(LTP_BASE)/runtest/$(PRIMARY_SCENARIO).new; mv -f $(LTP_BASE)/runtest/$(PRIMARY_SCENARIO).new $(LTP_BASE)/runtest/$(PRIMARY_SCENARIO); done
	for file in `ls $(LTP_BASE)/runtest/* | grep -v $(PRIMARY_SCENARIO)`; do echo "" > $$file; done
	@$(MAKE) -C $(LTP_BASE) install

extract:: clean
	tar zxvf ltp-full.tar.gz
	mv -f ltp-full-* $(LTP_BASE)
#Applying temporary patches
	cp patches/dummy_del_mod.c $(LTP_BASE)/testcases/kernel/module/delete_module
	cp patches/dummy_del_mod_dep.c $(LTP_BASE)/testcases/kernel/module/delete_module
	cp patches/semtimedop02.c $(LTP_BASE)/testcases/kernel/syscalls/ipc/semop
	echo "semtimedop02 semtimedop02" >> $(LTP_BASE)/runtest/stress.part3
	patch -p1 < patches/semop_Makefile.patch
	patch -p1 < patches/su01_s1.patch
	patch -p1 < patches/delete_module01.patch
	patch -p1 < patches/delete_module03.patch
	patch -p1 < patches/cron_neg_test.patch
	patch -p1 < patches/cron_pos_test.patch
	patch -p1 < patches/cron_allow.patch
	patch -p1 < patches/cron_deny.patch
	patch -p1 < patches/ssh01_s1.patch
	patch -p1 < patches/ssh02_s1.patch
	patch -p1 < patches/ssh03_s1.patch
	patch -p1 < patches/tcp_cmd_makefile.patch
	patch -p1 < patches/commands_makefile.patch
	if [ `uname -m` == "s390x" -a "$$MODE" == "32" ]; then \
	patch -p1 < patches/stress.part3.z31.patch; \
	else \
	patch -p1 < patches/stress.part3.patch; \
	fi

clean::
	-rm -rf $(LTP_BASE)

msgque::
	../rm_msgque

run:: verifydeps msgque
	echo "Makefile: run"
	if [ -z "$$PASSWD" ]; then echo "ERROR: You must export root's password in variable PASSWD for LTP tests"; exit 1; fi
	if [ -z "$$RHOST" ]; then echo "ERROR: You must export RHOST=localhost for LTP tests"; exit 1; fi
	-rm -f $(LTP_ROLLUP_LOG)
	sh $(LTP_BASE)/runalltests.sh -N -p -l $(LTP_ROLLUP_LOG) > $(LTP_RUN_LOG) 2>&1
	make report

report::
	-rm -f $(ROLLUP_LOG)
	echo "==> ltp_EAL2 <==" >> $(ROLLUP_LOG)
	echo "TEST PASSED = " `grep PASS ltp.rollup.log | wc -l` ", FAILED = " `grep FAIL ltp.rollup.log | wc -l` >> $(ROLLUP_LOG)
	echo "----------------------------------" >> $(ROLLUP_LOG)
	echo "FAIL:" >> $(ROLLUP_LOG)
	if [ `grep FAIL ltp.rollup.log | wc -l` -ne 0 ]; then grep -H "\WFAIL\W" ltp.rollup.log  >> $(ROLLUP_LOG); fi

include ../ltprules.mk
