BOOST_CHECK_EQUAL( false, proc.inputAvailable());
} // eo SimpleProcessTestEcho
+BOOST_AUTO_TEST_CASE(DirectProcessImplementationGetline)
+{
+ DOUT("enter SimpleProcessTestEcho");
+ bool res;
+ BOOST_REQUIRE(backend);
+
+ ProcessImplementation proc(
+ "/bin/sh",
+ TransientPushBackFiller<std::string, std::vector >()("-c")("echo -n 1; sleep 1; echo 2; echo")
+ );
+
+ res= proc.startProcess();
+ BOOST_CHECK_EQUAL(true, res);
+
+ res= backend->doOneStep(800);
+ BOOST_CHECK_EQUAL(true, res);
+
+ // echo -n 1 should be out by now
+
+ BOOST_CHECK_EQUAL( std::string(""), proc.getline());
+
+ for(int i=20; i-->0 && (proc.processState()!= ProcessState::stopped || !proc.eof());)
+ {
+ backend->doOneStep(100);
+ }
+
+ BOOST_CHECK_EQUAL( ProcessState(ProcessState::stopped), proc.processState() );
+ BOOST_CHECK_EQUAL( true, proc.eof() );
+ BOOST_CHECK_EQUAL( 0, proc.exitCode() );
+ BOOST_CHECK_EQUAL( std::string("12\n"), proc.getline());
+ BOOST_CHECK_EQUAL( std::string("\n"), proc.getline());
+ BOOST_CHECK_EQUAL( false, proc.inputAvailable());
+} // eo SimpleProcessTestEcho
BOOST_AUTO_TEST_CASE(CallOut1)
{