mirror of
https://github.com/boostorg/process.git
synced 2026-01-21 05:02:16 +00:00
Compare commits
4 Commits
xproc
...
cmd-empty-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
743f0cca35 | ||
|
|
81ad643b00 | ||
|
|
6fd1200ab7 | ||
|
|
c7bdccd57e |
@@ -155,13 +155,15 @@ private:
|
||||
|
||||
std::vector<char*> exe_cmd_init<char>::make_cmd()
|
||||
{
|
||||
// any string must be writable.
|
||||
static char empty_string[1] = "";
|
||||
std::vector<char*> vec;
|
||||
if (!exe.empty())
|
||||
vec.push_back(&exe.front());
|
||||
vec.push_back(exe.empty() ? empty_string : &exe.front());
|
||||
|
||||
if (!args.empty()) {
|
||||
for (auto & v : args)
|
||||
vec.push_back(&v.front());
|
||||
vec.push_back(v.empty() ? empty_string : &v.front());
|
||||
}
|
||||
|
||||
vec.push_back(nullptr);
|
||||
|
||||
@@ -83,3 +83,24 @@ BOOST_AUTO_TEST_CASE(implicit)
|
||||
BOOST_TEST_MESSAGE(ec.message());
|
||||
BOOST_CHECK_EQUAL(ret, 21);
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(empty_cmd)
|
||||
{
|
||||
using boost::unit_test::framework::master_test_suite;
|
||||
|
||||
std::error_code ec;
|
||||
|
||||
fs::path pth = master_test_suite().argv[1];
|
||||
auto env = boost::this_process::environment();
|
||||
|
||||
auto itr = std::find_if(env.begin(), env.end(),
|
||||
[](const bp::native_environment::entry_type & e){return boost::to_upper_copy(e.get_name()) == "PATH";});
|
||||
|
||||
BOOST_REQUIRE(itr != env.end());
|
||||
|
||||
(*itr) += fs::canonical(fs::absolute(pth.parent_path())).string();
|
||||
BOOST_REQUIRE(itr != env.end());
|
||||
|
||||
bp::system("sparring_partner \"\" ", ec);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user