mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-05-15 06:05:58 -06:00
.autotest
git-svn-id: svn://ultimatepp.org/upp/trunk@11103 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
parent
9dadd4da2f
commit
8315682a51
1 changed files with 76 additions and 41 deletions
|
|
@ -9,7 +9,7 @@ CONSOLE_APP_MAIN
|
|||
int ii = 0;
|
||||
for(;;) {
|
||||
int c = getchar();
|
||||
if(c == 'Q')
|
||||
if(c == 'q')
|
||||
break;
|
||||
Cout() << AsString(c) << ':' << (char)c << ':' << ii++ << ' ';
|
||||
Cerr() << " ERROR" << (char)c << ii++;
|
||||
|
|
@ -25,48 +25,83 @@ CONSOLE_APP_MAIN
|
|||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
StdLogSetup(LOG_COUT|LOG_FILE);
|
||||
|
||||
LocalProcess p;
|
||||
for(int pass = 0; pass < 2; pass++) {
|
||||
LOG("========= PASS " << pass + 1);
|
||||
ASSERT(p.Start2(GetExeFilePath() + " localprocess"));
|
||||
ASSERT(p.IsRunning());
|
||||
|
||||
for(int i = 0; i < 10; i++)
|
||||
p.Write(String(i + 'A', 1));
|
||||
p.Write("Q");
|
||||
|
||||
String e, o, err, out;
|
||||
while(p.Read2(o, e)) {
|
||||
err << e;
|
||||
out << o;
|
||||
|
||||
{
|
||||
LocalProcess p;
|
||||
for(int pass = 0; pass < 2; pass++) {
|
||||
ASSERT(p.Start2(GetExeFilePath() + " localprocess"));
|
||||
ASSERT(p.IsRunning());
|
||||
|
||||
for(int i = 0; i < 10; i++)
|
||||
p.Write(String(i + 'A', 1));
|
||||
p.Write("q");
|
||||
|
||||
String e, o, err, out;
|
||||
while(p.Read2(o, e)) {
|
||||
err << e;
|
||||
out << o;
|
||||
}
|
||||
|
||||
DUMP(err);
|
||||
DUMP(out);
|
||||
DUMP(p.IsRunning());
|
||||
|
||||
ASSERT(out == "65:A:0 66:B:2 67:C:4 68:D:6 69:E:8 70:F:10 71:G:12 72:H:14 73:I:16 74:J:18 ");
|
||||
ASSERT(err == " ERRORA1 ERRORB3 ERRORC5 ERRORD7 ERRORE9 ERRORF11 ERRORG13 ERRORH15 ERRORI17 ERRORJ19");
|
||||
ASSERT(!p.IsRunning());
|
||||
}
|
||||
|
||||
DUMP(err);
|
||||
DUMP(out);
|
||||
DUMP(p.IsRunning());
|
||||
|
||||
ASSERT(out == "65:A:0 66:B:2 67:C:4 68:D:6 69:E:8 70:F:10 71:G:12 72:H:14 73:I:16 74:J:18 ");
|
||||
ASSERT(err == " ERRORA1 ERRORB3 ERRORC5 ERRORD7 ERRORE9 ERRORF11 ERRORG13 ERRORH15 ERRORI17 ERRORJ19");
|
||||
ASSERT(!p.IsRunning());
|
||||
|
||||
DUMP(p.GetExitCode());
|
||||
ASSERT(p.GetExitCode() == 0);
|
||||
p.Kill(); // check that the exit code is OK even after the Kill
|
||||
DUMP(p.GetExitCode());
|
||||
ASSERT(p.GetExitCode() == 0);
|
||||
|
||||
o = Sys(GetExeFilePath() + " echo something different");
|
||||
DUMP(o);
|
||||
|
||||
ASSERT(o == "echo something different");
|
||||
|
||||
o = Sys(GetExeFilePath(), Vector<String>() << "echo" << "one" << "two" << "\"three");
|
||||
DUMP(o);
|
||||
ASSERT(o == "echo one two \"three");
|
||||
|
||||
}
|
||||
|
||||
{
|
||||
LocalProcess p;
|
||||
|
||||
for(int pass = 0; pass < 2; pass++) {
|
||||
ASSERT(p.Start2(GetExeFilePath() + " localprocess"));
|
||||
ASSERT(p.IsRunning());
|
||||
|
||||
String sout, serr;
|
||||
String e, o, err, out;
|
||||
int ii = 0;
|
||||
|
||||
for(int i = 0; i < 10000; i++) {
|
||||
int c = i % 26 + 'A';
|
||||
p.Write(String(c, 1));
|
||||
sout << AsString(c) << ':' << (char)c << ':' << ii++ << ' ';
|
||||
serr << " ERROR" << (char)c << ii++;
|
||||
for(;;) {
|
||||
if(!p.Read2(o, e))
|
||||
break;
|
||||
if(o.GetCount() + e.GetCount() == 0)
|
||||
break;
|
||||
err << e;
|
||||
out << o;
|
||||
}
|
||||
}
|
||||
p.Write("q");
|
||||
|
||||
while(p.Read2(o, e)) {
|
||||
err << e;
|
||||
out << o;
|
||||
}
|
||||
|
||||
DUMP(p.IsRunning());
|
||||
|
||||
ASSERT(out == sout);
|
||||
ASSERT(err == serr);
|
||||
ASSERT(!p.IsRunning());
|
||||
}
|
||||
}
|
||||
|
||||
String o = Sys(GetExeFilePath() + " echo something different");
|
||||
DUMP(o);
|
||||
|
||||
ASSERT(o == "echo something different");
|
||||
|
||||
o = Sys(GetExeFilePath(), Vector<String>() << "echo" << "one" << "two" << "\"three");
|
||||
DUMP(o);
|
||||
ASSERT(o == "echo one two \"three");
|
||||
|
||||
LOG("============= OK");
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue