cpp-subprocess/test/test_subprocess.cc

29 lines
724 B
C++
Executable File

#include <iostream>
#include "../subprocess.hpp"
using namespace subprocess;
void test_input()
{
auto p = Popen({"grep", "f"}, output{PIPE}, input{PIPE});
const char* msg = "one\ntwo\nthree\nfour\nfive\n";
p.send(msg, strlen(msg));
auto res = p.communicate(nullptr, 0);
std::cout << res.first.buf.data() << std::endl;
}
void test_piping()
{
auto cat = Popen({"cat", "../subprocess.hpp"}, output{PIPE});
auto grep = Popen({"grep", "template"}, input{cat.output()}, output{PIPE});
auto cut = Popen({"cut", "-d,", "-f", "1"}, input{grep.output()}, output{PIPE});
auto res = cut.communicate().first;
std::cout << res.buf.data() << std::endl;
}
int main() {
test_input();
test_piping();
return 0;
}