asdfuser pushed a commit to branch master.

commit 014c6176b3a3fa9bb9665949348121d008569a52
Author: Daniel Willmann <[email protected]>
Date:   Mon Apr 29 19:39:54 2013 +0100

    ecore_audio: Test sndfile/tone format and source methods better
    
    Signed-off-by: Daniel Willmann <[email protected]>
---
 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 75c5bb0..b661e57 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
 

-- 

------------------------------------------------------------------------------
Try New Relic Now & We'll Send You this Cool Shirt
New Relic is the only SaaS-based application performance monitoring service 
that delivers powerful full stack analytics. Optimize and monitor your
browser, app, & servers with just a few lines of code. Try New Relic
and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_apr

Reply via email to