diff --git a/test/test_osc.cpp b/test/test_osc.cpp index f8a7ddc..d96eef3 100644 --- a/test/test_osc.cpp +++ b/test/test_osc.cpp @@ -327,19 +327,18 @@ TEST(OSC, loopback) message2->iStream(stream2); std::vector hits; - auto echo = [](std::shared_ptr msg, const uint8_t *orig) { + auto echo = [&hits](std::shared_ptr msg, const uint8_t *orig) { + hits.push_back(msg->address_pattern); auto buffer = std::vector(msg->streamSize()); auto stream = std::make_shared(buffer.data(), buffer.size()); msg->oStream(stream); EXPECT_FALSE(stream->fail()) << "message stream failed"; EXPECT_EQ(memcmp(buffer.data(), orig, buffer.size()), 0) << "message output mismatch"; }; - auto echo1 = [&echo, &hits](std::shared_ptr msg) { - hits.push_back(msg->address_pattern); + auto echo1 = [&echo](std::shared_ptr msg) { echo(msg, message1_data); }; - auto echo2 = [&echo, &hits](std::shared_ptr msg) { - hits.push_back(msg->address_pattern); + auto echo2 = [&echo](std::shared_ptr msg) { echo(msg, message2_data); }; @@ -361,7 +360,7 @@ TEST(OSC, loopback) EXPECT_STREQ(hits.front().c_str(), "/oscillator/4/frequency") << "method address mismatch"; hits.clear(); - tx.send(std::shared_ptr(message2)); + tx.send(message2); ASSERT_EQ(hits.size(), 1) << "method hit mismatch"; EXPECT_STREQ(hits.front().c_str(), "/foo") << "method address mismatch"; }