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/makecontext.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 'testsuites/psxtests/psxhdrs/ucontext/makecontext.c')
-rwxr-xr-x | testsuites/psxtests/psxhdrs/ucontext/makecontext.c | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/testsuites/psxtests/psxhdrs/ucontext/makecontext.c b/testsuites/psxtests/psxhdrs/ucontext/makecontext.c new file mode 100755 index 0000000000..1b5ffc766d --- /dev/null +++ b/testsuites/psxtests/psxhdrs/ucontext/makecontext.c @@ -0,0 +1,55 @@ +/** + * @file + * @brief makecontext() 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) // 32KiB + +#define _XOPEN_SOURCE_EXTENDED 1 +#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; + getcontext(ucp); + + makecontext(ucp, (void *)func, 0); + + setcontext(ucp); + abort(); + return 0; +} + +void func( void ) +{ + return; +}
\ No newline at end of file |