diff options
Diffstat (limited to 'cras/src/tests/playback_rclient_unittest.cc')
-rw-r--r-- | cras/src/tests/playback_rclient_unittest.cc | 50 |
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; } |