tests: qemucapsprobemock: Simplify and extract skipping of empty lines

The prettyfied output may sometimes contain empty lines which would
desynchonize the test monitor workers. The skipping code can be much
simplified though. Also a extract it so so that it's obvious what
it's doing and can be reused.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
This commit is contained in:
Peter Krempa 2018-05-03 17:34:43 +02:00
parent 1025264ec5
commit 0ed2716531

View File

@ -38,6 +38,21 @@
} while (0)
static void
printLineSkipEmpty(const char *line,
FILE *fp)
{
const char *p;
for (p = line; *p; p++) {
if (p[0] == '\n' && p[1] == '\n')
continue;
fputc(*p, fp);
}
}
static int (*realQemuMonitorSend)(qemuMonitorPtr mon,
qemuMonitorMessagePtr msg);
@ -74,8 +89,6 @@ qemuMonitorJSONIOProcessLine(qemuMonitorPtr mon,
if (ret == 0 &&
(value = virJSONValueFromString(line)) &&
(json = virJSONValueToString(value, 1))) {
char *p;
bool skip = false;
if (first) {
first = false;
@ -86,14 +99,7 @@ qemuMonitorJSONIOProcessLine(qemuMonitorPtr mon,
putchar('\n');
}
for (p = json; *p; p++) {
if (skip && *p == '\n') {
continue;
} else {
skip = *p == '\n';
putchar(*p);
}
}
printLineSkipEmpty(json, stdout);
}
cleanup: