diff options
author | Jacob Shin <jacobshin313@gmail.com> | 2018-12-06 21:48:46 -0500 |
---|---|---|
committer | Joel Sherrill <joel@rtems.org> | 2018-12-06 22:27:55 -0600 |
commit | 17c32e5d2afe3426509e7c0639136ffc50770373 (patch) | |
tree | d36699e01122d4ec55861f4d5439e1d16708e881 /testsuites/psxtests/psxhdrs/ucontext/swapcontext.c | |
parent | Implement POSIX API Signature Compliance Tests for inttypes.h (diff) | |
download | rtems-17c32e5d2afe3426509e7c0639136ffc50770373.tar.bz2 |
psxhdrs: Add POSIX API Signature Compliance Tests for ucontext.h (GCI 2018)
Diffstat (limited to '')
-rwxr-xr-x | testsuites/psxtests/psxhdrs/ucontext/swapcontext.c | 53 |
1 files changed, 53 insertions, 0 deletions
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 <ucontext.h> +#include <stdlib.h> + +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; +} |