From cb8281f6e1fe36bb8595e6bedfa2ee987da50b3f Mon Sep 17 00:00:00 2001 From: Jacob Shin Date: Thu, 13 Dec 2018 09:42:57 -0600 Subject: psxhdrs: Add POSIX API Signature Compliance Tests for sys/msg.h (GCI 2018) --- testsuites/psxtests/Makefile.am | 4 ++ testsuites/psxtests/psxhdrs/sys/msg/msgctl.c | 51 ++++++++++++++++++++++++ testsuites/psxtests/psxhdrs/sys/msg/msgget.c | 50 ++++++++++++++++++++++++ testsuites/psxtests/psxhdrs/sys/msg/msgrcv.c | 56 +++++++++++++++++++++++++++ testsuites/psxtests/psxhdrs/sys/msg/msgsnd.c | 58 ++++++++++++++++++++++++++++ 5 files changed, 219 insertions(+) create mode 100644 testsuites/psxtests/psxhdrs/sys/msg/msgctl.c create mode 100644 testsuites/psxtests/psxhdrs/sys/msg/msgget.c create mode 100644 testsuites/psxtests/psxhdrs/sys/msg/msgrcv.c create mode 100644 testsuites/psxtests/psxhdrs/sys/msg/msgsnd.c (limited to 'testsuites/psxtests') diff --git a/testsuites/psxtests/Makefile.am b/testsuites/psxtests/Makefile.am index 1d72e0864c..3a69b2fad9 100644 --- a/testsuites/psxtests/Makefile.am +++ b/testsuites/psxtests/Makefile.am @@ -1871,6 +1871,10 @@ lib_a_SOURCES = psxhdrs/devctl/posix_devctl.c \ ## lib_a_SOURCES += psxhdrs/stdlib/ptsname.c See ticket #3647 ## lib_a_SOURCES += psxhdrs/stdlib/unlockpt.c See ticket #3648 ## lib_a_SOURCES += psxhdrs/sys/ftok.c See ticket #3650 +## lib_a_SOURCES += psxhdrs/sys/msg/msgctl.c See ticket #3658 +## lib_a_SOURCES += psxhdrs/sys/msg/msgget.c See ticket #3658 +## lib_a_SOURCES += psxhdrs/sys/msg/msgrcv.c See ticket #3658 +## lib_a_SOURCES += psxhdrs/sys/msg/msgsnd.c See ticket #3658 ## lib_a_SOURCES += psxhdrs/sys/resource/getpriority.c See ticket #3652 ## lib_a_SOURCES += psxhdrs/sys/resource/getrlimit.c See ticket #3653 ## lib_a_SOURCES += psxhdrs/sys/resource/setpriority.c See ticket #3654 diff --git a/testsuites/psxtests/psxhdrs/sys/msg/msgctl.c b/testsuites/psxtests/psxhdrs/sys/msg/msgctl.c new file mode 100644 index 0000000000..5904df70aa --- /dev/null +++ b/testsuites/psxtests/psxhdrs/sys/msg/msgctl.c @@ -0,0 +1,51 @@ +/** + * @file + * @brief msgctl() API Conformance Test + */ + +/* + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright (C) 2018 Jacob Shin + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#define _XOPEN_SOURCE +#include + +int test( void ); + +int test( void ) +{ + int return_value; + int msqid = msgget(IPC_PRIVATE, IPC_CREAT | 0660); + int cmd = IPC_STAT; + struct msqid_ds buf; + + return_value = msgctl(msqid, cmd, &buf); + return (return_value != -1); +} diff --git a/testsuites/psxtests/psxhdrs/sys/msg/msgget.c b/testsuites/psxtests/psxhdrs/sys/msg/msgget.c new file mode 100644 index 0000000000..688002c75c --- /dev/null +++ b/testsuites/psxtests/psxhdrs/sys/msg/msgget.c @@ -0,0 +1,50 @@ +/** + * @file + * @brief msgget() API Conformance Test + */ + +/* + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright (C) 2018 Jacob Shin + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#define _XOPEN_SOURCE +#include + +int test( void ); + +int test( void ) +{ + int return_value; + key_t key = IPC_PRIVATE; + int msgflg = IPC_CREAT | 0660; + + return_value = msgget(key, msgflg); + return (return_value != -1); +} diff --git a/testsuites/psxtests/psxhdrs/sys/msg/msgrcv.c b/testsuites/psxtests/psxhdrs/sys/msg/msgrcv.c new file mode 100644 index 0000000000..f503046946 --- /dev/null +++ b/testsuites/psxtests/psxhdrs/sys/msg/msgrcv.c @@ -0,0 +1,56 @@ +/** + * @file + * @brief msgrcv() API Conformance Test + */ + +/* + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright (C) 2018 Jacob Shin + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include + +int test( void ); + +int test( void ) +{ + int return_value; + int msqid = msgget(IPC_PRIVATE, IPC_CREAT | 0660); + struct mymsg { + long mtype; + char mtext[2]; + }; + struct mymsg msgp; + size_t msgsz = 1; + long msgtyp = 0; + int msgflg = IPC_NOWAIT; + + return_value = msgrcv(msqid, &msgp, msgsz, msgtyp, msgflg); + return (return_value != -1); +} diff --git a/testsuites/psxtests/psxhdrs/sys/msg/msgsnd.c b/testsuites/psxtests/psxhdrs/sys/msg/msgsnd.c new file mode 100644 index 0000000000..eee3fc57ee --- /dev/null +++ b/testsuites/psxtests/psxhdrs/sys/msg/msgsnd.c @@ -0,0 +1,58 @@ +/** + * @file + * @brief msgsnd() API Conformance Test + */ + +/* + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright (C) 2018 Jacob Shin + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include + +int test( void ); + +int test( void ) +{ + int return_value; + int msqid = msgget(IPC_PRIVATE, IPC_CREAT | 0660); + struct mymsg { + long mtype; + char mtext[2]; + }; + struct mymsg msgp; + msgp.mtype = 1; + msgp.mtext[0] = 'c'; + msgp.mtext[1] = '\0'; + size_t msgsz = 1; + int msgflg = IPC_NOWAIT; + + return_value = msgsnd(msqid, &msgp, msgsz, msgflg); + return (return_value != -1); +} -- cgit v1.2.3