]> git.localhorst.tv Git - blank.git/blobdiff - tst/integration/TestInstance.cpp
test missing option arguments
[blank.git] / tst / integration / TestInstance.cpp
index fe61fdc12a156dc6da5c8eadb67938d903b3352d..df87bfd4146e6affd4894201182edd5ddf13b99f 100644 (file)
@@ -10,13 +10,20 @@ namespace test {
 
 namespace {
 
-Process::Arguments combine_args(const TempDir &dir, const Process::Arguments &in, bool cmd) {
+Process::Arguments combine_args(
+       const TempDir &dir,
+       const Process::Arguments &in,
+       bool cmd,
+       bool temp_save
+) {
        Process::Arguments out;
        out.reserve(in.size() + (cmd ? 5 : 3));
        out.emplace_back("blank");
        out.insert(out.end(), in.begin(), in.end());
-       out.emplace_back("--save-path");
-       out.emplace_back(dir.Path());
+       if (temp_save) {
+               out.emplace_back("--save-path");
+               out.emplace_back(dir.Path());
+       }
        if (cmd) {
                out.emplace_back("--cmd-port");
                out.emplace_back("12354");
@@ -26,9 +33,9 @@ Process::Arguments combine_args(const TempDir &dir, const Process::Arguments &in
 
 }
 
-TestInstance::TestInstance(const Process::Arguments &args, bool cmd)
+TestInstance::TestInstance(const Process::Arguments &args, bool cmd, bool temp_save)
 : dir()
-, proc("./blank" BLANK_SUFFIX, combine_args(dir, args, cmd))
+, proc("./blank" BLANK_SUFFIX, combine_args(dir, args, cmd, temp_save))
 , conn()
 , out_buf()
 , err_buf()
@@ -67,7 +74,7 @@ void TestInstance::WriteInput(const string &data) {
 void TestInstance::ReadOutputLine(string &line) {
        while (!out_buf.Extract(line)) {
                // buffer exhausted, fetch more data
-               int len = proc.ReadOut(out_buf.WriteHead(), out_buf.Remain(), 5000);
+               int len = proc.ReadOut(out_buf.WriteHead(), out_buf.Remain(), 10000);
                if (len == 0) {
                        throw runtime_error("failed read from stdout of " + name);
                }
@@ -120,7 +127,7 @@ void TestInstance::ExhaustOutput(string &output) {
                        output += '\n';
                } else {
                        // buffer exhausted, fetch more data
-                       int len = proc.ReadOut(out_buf.WriteHead(), out_buf.Remain(), 5000);
+                       int len = proc.ReadOut(out_buf.WriteHead(), out_buf.Remain(), 10000);
                        if (len == 0) {
                                // eof
                                return;
@@ -142,7 +149,7 @@ void TestInstance::AssertNoOutput() {
 void TestInstance::ReadErrorLine(string &line) {
        while (!err_buf.Extract(line)) {
                // buffer exhausted, fetch more data
-               int len = proc.ReadErr(err_buf.WriteHead(), err_buf.Remain(), 5000);
+               int len = proc.ReadErr(err_buf.WriteHead(), err_buf.Remain(), 10000);
                if (len == 0) {
                        throw runtime_error("failed read from stderr of " + name);
                }
@@ -195,7 +202,7 @@ void TestInstance::ExhaustError(string &error) {
                        error += '\n';
                } else {
                        // buffer exhausted, fetch more data
-                       int len = proc.ReadErr(err_buf.WriteHead(), err_buf.Remain(), 5000);
+                       int len = proc.ReadErr(err_buf.WriteHead(), err_buf.Remain(), 10000);
                        if (len == 0) {
                                // eof
                                return;