mirror of
https://gitlab.rtems.org/rtems/rtos/rtems.git
synced 2026-09-22 11:05:53 +08:00
psxhdrs: Add POSIX API Signature Compliance Tests for ucontext.h (GCI 2018)
This commit is contained in:
committed by
Joel Sherrill
parent
bf763d3eee
commit
17c32e5d2a
@@ -1600,6 +1600,7 @@ lib_a_SOURCES = psxhdrs/devctl/posix_devctl.c \
|
||||
## lib_a_SOURCES += psxhdrs/fenv/fesetexceptflag.c See ticket #2971
|
||||
## lib_a_SOURCES += psxhdrs/fenv/fesetround.c See ticket #2971
|
||||
## lib_a_SOURCES += psxhdrs/fenv/fetestexcept.c See ticket #2971
|
||||
## lib_a_SOURCES += psxhdrs/fmtmsg/fmtmsg.c See ticket #3639
|
||||
## lib_a_SOURCES += psxhdrs/ftw/ftw.c See ticket #2970
|
||||
## lib_a_SOURCES += psxhdrs/math/y0l.c See ticket #3638
|
||||
## lib_a_SOURCES += psxhdrs/math/y1l.c See ticket #3638
|
||||
@@ -1607,7 +1608,10 @@ lib_a_SOURCES = psxhdrs/devctl/posix_devctl.c \
|
||||
## lib_a_SOURCES += psxhdrs/ftw/nftw.c See ticket #2970
|
||||
## lib_a_SOURCES += psxhdrs/stdio/getdelim.c See ticket #3633
|
||||
## lib_a_SOURCES += psxhdrs/stdio/getline.c See ticket #3633
|
||||
## lib_a_SOURCES += psxhdrs/fmtmsg/fmtmsg.c See ticket #3639
|
||||
## lib_a_SOURCES += psxhdrs/ucontext/getcontext.c See ticket #3632
|
||||
## lib_a_SOURCES += psxhdrs/ucontext/makecontext.c See ticket #3632
|
||||
## lib_a_SOURCES += psxhdrs/ucontext/setcontext.c See ticket #3632
|
||||
## lib_a_SOURCES += psxhdrs/ucontext/swapcontext.c See ticket #3632
|
||||
endif
|
||||
|
||||
rtems_tests_PROGRAMS = $(psx_tests)
|
||||
|
||||
+38
@@ -0,0 +1,38 @@
|
||||
/**
|
||||
* @file
|
||||
* @brief getcontext() 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
|
||||
|
||||
#include <ucontext.h>
|
||||
|
||||
int test( void );
|
||||
|
||||
int test( void )
|
||||
{
|
||||
int return_value;
|
||||
ucontext_t context;
|
||||
ucontext_t *ucp = &context;
|
||||
|
||||
return_value = getcontext(ucp);
|
||||
return (return_value != -1);
|
||||
}
|
||||
+55
@@ -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;
|
||||
}
|
||||
+46
@@ -0,0 +1,46 @@
|
||||
/**
|
||||
* @file
|
||||
* @brief setcontext() 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 _XOPEN_SOURCE_EXTENDED 1
|
||||
#include <ucontext.h>
|
||||
|
||||
int return_value = 0;
|
||||
ucontext_t context;
|
||||
ucontext_t *ucp = &context;
|
||||
|
||||
int test( void );
|
||||
void func( void );
|
||||
|
||||
int test( void )
|
||||
{
|
||||
getcontext(ucp);
|
||||
return (return_value != -1);
|
||||
}
|
||||
|
||||
void func( void )
|
||||
{
|
||||
setcontext(ucp);
|
||||
return_value = 1;
|
||||
}
|
||||
+53
@@ -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;
|
||||
}
|
||||
Reference in New Issue
Block a user