about summary refs log tree commit diff
path: root/stdlib/tst-makecontext.c
diff options
context:
space:
mode:
Diffstat (limited to 'stdlib/tst-makecontext.c')
-rw-r--r--stdlib/tst-makecontext.c16
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"