aboutsummaryrefslogtreecommitdiff
path: root/pixman/test/utils.c
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2010-08-18 10:36:39 +0000
committermarha <marha@users.sourceforge.net>2010-08-18 10:36:39 +0000
commit07d3578ce63d87c9a87d54d85f5c8057d30fdc58 (patch)
treed8acfcb63e11aa7f91c1d9685b5c2f55cd7133c7 /pixman/test/utils.c
parent4d025671124c9f6d91c1c165fc892b1609fdce12 (diff)
parent2aa7bcf37f00b7884ae166d62db81493ea37934a (diff)
downloadvcxsrv-07d3578ce63d87c9a87d54d85f5c8057d30fdc58.tar.gz
vcxsrv-07d3578ce63d87c9a87d54d85f5c8057d30fdc58.tar.bz2
vcxsrv-07d3578ce63d87c9a87d54d85f5c8057d30fdc58.zip
svn merge ^/branches/released .
Diffstat (limited to 'pixman/test/utils.c')
-rw-r--r--pixman/test/utils.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/pixman/test/utils.c b/pixman/test/utils.c
index 4b68debff..f5199268b 100644
--- a/pixman/test/utils.c
+++ b/pixman/test/utils.c
@@ -1,4 +1,9 @@
#include "utils.h"
+#include <signal.h>
+
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
/* Random number seed
*/
@@ -319,3 +324,31 @@ fuzzer_test_main (const char *test_name,
return 0;
}
+
+static const char *global_msg;
+
+static void
+on_alarm (int signo)
+{
+ printf ("%s\n", global_msg);
+ exit (1);
+}
+
+void
+fail_after (int seconds, const char *msg)
+{
+#ifdef HAVE_SIGACTION
+#ifdef HAVE_ALARM
+ struct sigaction action;
+
+ global_msg = msg;
+
+ memset (&action, 0, sizeof (action));
+ action.sa_handler = on_alarm;
+
+ alarm (seconds);
+
+ sigaction (SIGALRM, &action, NULL);
+#endif
+#endif
+}