test: Add test_exception

This commit is contained in:
Hennadii Stepanov 2023-12-03 23:54:30 +00:00
parent da162fe5a6
commit 7cc45cfabc
No known key found for this signature in database
GPG Key ID: 410108112E7EA81F
2 changed files with 28 additions and 1 deletions

View File

@ -1,4 +1,4 @@
set(test_names test_subprocess test_cat test_env test_err_redirection test_split test_main test_ret_code)
set(test_names test_subprocess test_cat test_env test_err_redirection test_exception test_split test_main test_ret_code)
set(test_files env_script.sh write_err.sh write_err.txt)

27
test/test_exception.cc Normal file
View File

@ -0,0 +1,27 @@
#include <cassert>
#include <cstring>
#include <subprocess.hpp>
namespace sp = subprocess;
void test_exception()
{
bool caught = false;
try {
auto p = sp::Popen("invalid_command");
assert(false); // Expected to throw
} catch (sp::CalledProcessError& e) {
#ifdef __USING_WINDOWS__
assert(std::strstr(e.what(), "CreateProcess failed: The system cannot find the file specified."));
#else
assert(std::strstr(e.what(), "execve failed: No such file or directory"));
#endif
caught = true;
}
assert(caught);
}
int main() {
test_exception();
return 0;
}