2
0
mirror of https://github.com/boostorg/process.git synced 2026-01-19 16:32:15 +00:00
Files
process/test/sub_launcher.cpp
Klemens Morgenstern 610b337fa3 Drone & Multple fix (#250)
Squash after invalid branch & merge conflict.

* Fixed file_descriptor move assignment operator to return a reference to 'this'. Issue # 219

* Returning *this instead of erroneous *this. Issue # 219

* Removed unneeded WNOHANG.

* Closes boostorg/process#190

* Closes boostorg/process#121

* Attempting to fix wchar_t build error on circle.

* Closes boostorg/process#197.

* Changed child(pid_t) signature.

* Multiple fixes.

* Closes boostorg/process#189.

* Closes boostorg/process#191.

* Added missing work guard on windows.

* Trying to catch windows early complete.

* Increased log level on windows.

* Multiple windows test fixes

* Removed overly constraint tests.

* fix missing headers

* Closes klemens-morgenstern/boost-process#218

* Update executor.hpp

explicit cast to int to silence this: `error: non-constant-expression cannot be narrowed from type 'unsigned long' to 'int' in initializer list [-Wc++11-narrowing]`

* Fix posix implementation of move constructor/assignment in file_descriptor

* Adjust docs `@boost` relative paths

* Fixed UB for large environment names.

* Closes boostorg/process#207.

* Drone setup

* Added include for filesystem::fstream.

* Disabled useless tests.

* Fixed environment length checks.

* Pipe test & warning fixes.

* Disabled warnings & added windows include fix.

* More test fixes.

* Removed some tests from apple build.

* Removed some tests from apple build.

* Disabled OSX tests via build script & fixed windows examples.

* TSA fix attempt.

Co-authored-by: James Baker <james.baker@bullochtech.com>
Co-authored-by: silent <silent@symica.com>
Co-authored-by: ikrijan <62850248+ikrijan@users.noreply.github.com>
Co-authored-by: Shauren <shauren.trinity@gmail.com>
Co-authored-by: alandefreitas <alandefreitas@gmail.com>
2022-05-19 17:00:15 +08:00

84 lines
1.7 KiB
C++

// Copyright (c) 2015 Klemens D. Morgenstern
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
#include <boost/process.hpp>
#include <boost/program_options.hpp>
#include <vector>
#include <string>
#include <iostream>
#include <cstdint>
#include <fstream>
#include <chrono>
#include <thread>
int main(int argc, char *argv[])
{
using namespace std;
using namespace boost::program_options;
using namespace boost::process;
bool launch_detached = false;
bool launch_attached = false;
options_description desc;
desc.add_options()
("launch-detached", bool_switch(&launch_detached))
("launch-attached", bool_switch(&launch_attached))
;
variables_map vm;
command_line_parser parser(argc, argv);
store(parser.options(desc).allow_unregistered().run(), vm);
notify(vm);
child c1;
child c2;
std::error_code ec;
if (launch_attached)
{
c1 = child(argv[0], ec, std_out > null, std_err > null, std_in < null);
if (ec)
{
cout << -1 << endl;
cerr << ec.message() << endl;
return 1;
}
cout << c1.id() << endl;
}
else
cout << -1 << endl;
if (launch_detached)
{
group g;
c2 = child(argv[0], ec, g, std_out > null, std_err > null, std_in < null);
if (ec)
{
cout << -1 << endl;
cerr << ec.message() << endl;
return 1;
}
else
cout << c2.id() << endl;
g.detach();
}
else
cout << -1 << endl;
this_thread::sleep_for(chrono::seconds(10));
return 0;
}