You've already forked pgbackrest
mirror of
https://github.com/pgbackrest/pgbackrest.git
synced 2025-06-18 23:57:33 +02:00
Add ioWriteStr() and ioWriteStrLine().
These function names make it clearer what is being written. The old ioWriteLine() has been repurposed to write buffers.
This commit is contained in:
@ -43,7 +43,7 @@ testServerProtocol(const String *command, const VariantList *paramList, Protocol
|
||||
else if (strEq(command, strNew("request-complex")))
|
||||
{
|
||||
protocolServerResponse(server, varNewBool(false));
|
||||
ioWriteLine(protocolServerIoWrite(server), strNew("LINEOFTEXT"));
|
||||
ioWriteStrLine(protocolServerIoWrite(server), strNew("LINEOFTEXT"));
|
||||
ioWriteFlush(protocolServerIoWrite(server));
|
||||
}
|
||||
else
|
||||
@ -230,44 +230,44 @@ testRun(void)
|
||||
ioWriteOpen(write);
|
||||
|
||||
// Various bogus greetings
|
||||
ioWriteLine(write, strNew("bogus greeting"));
|
||||
ioWriteStrLine(write, strNew("bogus greeting"));
|
||||
ioWriteFlush(write);
|
||||
ioWriteLine(write, strNew("{\"name\":999}"));
|
||||
ioWriteStrLine(write, strNew("{\"name\":999}"));
|
||||
ioWriteFlush(write);
|
||||
ioWriteLine(write, strNew("{\"name\":null}"));
|
||||
ioWriteStrLine(write, strNew("{\"name\":null}"));
|
||||
ioWriteFlush(write);
|
||||
ioWriteLine(write, strNew("{\"name\":\"bogus\"}"));
|
||||
ioWriteStrLine(write, strNew("{\"name\":\"bogus\"}"));
|
||||
ioWriteFlush(write);
|
||||
ioWriteLine(write, strNew("{\"name\":\"pgBackRest\",\"service\":\"bogus\"}"));
|
||||
ioWriteStrLine(write, strNew("{\"name\":\"pgBackRest\",\"service\":\"bogus\"}"));
|
||||
ioWriteFlush(write);
|
||||
ioWriteLine(write, strNew("{\"name\":\"pgBackRest\",\"service\":\"test\",\"version\":\"bogus\"}"));
|
||||
ioWriteStrLine(write, strNew("{\"name\":\"pgBackRest\",\"service\":\"test\",\"version\":\"bogus\"}"));
|
||||
ioWriteFlush(write);
|
||||
|
||||
// Correct greeting with noop
|
||||
ioWriteLine(write, strNew("{\"name\":\"pgBackRest\",\"service\":\"test\",\"version\":\"" PROJECT_VERSION "\"}"));
|
||||
ioWriteStrLine(write, strNew("{\"name\":\"pgBackRest\",\"service\":\"test\",\"version\":\"" PROJECT_VERSION "\"}"));
|
||||
ioWriteFlush(write);
|
||||
|
||||
TEST_RESULT_STR(strPtr(ioReadLine(read)), "{\"cmd\":\"noop\"}", "noop");
|
||||
ioWriteLine(write, strNew("{}"));
|
||||
ioWriteStrLine(write, strNew("{}"));
|
||||
ioWriteFlush(write);
|
||||
|
||||
// Throw errors
|
||||
TEST_RESULT_STR(strPtr(ioReadLine(read)), "{\"cmd\":\"noop\"}", "noop with error text");
|
||||
ioWriteLine(write, strNew("{\"err\":25,\"out\":\"sample error message\"}"));
|
||||
ioWriteStrLine(write, strNew("{\"err\":25,\"out\":\"sample error message\"}"));
|
||||
ioWriteFlush(write);
|
||||
|
||||
TEST_RESULT_STR(strPtr(ioReadLine(read)), "{\"cmd\":\"noop\"}", "noop with no error text");
|
||||
ioWriteLine(write, strNew("{\"err\":255}"));
|
||||
ioWriteStrLine(write, strNew("{\"err\":255}"));
|
||||
ioWriteFlush(write);
|
||||
|
||||
// No output expected
|
||||
TEST_RESULT_STR(strPtr(ioReadLine(read)), "{\"cmd\":\"noop\"}", "noop with parameters returned");
|
||||
ioWriteLine(write, strNew("{\"out\":[\"bogus\"]}"));
|
||||
ioWriteStrLine(write, strNew("{\"out\":[\"bogus\"]}"));
|
||||
ioWriteFlush(write);
|
||||
|
||||
// Send output
|
||||
TEST_RESULT_STR(strPtr(ioReadLine(read)), "{\"cmd\":\"test\"}", "test command");
|
||||
ioWriteLine(write, strNew("{\"out\":[\"value1\",\"value2\"]}"));
|
||||
ioWriteStrLine(write, strNew("{\"out\":[\"value1\",\"value2\"]}"));
|
||||
ioWriteFlush(write);
|
||||
|
||||
// Wait for exit
|
||||
@ -364,14 +364,14 @@ testRun(void)
|
||||
"check greeting");
|
||||
|
||||
// Noop
|
||||
TEST_RESULT_VOID(ioWriteLine(write, strNew("{\"cmd\":\"noop\"}")), "write noop");
|
||||
TEST_RESULT_VOID(ioWriteStrLine(write, strNew("{\"cmd\":\"noop\"}")), "write noop");
|
||||
TEST_RESULT_VOID(ioWriteFlush(write), "flush noop");
|
||||
TEST_RESULT_STR(strPtr(ioReadLine(read)), "{}", "noop result");
|
||||
|
||||
// Invalid command
|
||||
KeyValue *result = NULL;
|
||||
|
||||
TEST_RESULT_VOID(ioWriteLine(write, strNew("{\"cmd\":\"bogus\"}")), "write bogus");
|
||||
TEST_RESULT_VOID(ioWriteStrLine(write, strNew("{\"cmd\":\"bogus\"}")), "write bogus");
|
||||
TEST_RESULT_VOID(ioWriteFlush(write), "flush bogus");
|
||||
TEST_ASSIGN(result, varKv(jsonToVar(ioReadLine(read))), "parse error result");
|
||||
TEST_RESULT_INT(varIntForce(kvGet(result, VARSTRDEF("err"))), 39, " check code");
|
||||
@ -379,12 +379,12 @@ testRun(void)
|
||||
TEST_RESULT_BOOL(kvGet(result, VARSTRDEF("errStack")) != NULL, true, " check stack exists");
|
||||
|
||||
// Simple request
|
||||
TEST_RESULT_VOID(ioWriteLine(write, strNew("{\"cmd\":\"request-simple\"}")), "write simple request");
|
||||
TEST_RESULT_VOID(ioWriteStrLine(write, strNew("{\"cmd\":\"request-simple\"}")), "write simple request");
|
||||
TEST_RESULT_VOID(ioWriteFlush(write), "flush simple request");
|
||||
TEST_RESULT_STR(strPtr(ioReadLine(read)), "{\"out\":true}", "simple request result");
|
||||
|
||||
// Throw an assert error which will include a stack trace
|
||||
TEST_RESULT_VOID(ioWriteLine(write, strNew("{\"cmd\":\"assert\"}")), "write assert");
|
||||
TEST_RESULT_VOID(ioWriteStrLine(write, strNew("{\"cmd\":\"assert\"}")), "write assert");
|
||||
TEST_RESULT_VOID(ioWriteFlush(write), "flush assert error");
|
||||
TEST_ASSIGN(result, varKv(jsonToVar(ioReadLine(read))), "parse error result");
|
||||
TEST_RESULT_INT(varIntForce(kvGet(result, VARSTRDEF("err"))), 25, " check code");
|
||||
@ -392,13 +392,13 @@ testRun(void)
|
||||
TEST_RESULT_BOOL(kvGet(result, VARSTRDEF("errStack")) != NULL, true, " check stack exists");
|
||||
|
||||
// Complex request -- after process loop has been restarted
|
||||
TEST_RESULT_VOID(ioWriteLine(write, strNew("{\"cmd\":\"request-complex\"}")), "write complex request");
|
||||
TEST_RESULT_VOID(ioWriteStrLine(write, strNew("{\"cmd\":\"request-complex\"}")), "write complex request");
|
||||
TEST_RESULT_VOID(ioWriteFlush(write), "flush complex request");
|
||||
TEST_RESULT_STR(strPtr(ioReadLine(read)), "{\"out\":false}", "complex request result");
|
||||
TEST_RESULT_STR(strPtr(ioReadLine(read)), "LINEOFTEXT", "complex request result");
|
||||
|
||||
// Exit
|
||||
TEST_RESULT_VOID(ioWriteLine(write, strNew("{\"cmd\":\"exit\"}")), "write exit");
|
||||
TEST_RESULT_VOID(ioWriteStrLine(write, strNew("{\"cmd\":\"exit\"}")), "write exit");
|
||||
TEST_RESULT_VOID(ioWriteFlush(write), "flush exit");
|
||||
}
|
||||
HARNESS_FORK_CHILD_END();
|
||||
@ -476,16 +476,16 @@ testRun(void)
|
||||
ioWriteOpen(write);
|
||||
|
||||
// Greeting with noop
|
||||
ioWriteLine(write, strNew("{\"name\":\"pgBackRest\",\"service\":\"test\",\"version\":\"" PROJECT_VERSION "\"}"));
|
||||
ioWriteStrLine(write, strNew("{\"name\":\"pgBackRest\",\"service\":\"test\",\"version\":\"" PROJECT_VERSION "\"}"));
|
||||
ioWriteFlush(write);
|
||||
|
||||
TEST_RESULT_STR(strPtr(ioReadLine(read)), "{\"cmd\":\"noop\"}", "noop");
|
||||
ioWriteLine(write, strNew("{}"));
|
||||
ioWriteStrLine(write, strNew("{}"));
|
||||
ioWriteFlush(write);
|
||||
|
||||
TEST_RESULT_STR(strPtr(ioReadLine(read)), "{\"cmd\":\"command1\",\"param\":[\"param1\",\"param2\"]}", "command1");
|
||||
sleepMSec(4000);
|
||||
ioWriteLine(write, strNew("{\"out\":1}"));
|
||||
ioWriteStrLine(write, strNew("{\"out\":1}"));
|
||||
ioWriteFlush(write);
|
||||
|
||||
// Wait for exit
|
||||
@ -502,21 +502,21 @@ testRun(void)
|
||||
ioWriteOpen(write);
|
||||
|
||||
// Greeting with noop
|
||||
ioWriteLine(write, strNew("{\"name\":\"pgBackRest\",\"service\":\"test\",\"version\":\"" PROJECT_VERSION "\"}"));
|
||||
ioWriteStrLine(write, strNew("{\"name\":\"pgBackRest\",\"service\":\"test\",\"version\":\"" PROJECT_VERSION "\"}"));
|
||||
ioWriteFlush(write);
|
||||
|
||||
TEST_RESULT_STR(strPtr(ioReadLine(read)), "{\"cmd\":\"noop\"}", "noop");
|
||||
ioWriteLine(write, strNew("{}"));
|
||||
ioWriteStrLine(write, strNew("{}"));
|
||||
ioWriteFlush(write);
|
||||
|
||||
TEST_RESULT_STR(strPtr(ioReadLine(read)), "{\"cmd\":\"command2\",\"param\":[\"param1\"]}", "command2");
|
||||
sleepMSec(1000);
|
||||
ioWriteLine(write, strNew("{\"out\":2}"));
|
||||
ioWriteStrLine(write, strNew("{\"out\":2}"));
|
||||
ioWriteFlush(write);
|
||||
|
||||
TEST_RESULT_STR(strPtr(ioReadLine(read)), "{\"cmd\":\"command3\",\"param\":[\"param1\"]}", "command3");
|
||||
|
||||
ioWriteLine(write, strNew("{\"err\":39,\"out\":\"very serious error\"}"));
|
||||
ioWriteStrLine(write, strNew("{\"err\":39,\"out\":\"very serious error\"}"));
|
||||
ioWriteFlush(write);
|
||||
|
||||
// Wait for exit
|
||||
|
Reference in New Issue
Block a user