From 17c32e5d2afe3426509e7c0639136ffc50770373 Mon Sep 17 00:00:00 2001 From: Jacob Shin Date: Thu, 6 Dec 2018 21:48:46 -0500 Subject: psxhdrs: Add POSIX API Signature Compliance Tests for ucontext.h (GCI 2018) --- testsuites/psxtests/psxhdrs/ucontext/swapcontext.c | 53 ++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100755 testsuites/psxtests/psxhdrs/ucontext/swapcontext.c (limited to 'testsuites/psxtests/psxhdrs/ucontext/swapcontext.c') diff --git a/testsuites/psxtests/psxhdrs/ucontext/swapcontext.c b/testsuites/psxtests/psxhdrs/ucontext/swapcontext.c new file mode 100755 index 0000000000..d86131dead --- /dev/null +++ b/testsuites/psxtests/psxhdrs/ucontext/swapcontext.c @@ -0,0 +1,53 @@ +/** + * @file + * @brief swapcontext() API Conformance Test + */ + +/* + * COPYRIGHT (c) 2018. + * Jacob Shin + * + * Permission to use, copy, modify, and/or distribute this software + * for any purpose with or without fee is hereby granted. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL + * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR + * BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#define STACK_SIZE (1<<15) // 3 + +#include +#include + +int test( void ); +void func( void ); + +int test( void ) +{ + ucontext_t context; + context.uc_stack.ss_sp = (char *) malloc(STACK_SIZE); + context.uc_stack.ss_size = STACK_SIZE; + context.uc_link = 0; + context.uc_stack.ss_flags = 0; + ucontext_t *ucp = &context; + ucontext_t context2; + ucontext_t *ucp2 = &context2; + getcontext(ucp); + makecontext(ucp,(void*)func, 0); + swapcontext(ucp2, ucp); + return 0; +} + +void func( void ) +{ + return; +} -- cgit v1.2.3