From 1492f16d670df0470969b7ab8d9c1da2c2add812 Mon Sep 17 00:00:00 2001 From: Ken Sato Date: Mon, 9 Sep 2019 15:37:09 +0900 Subject: [PATCH] make syscall_enter arch-dependent Change-Id: I4317f3443902620ef5b3807ced05c80fa5eebbec Fujitsu: POSTK_DEBUG_ARCH_DEP_90 Refs: #1357 --- executer/user/arch/x86_64/arch_args.h | 4 -- test/issues/1357/C1357.sh | 26 ++++++++ test/issues/1357/Makefile | 11 ++++ test/issues/1357/README | 20 ++++++ test/issues/1357/aarch64_result.log | 87 ++++++++++++++++++++++++++ test/issues/1357/x86_64_result.log | 88 +++++++++++++++++++++++++++ 6 files changed, 232 insertions(+), 4 deletions(-) create mode 100755 test/issues/1357/C1357.sh create mode 100644 test/issues/1357/Makefile create mode 100644 test/issues/1357/README create mode 100644 test/issues/1357/aarch64_result.log create mode 100644 test/issues/1357/x86_64_result.log diff --git a/executer/user/arch/x86_64/arch_args.h b/executer/user/arch/x86_64/arch_args.h index b9c0eaeb..8a398170 100644 --- a/executer/user/arch/x86_64/arch_args.h +++ b/executer/user/arch/x86_64/arch_args.h @@ -21,13 +21,11 @@ get_syscall_number(syscall_args *args) return args->orig_rax; } -#ifndef POSTK_DEBUG_ARCH_DEP_90 /* syscall_enter check is arch depend. */ static inline unsigned long get_syscall_return(syscall_args *args) { return args->rax; } -#endif /* !POSTK_DEBUG_ARCH_DEP_90 */ static inline unsigned long get_syscall_arg1(syscall_args *args) @@ -119,7 +117,5 @@ set_syscall_arg6(syscall_args *args, unsigned long value) args->r9 = value; } -#ifdef POSTK_DEBUG_ARCH_DEP_90 /* syscall_enter check is arch depend. */ #define syscall_enter(argsp) (get_syscall_return(argsp) == -ENOSYS) -#endif /* POSTK_DEBUG_ARCH_DEP_90 */ #endif diff --git a/test/issues/1357/C1357.sh b/test/issues/1357/C1357.sh new file mode 100755 index 00000000..97bbd533 --- /dev/null +++ b/test/issues/1357/C1357.sh @@ -0,0 +1,26 @@ +#/bin/sh + +USELTP=1 +USEOSTEST=0 + +. ../../common.sh + +issue=1357 +tid=01 + +for tp in ptrace01 ptrace02 ptrace03 ptrace04 ptrace05 +do + tname=`printf "C${issue}T%02d" ${tid}` + echo "*** ${tname} start *******************************" + sudo $MCEXEC $LTPBIN/$tp 2>&1 | tee $tp.txt + ok=`grep TPASS $tp.txt | wc -l` + ng=`grep TFAIL $tp.txt | wc -l` + if [ $ng = 0 ]; then + echo "*** ${tname} PASSED ($ok)" + else + echo "*** ${tname} FAILED (ok=$ok ng=%ng)" + fi + let tid++ + echo "" +done + diff --git a/test/issues/1357/Makefile b/test/issues/1357/Makefile new file mode 100644 index 00000000..c075b17e --- /dev/null +++ b/test/issues/1357/Makefile @@ -0,0 +1,11 @@ +CFLAGS=-g +LDFLAGS= + +TARGET= + +all: $(TARGET) + +test: all + ./C1357.sh +clean: + rm -f $(TARGET) *.o *.txt diff --git a/test/issues/1357/README b/test/issues/1357/README new file mode 100644 index 00000000..4a181b8d --- /dev/null +++ b/test/issues/1357/README @@ -0,0 +1,20 @@ +【Issue#1357 動作確認】 +□ テスト内容 +1. 以下のLTPを用いて既存のptrace機能に影響が無いことを確認 + - ptrace01 + - ptrace02 + - ptrace03 + - ptrace04 + - ptrace05 + +□ 実行手順 +$ make test + +McKernelのインストール先や、OSTEST, LTPの配置場所は、 +$HOME/.mck_test_config を参照している +.mck_test_config は、McKernelをビルドした際に生成されるmck_test_config.sample ファイルを +$HOMEにコピーし、適宜編集する + +□ 実行結果 +x86_64_result.log aarch64_result.log 参照。 +すべての項目をPASSしていることを確認。 diff --git a/test/issues/1357/aarch64_result.log b/test/issues/1357/aarch64_result.log new file mode 100644 index 00000000..080d69b8 --- /dev/null +++ b/test/issues/1357/aarch64_result.log @@ -0,0 +1,87 @@ +*** C1357T01 start ******************************* +ptrace01 1 TPASS : Test Passed +ptrace01 2 TPASS : Test Passed +*** C1357T01 PASSED (2) + +*** C1357T02 start ******************************* +ptrace02 1 TPASS : Test Passed +ptrace02 2 TPASS : Test Passed +*** C1357T02 PASSED (2) + +*** C1357T03 start ******************************* +ptrace03 1 TCONF : ptrace03.c:137: this kernel allows to trace init +ptrace03 2 TPASS : Test Passed +ptrace03 3 TPASS : Test Passed +*** C1357T03 PASSED (2) + +*** C1357T04 start ******************************* +ptrace04 1 TCONF : ptrace04.c:105: test not supported for your arch (yet) +ptrace04 2 TCONF : ptrace04.c:105: Remaining cases not appropriate for configuration +*** C1357T04 PASSED (0) + +*** C1357T05 start ******************************* +ptrace05 0 TINFO : [child] Sending kill(.., 0) +ptrace05 1 TPASS : kill(.., 0) exited with 0, as expected. +ptrace05 2 TPASS : Stopped as expected +ptrace05 3 TPASS : Stopped as expected +ptrace05 4 TPASS : Stopped as expected +ptrace05 5 TPASS : Stopped as expected +ptrace05 6 TPASS : Stopped as expected +ptrace05 7 TPASS : Stopped as expected +ptrace05 8 TPASS : Stopped as expected +ptrace05 9 TPASS : Stopped as expected +ptrace05 10 TPASS : Killed with SIGKILL, as expected. +ptrace05 11 TPASS : Stopped as expected +ptrace05 12 TPASS : Stopped as expected +ptrace05 13 TPASS : Stopped as expected +ptrace05 14 TPASS : Stopped as expected +ptrace05 15 TPASS : Stopped as expected +ptrace05 16 TPASS : Stopped as expected +ptrace05 17 TPASS : Stopped as expected +ptrace05 18 TPASS : Stopped as expected +ptrace05 19 TPASS : Stopped as expected +ptrace05 20 TPASS : Stopped as expected +ptrace05 21 TPASS : Stopped as expected +ptrace05 22 TPASS : Stopped as expected +ptrace05 23 TPASS : Stopped as expected +ptrace05 24 TPASS : Stopped as expected +ptrace05 25 TPASS : Stopped as expected +ptrace05 26 TPASS : Stopped as expected +ptrace05 27 TPASS : Stopped as expected +ptrace05 28 TPASS : Stopped as expected +ptrace05 29 TPASS : Stopped as expected +ptrace05 30 TPASS : Stopped as expected +ptrace05 31 TPASS : Stopped as expected +ptrace05 32 TPASS : Stopped as expected +ptrace05 33 TPASS : Stopped as expected +ptrace05 34 TPASS : Stopped as expected +ptrace05 35 TPASS : Stopped as expected +ptrace05 36 TPASS : Stopped as expected +ptrace05 37 TPASS : Stopped as expected +ptrace05 38 TPASS : Stopped as expected +ptrace05 39 TPASS : Stopped as expected +ptrace05 40 TPASS : Stopped as expected +ptrace05 41 TPASS : Stopped as expected +ptrace05 42 TPASS : Stopped as expected +ptrace05 43 TPASS : Stopped as expected +ptrace05 44 TPASS : Stopped as expected +ptrace05 45 TPASS : Stopped as expected +ptrace05 46 TPASS : Stopped as expected +ptrace05 47 TPASS : Stopped as expected +ptrace05 48 TPASS : Stopped as expected +ptrace05 49 TPASS : Stopped as expected +ptrace05 50 TPASS : Stopped as expected +ptrace05 51 TPASS : Stopped as expected +ptrace05 52 TPASS : Stopped as expected +ptrace05 53 TPASS : Stopped as expected +ptrace05 54 TPASS : Stopped as expected +ptrace05 55 TPASS : Stopped as expected +ptrace05 56 TPASS : Stopped as expected +ptrace05 57 TPASS : Stopped as expected +ptrace05 58 TPASS : Stopped as expected +ptrace05 59 TPASS : Stopped as expected +ptrace05 60 TPASS : Stopped as expected +ptrace05 61 TPASS : Stopped as expected +ptrace05 62 TPASS : Stopped as expected +ptrace05 63 TPASS : Stopped as expected +*** C1357T05 PASSED (63) diff --git a/test/issues/1357/x86_64_result.log b/test/issues/1357/x86_64_result.log new file mode 100644 index 00000000..8138a87e --- /dev/null +++ b/test/issues/1357/x86_64_result.log @@ -0,0 +1,88 @@ +*** C1357T01 start ******************************* +ptrace01 1 TPASS : Test Passed +ptrace01 2 TPASS : Test Passed +*** C1357T01 PASSED (2) + +*** C1357T02 start ******************************* +ptrace02 1 TPASS : Test Passed +ptrace02 2 TPASS : Test Passed +*** C1357T02 PASSED (2) + +*** C1357T03 start ******************************* +ptrace03 1 TCONF : ptrace03.c:137: this kernel allows to trace init +ptrace03 2 TPASS : Test Passed +ptrace03 3 TPASS : Test Passed +*** C1357T03 PASSED (2) + +*** C1357T04 start ******************************* +ptrace04 1 TCONF : ptrace04.c:105: test not supported for your arch (yet) +ptrace04 2 TCONF : ptrace04.c:105: Remaining cases not appropriate for configuration +*** C1357T04 PASSED (0) + +*** C1357T05 start ******************************* +ptrace05 0 TINFO : [child] Sending kill(.., 0) +ptrace05 1 TPASS : kill(.., 0) exited with 0, as expected. +ptrace05 2 TPASS : Stopped as expected +ptrace05 3 TPASS : Stopped as expected +ptrace05 4 TPASS : Stopped as expected +ptrace05 5 TPASS : Stopped as expected +ptrace05 6 TPASS : Stopped as expected +ptrace05 7 TPASS : Stopped as expected +ptrace05 8 TPASS : Stopped as expected +ptrace05 9 TPASS : Stopped as expected +ptrace05 10 TPASS : Killed with SIGKILL, as expected. +ptrace05 11 TPASS : Stopped as expected +ptrace05 12 TPASS : Stopped as expected +ptrace05 13 TPASS : Stopped as expected +ptrace05 14 TPASS : Stopped as expected +ptrace05 15 TPASS : Stopped as expected +ptrace05 16 TPASS : Stopped as expected +ptrace05 17 TPASS : Stopped as expected +ptrace05 18 TPASS : Stopped as expected +ptrace05 19 TPASS : Stopped as expected +ptrace05 20 TPASS : Stopped as expected +ptrace05 21 TPASS : Stopped as expected +ptrace05 22 TPASS : Stopped as expected +ptrace05 23 TPASS : Stopped as expected +ptrace05 24 TPASS : Stopped as expected +ptrace05 25 TPASS : Stopped as expected +ptrace05 26 TPASS : Stopped as expected +ptrace05 27 TPASS : Stopped as expected +ptrace05 28 TPASS : Stopped as expected +ptrace05 29 TPASS : Stopped as expected +ptrace05 30 TPASS : Stopped as expected +ptrace05 31 TPASS : Stopped as expected +ptrace05 32 TPASS : Stopped as expected +ptrace05 33 TPASS : Stopped as expected +ptrace05 34 TPASS : Stopped as expected +ptrace05 35 TPASS : Stopped as expected +ptrace05 36 TPASS : Stopped as expected +ptrace05 37 TPASS : Stopped as expected +ptrace05 38 TPASS : Stopped as expected +ptrace05 39 TPASS : Stopped as expected +ptrace05 40 TPASS : Stopped as expected +ptrace05 41 TPASS : Stopped as expected +ptrace05 42 TPASS : Stopped as expected +ptrace05 43 TPASS : Stopped as expected +ptrace05 44 TPASS : Stopped as expected +ptrace05 45 TPASS : Stopped as expected +ptrace05 46 TPASS : Stopped as expected +ptrace05 47 TPASS : Stopped as expected +ptrace05 48 TPASS : Stopped as expected +ptrace05 49 TPASS : Stopped as expected +ptrace05 50 TPASS : Stopped as expected +ptrace05 51 TPASS : Stopped as expected +ptrace05 52 TPASS : Stopped as expected +ptrace05 53 TPASS : Stopped as expected +ptrace05 54 TPASS : Stopped as expected +ptrace05 55 TPASS : Stopped as expected +ptrace05 56 TPASS : Stopped as expected +ptrace05 57 TPASS : Stopped as expected +ptrace05 58 TPASS : Stopped as expected +ptrace05 59 TPASS : Stopped as expected +ptrace05 60 TPASS : Stopped as expected +ptrace05 61 TPASS : Stopped as expected +ptrace05 62 TPASS : Stopped as expected +ptrace05 63 TPASS : Stopped as expected +*** C1357T05 PASSED (63) +