[PATCH v3 3/3] Add tests for the -l/--syscall-limit option

Dmitry V. Levin ldv at strace.io
Thu Mar 2 10:54:38 UTC 2023


On Thu, Mar 02, 2023 at 03:08:44AM +0530, Sahil Siddiq wrote:
[...]
> --- a/tests/gen_tests.in
> +++ b/tests/gen_tests.in
> @@ -1006,6 +1006,9 @@ strace--strings-in-hex-all		--trace=chdir --strings-in-hex=all --columns=18
>  strace--strings-in-hex-non-ascii	--trace=chdir --strings-in-hex=non-ascii --columns=12
>  strace--strings-in-hex-non-ascii-chars	--trace=chdir --strings-in-hex=non-ascii-chars --columns=12
>  strace--strings-in-hex-none		--trace=chdir --strings-in-hex=none --columns=12
> +strace--syscall-limit	--syscall-limit=3 --trace=chdir,getpid --signal='!SIGCHLD,SIGCONT' --quiet=attach,exit -f -a 9
> +strace--syscall-limit-path	--syscall-limit=2 --trace=all --trace-path=. --signal='!SIGCHLD,SIGCONT' --quiet=attach,exit,path-resolution -f -a 9
> +strace--syscall-limit-status	--syscall-limit=2 --trace=chdir,openat --status=failed --signal='!SIGCHLD,SIGCONT' --quiet=attach,exit -f -a 9

By the way, why have you decided to silence attach/detach messages?
When you are testing how strace detaches from its tracees,
this could be really meaningful.

> diff --git a/tests/strace--syscall-limit-path.c b/tests/strace--syscall-limit-path.c
> new file mode 100644
> index 000000000..3501124bf
> --- /dev/null
> +++ b/tests/strace--syscall-limit-path.c
> @@ -0,0 +1,2 @@
> +#define TRACE 2
> +#include "strace--syscall-limit.c"
> \ No newline at end of file
> diff --git a/tests/strace--syscall-limit-status.c b/tests/strace--syscall-limit-status.c
> new file mode 100644
> index 000000000..aff6c255f
> --- /dev/null
> +++ b/tests/strace--syscall-limit-status.c
> @@ -0,0 +1,2 @@
> +#define TRACE 3
> +#include "strace--syscall-limit.c"
> \ No newline at end of file

To be honest, I don't see the benefit of organising the code this way:

[...]
> +int
> +main()
> +{
> +	int ret;
> +
> +	#if TRACE == 1
> +		ret = syscall_limit__trace();
> +	#elif TRACE == 2
> +		ret = syscall_limit__trace_path();
> +	#elif TRACE == 3
> +		ret = syscall_limit__status();
> +	#endif
> +
> +	return ret;
> +}

As all three cases have very little in common, wouldn't it be easier
just to have three independent source files?


-- 
ldv


More information about the Strace-devel mailing list