diff options
| author | Alexander V. Chernikov <melifaro@FreeBSD.org> | 2022-07-06 19:55:48 +0000 |
|---|---|---|
| committer | Alexander V. Chernikov <melifaro@FreeBSD.org> | 2022-07-06 19:55:58 +0000 |
| commit | 2bfd8b5b9419b0ceb3dd0295fdf413d32969e5b2 (patch) | |
| tree | 89661312cf765fefe464b16694f3554964242dc8 /libexec/atf | |
| parent | 6f50b73ee5c11253a35bb2787f2bef627079999d (diff) | |
Diffstat (limited to 'libexec/atf')
| -rw-r--r-- | libexec/atf/atf-pytest-wrapper/atf_pytest_wrapper.cpp | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/libexec/atf/atf-pytest-wrapper/atf_pytest_wrapper.cpp b/libexec/atf/atf-pytest-wrapper/atf_pytest_wrapper.cpp index 6baa85999070..7f6e886a16d9 100644 --- a/libexec/atf/atf-pytest-wrapper/atf_pytest_wrapper.cpp +++ b/libexec/atf/atf-pytest-wrapper/atf_pytest_wrapper.cpp @@ -1,3 +1,5 @@ +// vim: ts=2 sw=2 et + #include <format> #include <iostream> #include <map> @@ -181,7 +183,7 @@ class Handler { } } - int Run(std::string binary, std::vector<std::string> args) { + bool Run(std::string binary, std::vector<std::string> args) { if (flag_debug) { PrintVector("OUT", args); } @@ -191,12 +193,27 @@ class Handler { // work around 'char *const *' arr[i] = strdup(args[i].c_str()); } - return (execvp(binary.c_str(), arr) != 0); + return execvp(binary.c_str(), arr) == 0; + } + + void ReportError() { + if (flag_list) { + std::cout << "Content-Type: application/X-atf-tp; version=\"1\""; + std::cout << std::endl << std::endl; + std::cout << "ident: __test_cases_list_"<< kPytestName << "_binary_" << + "not_found__" << std::endl; + } else { + std::cout << "execvp(" << kPytestName << ") failed: " << + std::strerror(errno) << std::endl; + } } int Process() { SetEnv(); - return Run(kPytestName, BuildArgs()); + if (!Run(kPytestName, BuildArgs())) { + ReportError(); + } + return 0; } }; |
