crasher: add option to wait for input before crashing.

This will be useful for tests that want to do things with crasher's pid
before it crashes.

Bug: http://b/30705528
Test: crasher wait-abort; crasher wait-thread-abort
Change-Id: I8ba826094dc304d6cd0e6ab088e5cfdb35d2007b
This commit is contained in:
Josh Gao 2016-10-31 17:37:37 -07:00
parent b5f062bde4
commit 100ce3910d

View file

@ -160,7 +160,11 @@ static int do_action(const char* arg)
{
fprintf(stderr, "%s: init pid=%d tid=%d\n", __progname, getpid(), gettid());
if (!strncmp(arg, "exhaustfd-", strlen("exhaustfd-"))) {
if (!strncmp(arg, "wait-", strlen("wait-"))) {
char buf[1];
TEMP_FAILURE_RETRY(read(STDIN_FILENO, buf, sizeof(buf)));
return do_action(arg + strlen("wait-"));
} else if (!strncmp(arg, "exhaustfd-", strlen("exhaustfd-"))) {
errno = 0;
while (errno != EMFILE) {
open("/dev/null", O_RDONLY);
@ -235,6 +239,8 @@ static int do_action(const char* arg)
fprintf(stderr, "on the process' main thread.\n");
fprintf(stderr, "prefix any of the above with 'exhaustfd-' to exhaust\n");
fprintf(stderr, "all available file descriptors before crashing.\n");
fprintf(stderr, "prefix any of the above with 'wait-' to wait until input is received on stdin\n");
return EXIT_SUCCESS;
}