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 this untested when the kernel version is less than 2.6.22. Signed-off-by: Peng Haitao <[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..de3dd0e --- /dev/null +++ b/testcases/open_posix_testsuite/Makefile.linux @@ -0,0 +1,20 @@ +all: conformance-all functional-all stress-all tools-all filter-broken + +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) + +kver_cmp = $(shell $(top_srcdir)/scripts/tst_kvercmp.sh 2 6 22) +ifeq ($(kver_cmp), 1) +filter-broken: t_sigaction_16-1 +else +filter-broken: +endif + +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.3.1 ------------------------------------------------------------------------------ DreamFactory - Open Source REST & JSON Services for HTML5 & Native Apps OAuth, Users, Roles, SQL, NoSQL, BLOB Storage and External API Access Free app hosting. Or install the open source package on any LAMP server. Sign up and see examples for AngularJS, jQuery, Sencha Touch and Native! http://pubads.g.doubleclick.net/gampad/clk?id=63469471&iu=/4140/ostg.clktrk _______________________________________________ Ltp-list mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/ltp-list
