xref: /haiku/src/tests/system/libroot/posix/abort_test.cpp (revision af7fec0304ef55d86b1fa1e2597818c5ecb46e23)
1*af7fec03SAxel Dörfler /*
2*af7fec03SAxel Dörfler  * Copyright 2009, Axel Dörfler, axeld@pinc-software.de.
3*af7fec03SAxel Dörfler  * Distributed under the terms of the MIT License.
4*af7fec03SAxel Dörfler  */
5*af7fec03SAxel Dörfler 
6*af7fec03SAxel Dörfler 
7*af7fec03SAxel Dörfler #include <OS.h>
8*af7fec03SAxel Dörfler 
9*af7fec03SAxel Dörfler #include <stdio.h>
10*af7fec03SAxel Dörfler #include <stdlib.h>
11*af7fec03SAxel Dörfler #include <string.h>
12*af7fec03SAxel Dörfler 
13*af7fec03SAxel Dörfler 
14*af7fec03SAxel Dörfler static status_t
abort_thread(void *)15*af7fec03SAxel Dörfler abort_thread(void*)
16*af7fec03SAxel Dörfler {
17*af7fec03SAxel Dörfler 	snooze(50000);
18*af7fec03SAxel Dörfler 	abort();
19*af7fec03SAxel Dörfler 	return 0;
20*af7fec03SAxel Dörfler }
21*af7fec03SAxel Dörfler 
22*af7fec03SAxel Dörfler 
23*af7fec03SAxel Dörfler int
main(int argc,char ** argv)24*af7fec03SAxel Dörfler main(int argc, char** argv)
25*af7fec03SAxel Dörfler {
26*af7fec03SAxel Dörfler 	thread_id thread = spawn_thread(&abort_thread, "abort test",
27*af7fec03SAxel Dörfler 		B_NORMAL_PRIORITY, NULL);
28*af7fec03SAxel Dörfler 	resume_thread(thread);
29*af7fec03SAxel Dörfler 
30*af7fec03SAxel Dörfler 	status_t status = wait_for_thread(thread, NULL);
31*af7fec03SAxel Dörfler 	fprintf(stderr, "abort thread aborted: %s\n", strerror(status));
32*af7fec03SAxel Dörfler 
33*af7fec03SAxel Dörfler 	snooze(1000000LL);
34*af7fec03SAxel Dörfler 	fprintf(stderr, "main exiting\n");
35*af7fec03SAxel Dörfler 	return 0;
36*af7fec03SAxel Dörfler }
37