X-Git-Url: http://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=ccan%2Ffailtest%2Ffailtest.c;h=e9f837364a84b55ed9853a287ab69884b5f92c0a;hp=061d6e9e3fc911c12c88fe7b122a417287441133;hb=371a31d946c1055e8b7f7d9cec2b7f617206aeaf;hpb=72dc7d42c92fcfbafcc7e3b3b1518c9aa4a2e874;ds=sidebyside diff --git a/ccan/failtest/failtest.c b/ccan/failtest/failtest.c index 061d6e9e..e9f83736 100644 --- a/ccan/failtest/failtest.c +++ b/ccan/failtest/failtest.c @@ -58,6 +58,8 @@ static pid_t lock_owner; static struct lock_info *locks = NULL; static unsigned int lock_num = 0; +static pid_t orig_pid; + static const char info_to_arg[] = "mceoxprwf"; /* Dummy call used for failtest_undo wrappers. */ @@ -1024,10 +1026,19 @@ int failtest_fcntl(int fd, const char *file, unsigned line, int cmd, ...) return p->u.fcntl.ret; } +pid_t failtest_getpid(const char *file, unsigned line) +{ + /* You must call failtest_init first! */ + assert(orig_pid); + return orig_pid; +} + void failtest_init(int argc, char *argv[]) { unsigned int i; + orig_pid = getpid(); + for (i = 1; i < argc; i++) { if (!strncmp(argv[i], "--failpath=", strlen("--failpath="))) { failpath = argv[i] + strlen("--failpath=");