Skip to content

Commit 716790b

Browse files
committed
add test cases
1 parent 6d495c7 commit 716790b

File tree

2 files changed

+54
-7
lines changed

2 files changed

+54
-7
lines changed

src/viam/sdk/tests/mocks/mock_audio_in.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ std::shared_ptr<MockAudioIn> MockAudioIn::get_mock_audio_in() {
5656
audio_in->properties_ = fake_properties();
5757
audio_in->mock_chunks_ = fake_audio_chunks();
5858
audio_in->map_ = fake_map();
59+
audio_in->geometries_ = fake_geometries();
5960

6061
return audio_in;
6162
}
@@ -77,8 +78,9 @@ std::vector<AudioIn::audio_chunk> fake_audio_chunks() {
7778
chunk.info.codec = "pcm16";
7879
chunk.info.sample_rate_hz = 48000;
7980
chunk.info.num_channels = 1;
80-
chunk.start_timestamp_ns = i * 10000000;
81-
chunk.end_timestamp_ns = (i + 1) * 10000000;
81+
chunk.start_timestamp_ns = static_cast<int64_t>(i) * 100;
82+
chunk.end_timestamp_ns = static_cast<int64_t>(i + 1) * 100;
83+
chunk.sequence = i;
8284
chunks.push_back(chunk);
8385
}
8486

src/viam/sdk/tests/test_audio_in.cpp

Lines changed: 50 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,29 +31,74 @@ BOOST_AUTO_TEST_CASE(test_get_audio) {
3131
client_to_mock_pipeline<AudioIn>(mock, [&](AudioIn& client) {
3232
std::vector<AudioIn::audio_chunk> received_chunks;
3333

34-
// Test streaming for 1 second
3534
client.get_audio(
3635
"pcm16",
3736
[&](AudioIn::audio_chunk&& chunk) -> bool {
3837
received_chunks.push_back(std::move(chunk));
39-
return received_chunks.size() < 3; // Stop stream after 3 chunks
38+
// Stop stream after 3 chunks
39+
return received_chunks.size() < 3;
4040
},
4141
1.0, // 1 second duration
4242
0 // No previous timestamp
4343
);
4444

4545
BOOST_CHECK_EQUAL(received_chunks.size(), 3);
4646

47-
// Verify chunk properties
48-
for (const auto& chunk : received_chunks) {
49-
BOOST_CHECK_GT(chunk.audio_data.size(), 0);
47+
// Check that request_id is consistent across all chunks
48+
BOOST_CHECK(!received_chunks[0].request_id.empty());
49+
std::string first_request_id = received_chunks[0].request_id;
50+
51+
for (size_t i = 0; i < received_chunks.size(); ++i) {
52+
const auto& chunk = received_chunks[i];
53+
BOOST_CHECK_EQUAL(chunk.audio_data.size(), 1024);
5054
BOOST_CHECK_EQUAL(chunk.info.codec, "pcm16");
5155
BOOST_CHECK_EQUAL(chunk.info.sample_rate_hz, 48000);
5256
BOOST_CHECK_EQUAL(chunk.info.num_channels, 1);
57+
BOOST_CHECK_EQUAL(chunk.request_id, first_request_id);
58+
BOOST_CHECK_EQUAL(chunk.sequence, static_cast<int>(i));
59+
BOOST_CHECK_GE(chunk.start_timestamp_ns, 0);
60+
BOOST_CHECK_GE(chunk.end_timestamp_ns, 0);
5361
}
5462
});
5563
}
5664

65+
BOOST_AUTO_TEST_CASE(test_get_audio_request_ids_differ_across_calls) {
66+
std::shared_ptr<MockAudioIn> mock = MockAudioIn::get_mock_audio_in();
67+
68+
client_to_mock_pipeline<AudioIn>(mock, [&](AudioIn& client) {
69+
std::string first_request_id;
70+
std::string second_request_id;
71+
72+
// First call
73+
client.get_audio(
74+
"pcm16",
75+
[&](AudioIn::audio_chunk&& chunk) -> bool {
76+
first_request_id = chunk.request_id;
77+
return false; // Stop after first chunk
78+
},
79+
1.0,
80+
0
81+
);
82+
83+
// Second call
84+
client.get_audio(
85+
"pcm16",
86+
[&](AudioIn::audio_chunk&& chunk) -> bool {
87+
second_request_id = chunk.request_id;
88+
return false; // Stop after first chunk
89+
},
90+
1.0,
91+
0
92+
);
93+
94+
// Request IDs should be different across separate calls
95+
BOOST_CHECK(!first_request_id.empty());
96+
BOOST_CHECK(!second_request_id.empty());
97+
BOOST_CHECK_NE(first_request_id, second_request_id);
98+
});
99+
}
100+
101+
57102
BOOST_AUTO_TEST_CASE(test_do_command) {
58103
std::shared_ptr<MockAudioIn> mock = MockAudioIn::get_mock_audio_in();
59104
client_to_mock_pipeline<AudioIn>(mock, [](AudioIn& client) {

0 commit comments

Comments
 (0)