| 187 | } |
| 188 | |
| 189 | void Test::test_case(const Dri& writer_dr, const Dri& reader_dr, |
| 190 | bool expect_writer, bool expect_reader, bool expect_match) |
| 191 | { |
| 192 | if (!topic_) { add_result(false); return; } |
| 193 | // Create Writer and Reader |
| 194 | DDS::DataWriter_var writer = create_writer(writer_dr); |
| 195 | if (!writer) { add_result(!expect_writer); return; } |
| 196 | DDS::DataReader_var reader = create_reader(reader_dr); |
| 197 | if (!reader) { add_result(!expect_reader); return; } |
| 198 | |
| 199 | // Check if they matched as expected |
| 200 | bool passed = false; |
| 201 | switch (check_match(reader, writer, expect_match)) { |
| 202 | case check_match_expected: passed = true; break; |
| 203 | case check_match_unexpected: |
| 204 | ACE_ERROR((LM_ERROR, ACE_TEXT("%N:%l test_case() ERROR: Test case failed:\n") |
| 205 | ACE_TEXT(" Topic: \"%C\"\n") |
| 206 | ACE_TEXT(" Writer Data Representation QoS: %C\n") |
| 207 | ACE_TEXT(" Reader Data Representation QoS: %C\n") |
| 208 | ACE_TEXT(" %Cxpected to match.\n"), topic_name_.c_str(), |
| 209 | to_string(writer_dr).c_str(), |
| 210 | to_string(reader_dr).c_str(), |
| 211 | expect_match ? "E" : "NOT e")); |
| 212 | break; |
| 213 | case check_match_error: break; |
| 214 | } |
| 215 | |
| 216 | // Cleanup |
| 217 | DDS::ReturnCode_t rc = publisher_->delete_datawriter(writer); |
| 218 | if (rc != DDS::RETCODE_OK) { |
| 219 | ACE_ERROR((LM_ERROR, ACE_TEXT("%N:%l test_case() ERROR: Failed to delete writer: %C\n"), |
| 220 | retcode_to_string(rc))); |
| 221 | passed = false; |
| 222 | } |
| 223 | rc = subscriber_->delete_datareader(reader); |
| 224 | if (rc != DDS::RETCODE_OK) { |
| 225 | ACE_ERROR((LM_ERROR, ACE_TEXT("%N:%l test_case() ERROR: Failed to delete reader: %C\n"), |
| 226 | retcode_to_string(rc))); |
| 227 | passed = false; |
| 228 | } |
| 229 | add_result(passed); |
| 230 | } |
| 231 | |
| 232 | void Test::test_default(bool expect_writer, bool expect_reader) |
| 233 | { |
nothing calls this directly
no test coverage detected