As the Linux signal(7) said: POSIX semaphore interfaces: sem_wait(3) and sem_timedwait(3) (since Linux 2.6.22; beforehand, always failed with EINTR).
So, on Linux, we just leave it untested when the kernel version is less than 2.6.22 and user wants to filter it. Signed-off-by: Peng Haitao <[email protected]> Signed-off-by: Jan Stancek <[email protected]> --- testcases/open_posix_testsuite/Makefile | 4 ++++ testcases/open_posix_testsuite/Makefile.linux | 20 ++++++++++++++++++++ .../open_posix_testsuite/scripts/tst_kvercmp.sh | 20 ++++++++++++++++++++ 3 files changed, 44 insertions(+) create mode 100644 testcases/open_posix_testsuite/Makefile.linux create mode 100755 testcases/open_posix_testsuite/scripts/tst_kvercmp.sh diff --git a/testcases/open_posix_testsuite/Makefile b/testcases/open_posix_testsuite/Makefile index 9c61fa4..500ddc2 100644 --- a/testcases/open_posix_testsuite/Makefile +++ b/testcases/open_posix_testsuite/Makefile @@ -40,6 +40,10 @@ exec_prefix?= $(prefix) all: conformance-all functional-all stress-all tools-all +ifeq ($(shell uname -s), Linux) +include Makefile.linux +endif + clean: $(CRITICAL_MAKEFILES) @rm -f $(LOGFILE)* @for dir in $(SUBDIRS) tools; do \ diff --git a/testcases/open_posix_testsuite/Makefile.linux b/testcases/open_posix_testsuite/Makefile.linux new file mode 100644 index 0000000..3b09433 --- /dev/null +++ b/testcases/open_posix_testsuite/Makefile.linux @@ -0,0 +1,20 @@ +cmd_disable = @set -e; \ + echo "Disabling: $(1)"; \ + echo "\#!/bin/sh" > $(1); \ + echo "echo $(1) skipped" >> $(1); \ + echo "echo $(2)" >> $(1); \ + echo "exit 0" >> $(1); \ + chmod a+x $(1) + +BROKEN := + +kver_cmp = $(shell $(top_srcdir)/scripts/tst_kvercmp.sh 2 6 22) +ifeq ($(kver_cmp), 1) +BROKEN += t_sigaction_16-1 +endif + +filter-broken: $(BROKEN) + +t_sigaction_16-1: + $(call cmd_disable,conformance/interfaces/sigaction/sigaction_16-1.run-test, \ + This fails on old linux because sem_wait always be interrupted by a signal.) diff --git a/testcases/open_posix_testsuite/scripts/tst_kvercmp.sh b/testcases/open_posix_testsuite/scripts/tst_kvercmp.sh new file mode 100755 index 0000000..d0e101c --- /dev/null +++ b/testcases/open_posix_testsuite/scripts/tst_kvercmp.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +if [ $# -ne 3 ]; then + echo "Usgae: ./tst_kvercmp.sh r1 r2 r3" + exit 1 +fi + +ker_ver=$(uname -r) +r1=$(echo ${ker_ver} | awk -F. '{print $1}') +r2=$(echo ${ker_ver} | awk -F. '{print $2}') +r3=$(echo ${ker_ver} | awk -F. '{print $3}') +r3=${r3%-*} + +test_ver=$(($1 * 65536 + $2 * 256 + $3)) +curr_ver=$((${r1} * 65536 + ${r2} * 256 + ${r3})) +if [ ${curr_ver} -ge ${test_ver} ]; then + echo 0 +else + echo 1 +fi -- 1.8.5.3 ------------------------------------------------------------------------------ Flow-based real-time traffic analytics software. Cisco certified tool. Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer Customize your own dashboards, set traffic alerts and generate reports. Network behavioral analysis & security monitoring. All-in-one tool. http://pubads.g.doubleclick.net/gampad/clk?id=126839071&iu=/4140/ostg.clktrk _______________________________________________ Ltp-list mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/ltp-list
