diff options
Diffstat (limited to 'stdlib/tst-makecontext.c')
-rw-r--r-- | stdlib/tst-makecontext.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/stdlib/tst-makecontext.c b/stdlib/tst-makecontext.c index cbce71fb92..1451efa56e 100644 --- a/stdlib/tst-makecontext.c +++ b/stdlib/tst-makecontext.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2006 Free Software Foundation, Inc. +/* Copyright (C) 2006, 2007 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -16,6 +16,7 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ +#include <errno.h> #include <stdlib.h> #include <stdio.h> #include <ucontext.h> @@ -36,10 +37,16 @@ cf (int i) } int -main (void) +do_test (void) { if (getcontext (&ucp) != 0) { + if (errno == ENOSYS) + { + puts ("context handling not supported"); + return 0; + } + puts ("getcontext failed"); return 1; } @@ -47,7 +54,7 @@ main (void) ucp.uc_link = NULL; ucp.uc_stack.ss_sp = st1; ucp.uc_stack.ss_size = sizeof st1; - makecontext (&ucp, (void (*) ()) cf, 1, 78); + makecontext (&ucp, (void (*) (void)) cf, 1, 78); if (setcontext (&ucp) != 0) { puts ("setcontext failed"); @@ -55,3 +62,6 @@ main (void) } return 2; } + +#define TEST_FUNCTION do_test () +#include "../test-skeleton.c" |