| 20 | namespace { |
| 21 | typedef std::vector< ::Xyz::Foo> Messages; |
| 22 | bool valid(const Messages& msgs, const long stage, int& expected_count) |
| 23 | { |
| 24 | if (msgs.empty()) { |
| 25 | std::cerr << "ERROR: no messages received\n"; |
| 26 | return false; |
| 27 | } |
| 28 | bool valid = true; |
| 29 | const size_t size = msgs.size(); |
| 30 | expected_count = -1; |
| 31 | std::set<long> group1; |
| 32 | std::set<long> group2; |
| 33 | std::set<long> group3; |
| 34 | for(size_t index = 0; index < size; ++index) { |
| 35 | const ::Xyz::Foo& msg = msgs[index]; |
| 36 | if (expected_count == -1) { |
| 37 | expected_count = msg.key; |
| 38 | } |
| 39 | else if (msg.key != expected_count) { |
| 40 | std::cerr << "ERROR: Stage " << stage << " key of " << msg.key |
| 41 | << " for message # " << index |
| 42 | << " does not match expected count of " |
| 43 | << expected_count << "\n"; |
| 44 | valid = false; |
| 45 | } |
| 46 | |
| 47 | if (msg.x == 1.0) { |
| 48 | if (!group1.insert((long)msg.c).second) { |
| 49 | std::cerr << "ERROR: Stage " << stage << " message # " << index |
| 50 | << " group1 repeated value for " |
| 51 | << (long)msg.c << "\n"; |
| 52 | valid = false; |
| 53 | } |
| 54 | } |
| 55 | else if (msg.x == 2.0) { |
| 56 | if (!group2.insert((long)msg.c).second) { |
| 57 | std::cerr << "ERROR: Stage " << stage << " message # " << index |
| 58 | << " group2 repeated value for " |
| 59 | << (long)msg.c << "\n"; |
| 60 | valid = false; |
| 61 | } |
| 62 | } |
| 63 | else if (msg.x == 3.0) { |
| 64 | if (!group3.insert((long)msg.c).second) { |
| 65 | std::cerr << "ERROR: Stage " << stage << " message # " << index |
| 66 | << " group3 repeated value for " |
| 67 | << (long)msg.c << "\n"; |
| 68 | valid = false; |
| 69 | } |
| 70 | } |
| 71 | else { |
| 72 | std::cerr << "ERROR: Stage " << stage << " for message # " << index |
| 73 | << " expecting to receive message with x=1.0," |
| 74 | << " 2.0, or 3.0, but received " << msg.x << "\n"; |
| 75 | valid = false; |
| 76 | } |
| 77 | } |
| 78 | |
| 79 | if (stage == 2) { |
no test coverage detected