From 81afb5a2d918f2de818516520db792c2adeb5879 Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Fri, 15 Aug 2014 22:47:30 +0000 Subject: Add a TEST_PROTOCOL_ERROR_OR assertion. Similar to TEST_COMMAND_RETURNS_ERROR_OR, but allows any command or sequence to cause the error, without direct access to the command message. Refactor so that TEST_COMMAND_RETURNS_ERROR_OR calls TEST_PROTOCOL_ERROR_OR to make the assertion on the last error seen by the protocol. --- lib/backupstore/StoreTestUtils.h | 9 ++++++--- test/bbackupd/testbbackupd.cpp | 1 + 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/backupstore/StoreTestUtils.h b/lib/backupstore/StoreTestUtils.h index 39013422..7ef2ce28 100644 --- a/lib/backupstore/StoreTestUtils.h +++ b/lib/backupstore/StoreTestUtils.h @@ -80,10 +80,8 @@ bool create_account(int soft, int hard); //! Deletes the standard test account, for testing behaviour with no account. bool delete_account(); -#define TEST_COMMAND_RETURNS_ERROR_OR(protocol, command, error, or_statements) \ +#define TEST_PROTOCOL_ERROR_OR(protocol, error, or_statements) \ { \ - TEST_CHECK_THROWS_OR(protocol . command, ConnectionException, \ - Conn_Protocol_UnexpectedReply, or_statements); \ int type, subtype; \ protocol.GetLastError(type, subtype); \ if (type == BackupProtocolError::ErrorType) \ @@ -103,6 +101,11 @@ bool delete_account(); } \ } +#define TEST_COMMAND_RETURNS_ERROR_OR(protocol, command, error, or_statements) \ + TEST_CHECK_THROWS_OR(protocol . command, ConnectionException, \ + Protocol_UnexpectedReply, or_statements); \ + TEST_PROTOCOL_ERROR_OR(protocol, error, or_statements) + #define TEST_COMMAND_RETURNS_ERROR(protocol, command, error) \ TEST_COMMAND_RETURNS_ERROR_OR(protocol, command, error,) diff --git a/test/bbackupd/testbbackupd.cpp b/test/bbackupd/testbbackupd.cpp index c25c38a0..d09132cc 100644 --- a/test/bbackupd/testbbackupd.cpp +++ b/test/bbackupd/testbbackupd.cpp @@ -883,6 +883,7 @@ int test_bbackupd() TEST_CHECK_THROWS(ReadDirectory(*client, 0x12345678), ConnectionException, Protocol_UnexpectedReply); + TEST_PROTOCOL_ERROR_OR(*client, Err_DoesNotExist,); } client->QueryFinished(); -- cgit v1.2.1