[LTP] [PATCH 5/5] mem/vma05.sh: Convert to the new shell library

Petr Vorel pvorel@suse.cz
Wed Dec 11 00:34:53 CET 2024


Hi Cyril,

> +# env
> +# {
> +#  "needs_root": true,
> +#  "needs_tmpdir": true,
> +#  "needs_cmds": ["gdb"],
> +#  "save_restore": [
> +#   ["/proc/sys/kernel/core_pattern", "TBROK"],
> +#   ["/proc/sys/kernel/core_uses_pid", "TBROK"]
C API .save_restore has 3 members:

struct tst_path_val {
        const char *path;
        const char *val;
	unsigned int flags;
};

Why don't you use it here? (e.g. NULL).

Kind regards,
Petr

> +#  ],
> +#  "tags": [
> +#   ["linux-git", "103efcd9aac1"],
> +#   ["linux-git", "b6558c4a2378"],
> +#   ["linux-git", "e5b97dde514f"]
> +#  ]
> +# }
> +# ---

> -TST_SETUP=setup
> -TST_CLEANUP=cleanup
> -TST_TESTFUNC=vma_report_check
> -TST_NEEDS_ROOT=1
> -TST_NEEDS_TMPDIR=1
> -TST_NEEDS_CMDS="gdb"
> -
> -CORE_LIMIT=$(ulimit -c)
> -CORE_PATTERN=$(cat /proc/sys/kernel/core_pattern)
> -CORE_USES_PID=$(cat /proc/sys/kernel/core_uses_pid)
> -
> -setup()
> -{
> -	ulimit -c unlimited
> -	echo "core" > /proc/sys/kernel/core_pattern
> -	echo 0 > /proc/sys/kernel/core_uses_pid
> -	unset DEBUGINFOD_URLS
> -}
> +. tst_loader.sh

> -cleanup()
> -{
> -	ulimit -c "$CORE_LIMIT"
> -	echo "$CORE_PATTERN" > /proc/sys/kernel/core_pattern
> -	echo $CORE_USES_PID > /proc/sys/kernel/core_uses_pid
> -}
> +ulimit -c unlimited
> +echo "core" > /proc/sys/kernel/core_pattern
> +echo 0 > /proc/sys/kernel/core_uses_pid

> -vma_report_check()
> -{
> -	if [ $(uname -m) = "x86_64" ]; then
> -		if LINE=$(grep "vsyscall" /proc/self/maps); then
> -			RIGHT="ffffffffff600000-ffffffffff601000[[:space:]][r-]-xp"
> -			if echo "$LINE" | grep -q "$RIGHT"; then
> -				tst_res TPASS "[vsyscall] reported correctly"
> -			else
> -				tst_res TFAIL "[vsyscall] reporting wrong"
> -			fi
> +if [ $(uname -m) = "x86_64" ]; then
> +	if LINE=$(grep "vsyscall" /proc/self/maps); then
> +		RIGHT="ffffffffff600000-ffffffffff601000[[:space:]][r-]-xp"
> +		if echo "$LINE" | grep -q "$RIGHT"; then
> +			tst_res TPASS "[vsyscall] reported correctly"
> +		else
> +			tst_res TFAIL "[vsyscall] reporting wrong"
>  		fi
>  	fi
> +fi

> -	rm -rf core*
> -	{ vma05_vdso; } > /dev/null 2>&1
> -	[ -f core ] || tst_brk TBROK "missing core file"
> +rm -rf core*
> +{ vma05_vdso; } > /dev/null 2>&1
> +[ -f core ] || tst_brk TBROK "missing core file"

> -	TRACE=$(gdb -silent -ex="thread apply all backtrace" -ex="quit"\
> -		vma05_vdso ./core* 2> /dev/null)
> -	if echo "$TRACE" | grep -qF "??"; then
> -		tst_res TFAIL "[vdso] bug not patched"
> -	else
> -		tst_res TPASS "[vdso] backtrace complete"
> -	fi
> -}
> +TRACE=$(gdb -silent -ex="thread apply all backtrace" -ex="quit"\
> +	vma05_vdso ./core* 2> /dev/null)

> -. tst_test.sh
> -tst_run
> +if echo "$TRACE" | grep -qF "??"; then
> +	tst_res TFAIL "[vdso] bug not patched"
> +else
> +	tst_res TPASS "[vdso] backtrace complete"
> +fi


More information about the ltp mailing list