Skip to content

Commit b8f3ccb

Browse files
Jyri Sarhakv2019i
authored andcommitted
cmocka: mux_copy and demux_copy: Fix comp_check_eos() checking
After comp_check_eos() checks were added mux_copy and demux_copy started crashing. Add dummy pipeline with expect_eos = false to bypass the tests. Fixes: d472d22 ("component: Add eos support in components copy function") Signed-off-by: Jyri Sarha <jyri.sarha@linux.intel.com>
1 parent 491bc1c commit b8f3ccb

File tree

2 files changed

+20
-0
lines changed

2 files changed

+20
-0
lines changed

test/cmocka/src/audio/mux/demux_copy.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,13 +157,21 @@ static int setup_test_case(void **state)
157157
struct processing_module *mod;
158158
struct sof_ipc_comp_process *ipc;
159159
size_t sample_size = td->format == SOF_IPC_FRAME_S16_LE ? sizeof(int16_t) : sizeof(int32_t);
160+
struct pipeline *dummy_pipe;
160161

161162
ipc = create_demux_comp_ipc(td);
162163
dev = comp_new((struct sof_ipc_comp *)ipc);
163164
free(ipc);
164165
if (!dev)
165166
return -EINVAL;
166167

168+
/* Add dummy pipeline to bypass comp_check_eos() */
169+
dummy_pipe = test_malloc(sizeof(*dummy_pipe));
170+
if (!dummy_pipe)
171+
return -ENOMEM;
172+
dummy_pipe->expect_eos = false;
173+
dev->pipeline = dummy_pipe;
174+
167175
mod = comp_mod(dev);
168176
td->dev = dev;
169177
td->mod = mod;
@@ -185,6 +193,8 @@ static int teardown_test_case(void **state)
185193
for (i = 0; i < MUX_MAX_STREAMS; ++i)
186194
free_test_sink(td->sinks[i]);
187195

196+
test_free(td->dev->pipeline);
197+
td->dev->pipeline = NULL;
188198
comp_free(td->dev);
189199

190200
return 0;

test/cmocka/src/audio/mux/mux_copy.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,13 +179,21 @@ static int setup_test_case(void **state)
179179
struct processing_module *mod;
180180
struct sof_ipc_comp_process *ipc;
181181
size_t sample_size = td->format == SOF_IPC_FRAME_S16_LE ? sizeof(int16_t) : sizeof(int32_t);
182+
struct pipeline *dummy_pipe;
182183

183184
ipc = create_mux_comp_ipc(td);
184185
dev = comp_new((struct sof_ipc_comp *)ipc);
185186
free(ipc);
186187
if (!dev)
187188
return -EINVAL;
188189

190+
/* Add dummy pipeline to bypass comp_check_eos() */
191+
dummy_pipe = test_malloc(sizeof(*dummy_pipe));
192+
if (!dummy_pipe)
193+
return -ENOMEM;
194+
dummy_pipe->expect_eos = false;
195+
dev->pipeline = dummy_pipe;
196+
189197
mod = comp_mod(dev);
190198
td->dev = dev;
191199
td->mod = mod;
@@ -207,6 +215,8 @@ static int teardown_test_case(void **state)
207215
free_test_source(td->sources[i]);
208216

209217
free_test_sink(td->sink);
218+
test_free(td->dev->pipeline);
219+
td->dev->pipeline = NULL;
210220
comp_free(td->dev);
211221
return 0;
212222
}

0 commit comments

Comments
 (0)