summaryrefslogtreecommitdiff
path: root/cras/src/tests/playback_rclient_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'cras/src/tests/playback_rclient_unittest.cc')
-rw-r--r--cras/src/tests/playback_rclient_unittest.cc50
1 files changed, 44 insertions, 6 deletions
diff --git a/cras/src/tests/playback_rclient_unittest.cc b/cras/src/tests/playback_rclient_unittest.cc
index 75cbe552..7056d2fe 100644
--- a/cras/src/tests/playback_rclient_unittest.cc
+++ b/cras/src/tests/playback_rclient_unittest.cc
@@ -24,8 +24,8 @@ static unsigned int cras_observer_remove_called;
static int stream_list_add_called;
static int stream_list_add_return;
static unsigned int stream_list_rm_called;
-static struct cras_audio_shm mock_shm;
-static struct cras_rstream mock_rstream;
+static struct cras_audio_shm dummy_shm;
+static struct cras_rstream dummy_rstream;
void ResetStubData() {
audio_format_valid = true;
@@ -207,6 +207,44 @@ TEST_F(CPRMessageSuite, StreamConnectMessageInvalidAudioFormat) {
EXPECT_EQ(stream_id, out_msg.stream_id);
}
+/*
+ * TODO(yuhsaun): Remove this test when there are no client uses the old
+ * craslib. (CRAS_PROTO_VER = 5)
+ */
+TEST_F(CPRMessageSuite, StreamConnectMessageOldProtocal) {
+ struct cras_client_stream_connected out_msg;
+ int rc;
+
+ struct cras_connect_message_old msg;
+ cras_stream_id_t stream_id = 0x10002;
+
+ msg.proto_version = 5;
+ msg.direction = CRAS_STREAM_OUTPUT;
+ msg.stream_id = stream_id;
+ msg.stream_type = CRAS_STREAM_TYPE_DEFAULT;
+ msg.buffer_frames = 480;
+ msg.cb_threshold = 240;
+ msg.flags = 0;
+ msg.effects = 0;
+ pack_cras_audio_format(&msg.format, &fmt);
+ msg.dev_idx = NO_DEVICE;
+ msg.client_shm_size = 0;
+ msg.client_type = CRAS_CLIENT_TYPE_TEST;
+ msg.header.id = CRAS_SERVER_CONNECT_STREAM;
+ msg.header.length = sizeof(struct cras_connect_message_old);
+
+ fd_ = 100;
+ rc =
+ rclient_->ops->handle_message_from_client(rclient_, &msg.header, &fd_, 1);
+ EXPECT_EQ(1, cras_make_fd_nonblocking_called);
+ EXPECT_EQ(1, stream_list_add_called);
+ EXPECT_EQ(0, stream_list_rm_called);
+
+ rc = read(pipe_fds_[0], &out_msg, sizeof(out_msg));
+ EXPECT_EQ(sizeof(out_msg), rc);
+ EXPECT_EQ(stream_id, out_msg.stream_id);
+}
+
TEST_F(CPRMessageSuite, StreamDisconnectMessage) {
struct cras_disconnect_stream_message msg;
cras_stream_id_t stream_id = 0x10002;
@@ -282,16 +320,16 @@ int stream_list_add(struct stream_list* list,
struct cras_rstream** stream) {
int ret;
- *stream = &mock_rstream;
+ *stream = &dummy_rstream;
stream_list_add_called++;
ret = stream_list_add_return;
if (ret)
stream_list_add_return = -EINVAL;
- mock_rstream.shm = &mock_shm;
- mock_rstream.direction = config->direction;
- mock_rstream.stream_id = config->stream_id;
+ dummy_rstream.shm = &dummy_shm;
+ dummy_rstream.direction = config->direction;
+ dummy_rstream.stream_id = config->stream_id;
return ret;
}