| 521 | } |
| 522 | |
| 523 | bool testUVProcessChainSpawnFail(char const* helperCommand) |
| 524 | { |
| 525 | static std::vector<ExpectedStatus> const status1 = { |
| 526 | { false, |
| 527 | false, |
| 528 | { 0, false, 0, 0 }, |
| 529 | cmUVProcessChain::ExceptionCode::None, |
| 530 | "" }, |
| 531 | { false, |
| 532 | false, |
| 533 | { UV_ENOENT, true, 0, 0 }, |
| 534 | cmUVProcessChain::ExceptionCode::Spawn, |
| 535 | uv_strerror(UV_ENOENT) }, |
| 536 | #ifdef _WIN32 |
| 537 | { true, |
| 538 | true, |
| 539 | { 0, true, STATUS_ACCESS_VIOLATION, 0 }, |
| 540 | cmUVProcessChain::ExceptionCode::Fault, |
| 541 | "Access violation" }, |
| 542 | #else |
| 543 | { false, |
| 544 | true, |
| 545 | { 0, true, 0, SIGABRT }, |
| 546 | cmUVProcessChain::ExceptionCode::Other, |
| 547 | "Subprocess aborted" }, |
| 548 | #endif |
| 549 | }; |
| 550 | |
| 551 | static std::vector<ExpectedStatus> const status2 = { |
| 552 | #ifdef _WIN32 |
| 553 | { true, |
| 554 | true, |
| 555 | { 0, true, 0, 0 }, |
| 556 | cmUVProcessChain::ExceptionCode::None, |
| 557 | "" }, |
| 558 | #else |
| 559 | { false, |
| 560 | true, |
| 561 | { 0, true, 0, SIGPIPE }, |
| 562 | cmUVProcessChain::ExceptionCode::Other, |
| 563 | "SIGPIPE" }, |
| 564 | #endif |
| 565 | { false, |
| 566 | false, |
| 567 | { UV_ENOENT, true, 0, 0 }, |
| 568 | cmUVProcessChain::ExceptionCode::Spawn, |
| 569 | uv_strerror(UV_ENOENT) }, |
| 570 | #ifdef _WIN32 |
| 571 | { true, |
| 572 | true, |
| 573 | { 0, true, STATUS_ACCESS_VIOLATION, 0 }, |
| 574 | cmUVProcessChain::ExceptionCode::Fault, |
| 575 | "Access violation" }, |
| 576 | #else |
| 577 | { false, |
| 578 | true, |
| 579 | { 0, true, 0, SIGABRT }, |
| 580 | cmUVProcessChain::ExceptionCode::Other, |
no test coverage detected
searching dependent graphs…