| 588 | char *fatal_msg; |
| 589 | |
| 590 | static void |
| 591 | fatal(int do_perror, char *message, ...) |
| 592 | { |
| 593 | va_list args; |
| 594 | int save_errno = errno; |
| 595 | char *buf; |
| 596 | |
| 597 | (void) fflush(stdout); |
| 598 | buf = umem_alloc(FATAL_MSG_SZ, UMEM_NOFAIL); |
| 599 | |
| 600 | va_start(args, message); |
| 601 | (void) sprintf(buf, "ztest: "); |
| 602 | /* LINTED */ |
| 603 | (void) vsprintf(buf + strlen(buf), message, args); |
| 604 | va_end(args); |
| 605 | if (do_perror) { |
| 606 | (void) snprintf(buf + strlen(buf), FATAL_MSG_SZ - strlen(buf), |
| 607 | ": %s", strerror(save_errno)); |
| 608 | } |
| 609 | (void) fprintf(stderr, "%s\n", buf); |
| 610 | fatal_msg = buf; /* to ease debugging */ |
| 611 | |
| 612 | if (ztest_dump_core) |
| 613 | abort(); |
| 614 | else |
| 615 | dump_debug_buffer(); |
| 616 | |
| 617 | exit(3); |
| 618 | } |
| 619 | |
| 620 | static int |
| 621 | str2shift(const char *buf) |
no test coverage detected