From 014c6176b3a3fa9bb9665949348121d008569a52 Mon Sep 17 00:00:00 2001 From: Daniel Willmann Date: Mon, 29 Apr 2013 19:39:54 +0100 Subject: [PATCH] ecore_audio: Test sndfile/tone format and source methods better Signed-off-by: Daniel Willmann --- src/tests/ecore/ecore_test_ecore_audio.c | 76 +++++++++++++++++++++++- 1 file changed, 75 insertions(+), 1 deletion(-) diff --git a/src/tests/ecore/ecore_test_ecore_audio.c b/src/tests/ecore/ecore_test_ecore_audio.c index 75c5bb0ccc..b661e57a01 100644 --- a/src/tests/ecore/ecore_test_ecore_audio.c +++ b/src/tests/ecore/ecore_test_ecore_audio.c @@ -369,6 +369,7 @@ START_TEST(ecore_test_ecore_audio_obj_tone) double len; int channel, rate, freq; Eina_Bool ret; + char *tmp; in = eo_add(ECORE_AUDIO_OBJ_IN_TONE_CLASS, NULL); fail_if(!in); @@ -400,6 +401,16 @@ START_TEST(ecore_test_ecore_audio_obj_tone) eo_do(in, eo_base_data_get(ECORE_AUDIO_ATTR_TONE_FREQ, (void **)&freq)); fail_if(freq != 2000); + eo_do(in, eo_base_data_set("foo", "bar", NULL)); + eo_do(in, eo_base_data_get("foo", (void **)&tmp)); + ck_assert_str_eq(tmp, "bar"); + + eo_do(in, ecore_audio_obj_in_seek(5.0, SEEK_SET, &len)); + fail_if(len != -1); + + eo_do(in, ecore_audio_obj_in_seek(1.0, 42, &len)); + fail_if(len != -1); + eo_do(in, ecore_audio_obj_in_seek(1.0, SEEK_SET, &len)); fail_if(len != 1.0); @@ -445,18 +456,38 @@ END_TEST START_TEST(ecore_test_ecore_audio_obj_sndfile) { - Eo *in; + Eo *in, *out; double len, rem; int channel, rate; Eina_Bool ret; + Ecore_Audio_Format fmt; + const char *src; in = eo_add(ECORE_AUDIO_OBJ_IN_SNDFILE_CLASS, NULL); fail_if(!in); + eo_do(in, ecore_audio_obj_format_get(&fmt)); + fail_if(fmt != ECORE_AUDIO_FORMAT_AUTO); + + eo_do(in, ecore_audio_obj_format_set(ECORE_AUDIO_FORMAT_FLAC, &ret)); + fail_if(!ret); + + eo_do(in, ecore_audio_obj_format_get(&fmt)); + fail_if(fmt != ECORE_AUDIO_FORMAT_FLAC); + + eo_do(in, ecore_audio_obj_format_set(ECORE_AUDIO_FORMAT_AUTO, &ret)); + fail_if(!ret); + eo_do(in, ecore_audio_obj_name_set("sms.ogg")); eo_do(in, ecore_audio_obj_source_set(TESTS_SRC_DIR"/sms.ogg", &ret)); fail_if(!ret); + eo_do(in, ecore_audio_obj_source_get(&src)); + ck_assert_str_eq(src, TESTS_SRC_DIR"/sms.ogg"); + + eo_do(in, ecore_audio_obj_format_get(&fmt)); + fail_if(fmt != ECORE_AUDIO_FORMAT_OGG); + eo_do(in, ecore_audio_obj_in_channels_get(&channel)); fail_if(channel != 2); eo_do(in, ecore_audio_obj_in_samplerate_get(&rate)); @@ -466,7 +497,50 @@ START_TEST(ecore_test_ecore_audio_obj_sndfile) eo_do(in, ecore_audio_obj_in_remaining_get(&rem)); fail_if(len != rem); + eo_do(in, ecore_audio_obj_format_get(&fmt)); + fail_if(fmt != ECORE_AUDIO_FORMAT_OGG); + + eo_do(in, ecore_audio_obj_in_seek(0.5, SEEK_SET, &len)); + fail_if(len != 0.5); + + eo_do(in, ecore_audio_obj_in_seek(0.5, SEEK_CUR, &len)); + fail_if(len != 1.0); + + eo_do(in, ecore_audio_obj_in_seek(-1.0, SEEK_END, &len)); + fail_if(fabs(rem - 1 - len) > 0.1); + + out = eo_add(ECORE_AUDIO_OBJ_OUT_SNDFILE_CLASS, NULL); + fail_if(!out); + + eo_do(out, ecore_audio_obj_name_set("tmp.wav")); + eo_do(out, ecore_audio_obj_format_set(ECORE_AUDIO_FORMAT_WAV, &ret)); + fail_if(!ret); + + eo_do(out, ecore_audio_obj_format_get(&fmt)); + fail_if(fmt != ECORE_AUDIO_FORMAT_WAV); + + +// eo_do(out, ecore_audio_obj_source_set("/tmp/file/does/not/exist/hopefully.wav", &ret)); +// fail_if(ret); + + eo_do(out, ecore_audio_obj_source_set(TESTS_BUILD_DIR"/tmp.wav", &ret)); + fail_if(!ret); + + eo_do(out, ecore_audio_obj_source_get(&src)); + ck_assert_str_eq(src, TESTS_BUILD_DIR"/tmp.wav"); + + eo_do(out, ecore_audio_obj_out_input_attach(in, &ret)); + fail_if(!ret); + + eo_do(in, eo_event_callback_add(ECORE_AUDIO_EV_IN_STOPPED, _finished_cb, NULL)); + + ecore_main_loop_begin(); + eo_del(in); + eo_del(out); + + //TODO: Compare and fail + ecore_file_remove(TESTS_BUILD_DIR"/tmp.wav"); } END_TEST