+void TestInstance::ExhaustError(string &error) {
+ while (!err_buf.Extract(error)) {
+ // buffer exhausted, fetch more data
+ int len = proc.ReadErr(err_buf.WriteHead(), err_buf.Remain());
+ if (len == 0) {
+ return;
+ }
+ err_buf.Update(len);
+ }
+}
+
+void TestInstance::AssertNoError() {
+ string error;
+ ExhaustError(error);
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(
+ "test instanced produced unexpected error output",
+ string(""), error);
+}
+
+
+void TestInstance::Terminate() {
+ proc.Terminate();
+}
+
+void TestInstance::AssertRunning() {
+ CPPUNIT_ASSERT_MESSAGE(
+ "test instance terminated unexpectedly",
+ !proc.Terminated());
+}
+
+void TestInstance::AssertTerminated() {
+ CPPUNIT_ASSERT_MESSAGE(
+ "test instance did not terminate as expected",
+ proc.Terminated());
+}