[PATCH v10] tests/fcntl.c: add test for print_f_owner_ex
Dmitry V. Levin
ldv at altlinux.org
Thu May 3 11:18:32 UTC 2018
On Wed, May 02, 2018 at 11:16:57PM +0800, Zhibin Li wrote:
> *tests/fcntl.c (test_f_owner_ex_type_pid,
> test_f_owner_ex_umove_or_printaddr, test_f_owner_ex): New functions.
> (main): Use test_f_owner_ex.
> ---
> tests/fcntl.c | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 53 insertions(+)
>
> diff --git a/tests/fcntl.c b/tests/fcntl.c
> index 4f62ca2a..504464e0 100644
> --- a/tests/fcntl.c
> +++ b/tests/fcntl.c
> @@ -69,12 +69,65 @@ test_flock64(void)
> #endif
> }
>
> +static long
> +test_f_owner_ex_type_pid(const int cmd, const char *const cmd_name,
> + const int type, const char *const type_name,
> + pid_t pid)
> +{
> + TAIL_ALLOC_OBJECT_CONST_PTR(struct f_owner_ex, fo);
Another issue I found with this test is it assumes that struct f_owner_ex,
F_SETOWN_EX, and F_GETOWN_EX are always defined, which is not the case on
older systems.
I had to add the following guard to make it more portable:
/*
* F_[GS]ETOWN_EX had conflicting values with F_[SG]ETLK64
* in kernel revisions v2.6.32-rc1~96..v2.6.32-rc7~23.
*/
#undef TEST_F_OWNER_EX
#if defined F_GETOWN_EX && defined F_SETOWN_EX \
&& (F_GETOWN_EX != F_SETLK64) && (F_SETOWN_EX != F_GETLK64)
# define TEST_F_OWNER_EX
#endif
#ifdef TEST_F_OWNER_EX
...
#endif /* TEST_F_OWNER_EX */
--
ldv
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: not available
URL: <http://lists.strace.io/pipermail/strace-devel/attachments/20180503/8ad55b92/attachment.bin>
More information about the Strace-devel
mailing list