[UTC][audio-io][Non-ACR] Add negative testcases for checking invalid operation error...
authorSeungbae Shin <seungbae.shin@samsung.com>
Sat, 7 Jan 2017 05:57:06 +0000 (14:57 +0900)
committerSeungbae Shin <seungbae.shin@samsung.com>
Sat, 7 Jan 2017 05:57:06 +0000 (14:57 +0900)
Change-Id: Ibbb10556e5b838eeadfa9d73625f95f399d7b27e

src/utc/audio-io/tct-audio-io-core_common_iot.h
src/utc/audio-io/tct-audio-io-core_mobile.h
src/utc/audio-io/tct-audio-io-core_tv.h
src/utc/audio-io/tct-audio-io-core_wearable.h
src/utc/audio-io/utc-media-audio-input.c
src/utc/audio-io/utc-media-audio-output.c

index 856c8987bf8a6069acdec5b0fec9162e17e82ffa..8e0a33cf6a48c22c442b288cbfdb8216ad172626 100755 (executable)
@@ -31,7 +31,8 @@ extern int utc_media_audio_in_create_loopback_n(void);
 extern int utc_media_audio_in_destroy_p(void);
 extern int utc_media_audio_in_destroy_n(void);
 extern int utc_media_audio_in_read_p(void);
-extern int utc_media_audio_in_read_n(void);
+extern int utc_media_audio_in_read_n1(void);
+extern int utc_media_audio_in_read_n2(void);
 extern int utc_media_audio_in_get_buffer_size_p(void);
 extern int utc_media_audio_in_get_buffer_size_n(void);
 extern int utc_media_audio_in_get_sample_rate_p(void);
@@ -77,7 +78,8 @@ extern int utc_media_audio_out_create_n(void);
 extern int utc_media_audio_out_destroy_p(void);
 extern int utc_media_audio_out_destroy_n(void);
 extern int utc_media_audio_out_write_p(void);
-extern int utc_media_audio_out_write_n(void);
+extern int utc_media_audio_out_write_n1(void);
+extern int utc_media_audio_out_write_n2(void);
 extern int utc_media_audio_out_get_buffer_size_p(void);
 extern int utc_media_audio_out_get_buffer_size_n(void);
 extern int utc_media_audio_out_get_sample_rate_p(void);
@@ -127,7 +129,8 @@ testcase tc_array[] = {
     {"utc_media_audio_in_destroy_p", utc_media_audio_in_destroy_p, utc_media_audio_in_startup, utc_media_audio_in_cleanup},
     {"utc_media_audio_in_destroy_n", utc_media_audio_in_destroy_n, utc_media_audio_in_startup, utc_media_audio_in_cleanup},
     {"utc_media_audio_in_read_p", utc_media_audio_in_read_p, utc_media_audio_in_startup, utc_media_audio_in_cleanup},
-    {"utc_media_audio_in_read_n", utc_media_audio_in_read_n, utc_media_audio_in_startup, utc_media_audio_in_cleanup},
+    {"utc_media_audio_in_read_n1", utc_media_audio_in_read_n1, utc_media_audio_in_startup, utc_media_audio_in_cleanup},
+    {"utc_media_audio_in_read_n2", utc_media_audio_in_read_n2, utc_media_audio_in_startup, utc_media_audio_in_cleanup},
     {"utc_media_audio_in_get_buffer_size_p", utc_media_audio_in_get_buffer_size_p, utc_media_audio_in_startup, utc_media_audio_in_cleanup},
     {"utc_media_audio_in_get_buffer_size_n", utc_media_audio_in_get_buffer_size_n, utc_media_audio_in_startup, utc_media_audio_in_cleanup},
     {"utc_media_audio_in_get_sample_rate_p", utc_media_audio_in_get_sample_rate_p, utc_media_audio_in_startup, utc_media_audio_in_cleanup},
@@ -173,7 +176,8 @@ testcase tc_array[] = {
     {"utc_media_audio_out_destroy_p", utc_media_audio_out_destroy_p, utc_media_audio_out_startup, utc_media_audio_out_cleanup},
     {"utc_media_audio_out_destroy_n", utc_media_audio_out_destroy_n, utc_media_audio_out_startup, utc_media_audio_out_cleanup},
     {"utc_media_audio_out_write_p", utc_media_audio_out_write_p, utc_media_audio_out_startup, utc_media_audio_out_cleanup},
-    {"utc_media_audio_out_write_n", utc_media_audio_out_write_n, utc_media_audio_out_startup, utc_media_audio_out_cleanup},
+    {"utc_media_audio_out_write_n1", utc_media_audio_out_write_n1, utc_media_audio_out_startup, utc_media_audio_out_cleanup},
+    {"utc_media_audio_out_write_n2", utc_media_audio_out_write_n2, utc_media_audio_out_startup, utc_media_audio_out_cleanup},
     {"utc_media_audio_out_get_buffer_size_p", utc_media_audio_out_get_buffer_size_p, utc_media_audio_out_startup, utc_media_audio_out_cleanup},
     {"utc_media_audio_out_get_buffer_size_n", utc_media_audio_out_get_buffer_size_n, utc_media_audio_out_startup, utc_media_audio_out_cleanup},
     {"utc_media_audio_out_get_sample_rate_p", utc_media_audio_out_get_sample_rate_p, utc_media_audio_out_startup, utc_media_audio_out_cleanup},
index 856c8987bf8a6069acdec5b0fec9162e17e82ffa..8e0a33cf6a48c22c442b288cbfdb8216ad172626 100755 (executable)
@@ -31,7 +31,8 @@ extern int utc_media_audio_in_create_loopback_n(void);
 extern int utc_media_audio_in_destroy_p(void);
 extern int utc_media_audio_in_destroy_n(void);
 extern int utc_media_audio_in_read_p(void);
-extern int utc_media_audio_in_read_n(void);
+extern int utc_media_audio_in_read_n1(void);
+extern int utc_media_audio_in_read_n2(void);
 extern int utc_media_audio_in_get_buffer_size_p(void);
 extern int utc_media_audio_in_get_buffer_size_n(void);
 extern int utc_media_audio_in_get_sample_rate_p(void);
@@ -77,7 +78,8 @@ extern int utc_media_audio_out_create_n(void);
 extern int utc_media_audio_out_destroy_p(void);
 extern int utc_media_audio_out_destroy_n(void);
 extern int utc_media_audio_out_write_p(void);
-extern int utc_media_audio_out_write_n(void);
+extern int utc_media_audio_out_write_n1(void);
+extern int utc_media_audio_out_write_n2(void);
 extern int utc_media_audio_out_get_buffer_size_p(void);
 extern int utc_media_audio_out_get_buffer_size_n(void);
 extern int utc_media_audio_out_get_sample_rate_p(void);
@@ -127,7 +129,8 @@ testcase tc_array[] = {
     {"utc_media_audio_in_destroy_p", utc_media_audio_in_destroy_p, utc_media_audio_in_startup, utc_media_audio_in_cleanup},
     {"utc_media_audio_in_destroy_n", utc_media_audio_in_destroy_n, utc_media_audio_in_startup, utc_media_audio_in_cleanup},
     {"utc_media_audio_in_read_p", utc_media_audio_in_read_p, utc_media_audio_in_startup, utc_media_audio_in_cleanup},
-    {"utc_media_audio_in_read_n", utc_media_audio_in_read_n, utc_media_audio_in_startup, utc_media_audio_in_cleanup},
+    {"utc_media_audio_in_read_n1", utc_media_audio_in_read_n1, utc_media_audio_in_startup, utc_media_audio_in_cleanup},
+    {"utc_media_audio_in_read_n2", utc_media_audio_in_read_n2, utc_media_audio_in_startup, utc_media_audio_in_cleanup},
     {"utc_media_audio_in_get_buffer_size_p", utc_media_audio_in_get_buffer_size_p, utc_media_audio_in_startup, utc_media_audio_in_cleanup},
     {"utc_media_audio_in_get_buffer_size_n", utc_media_audio_in_get_buffer_size_n, utc_media_audio_in_startup, utc_media_audio_in_cleanup},
     {"utc_media_audio_in_get_sample_rate_p", utc_media_audio_in_get_sample_rate_p, utc_media_audio_in_startup, utc_media_audio_in_cleanup},
@@ -173,7 +176,8 @@ testcase tc_array[] = {
     {"utc_media_audio_out_destroy_p", utc_media_audio_out_destroy_p, utc_media_audio_out_startup, utc_media_audio_out_cleanup},
     {"utc_media_audio_out_destroy_n", utc_media_audio_out_destroy_n, utc_media_audio_out_startup, utc_media_audio_out_cleanup},
     {"utc_media_audio_out_write_p", utc_media_audio_out_write_p, utc_media_audio_out_startup, utc_media_audio_out_cleanup},
-    {"utc_media_audio_out_write_n", utc_media_audio_out_write_n, utc_media_audio_out_startup, utc_media_audio_out_cleanup},
+    {"utc_media_audio_out_write_n1", utc_media_audio_out_write_n1, utc_media_audio_out_startup, utc_media_audio_out_cleanup},
+    {"utc_media_audio_out_write_n2", utc_media_audio_out_write_n2, utc_media_audio_out_startup, utc_media_audio_out_cleanup},
     {"utc_media_audio_out_get_buffer_size_p", utc_media_audio_out_get_buffer_size_p, utc_media_audio_out_startup, utc_media_audio_out_cleanup},
     {"utc_media_audio_out_get_buffer_size_n", utc_media_audio_out_get_buffer_size_n, utc_media_audio_out_startup, utc_media_audio_out_cleanup},
     {"utc_media_audio_out_get_sample_rate_p", utc_media_audio_out_get_sample_rate_p, utc_media_audio_out_startup, utc_media_audio_out_cleanup},
index 856c8987bf8a6069acdec5b0fec9162e17e82ffa..8e0a33cf6a48c22c442b288cbfdb8216ad172626 100755 (executable)
@@ -31,7 +31,8 @@ extern int utc_media_audio_in_create_loopback_n(void);
 extern int utc_media_audio_in_destroy_p(void);
 extern int utc_media_audio_in_destroy_n(void);
 extern int utc_media_audio_in_read_p(void);
-extern int utc_media_audio_in_read_n(void);
+extern int utc_media_audio_in_read_n1(void);
+extern int utc_media_audio_in_read_n2(void);
 extern int utc_media_audio_in_get_buffer_size_p(void);
 extern int utc_media_audio_in_get_buffer_size_n(void);
 extern int utc_media_audio_in_get_sample_rate_p(void);
@@ -77,7 +78,8 @@ extern int utc_media_audio_out_create_n(void);
 extern int utc_media_audio_out_destroy_p(void);
 extern int utc_media_audio_out_destroy_n(void);
 extern int utc_media_audio_out_write_p(void);
-extern int utc_media_audio_out_write_n(void);
+extern int utc_media_audio_out_write_n1(void);
+extern int utc_media_audio_out_write_n2(void);
 extern int utc_media_audio_out_get_buffer_size_p(void);
 extern int utc_media_audio_out_get_buffer_size_n(void);
 extern int utc_media_audio_out_get_sample_rate_p(void);
@@ -127,7 +129,8 @@ testcase tc_array[] = {
     {"utc_media_audio_in_destroy_p", utc_media_audio_in_destroy_p, utc_media_audio_in_startup, utc_media_audio_in_cleanup},
     {"utc_media_audio_in_destroy_n", utc_media_audio_in_destroy_n, utc_media_audio_in_startup, utc_media_audio_in_cleanup},
     {"utc_media_audio_in_read_p", utc_media_audio_in_read_p, utc_media_audio_in_startup, utc_media_audio_in_cleanup},
-    {"utc_media_audio_in_read_n", utc_media_audio_in_read_n, utc_media_audio_in_startup, utc_media_audio_in_cleanup},
+    {"utc_media_audio_in_read_n1", utc_media_audio_in_read_n1, utc_media_audio_in_startup, utc_media_audio_in_cleanup},
+    {"utc_media_audio_in_read_n2", utc_media_audio_in_read_n2, utc_media_audio_in_startup, utc_media_audio_in_cleanup},
     {"utc_media_audio_in_get_buffer_size_p", utc_media_audio_in_get_buffer_size_p, utc_media_audio_in_startup, utc_media_audio_in_cleanup},
     {"utc_media_audio_in_get_buffer_size_n", utc_media_audio_in_get_buffer_size_n, utc_media_audio_in_startup, utc_media_audio_in_cleanup},
     {"utc_media_audio_in_get_sample_rate_p", utc_media_audio_in_get_sample_rate_p, utc_media_audio_in_startup, utc_media_audio_in_cleanup},
@@ -173,7 +176,8 @@ testcase tc_array[] = {
     {"utc_media_audio_out_destroy_p", utc_media_audio_out_destroy_p, utc_media_audio_out_startup, utc_media_audio_out_cleanup},
     {"utc_media_audio_out_destroy_n", utc_media_audio_out_destroy_n, utc_media_audio_out_startup, utc_media_audio_out_cleanup},
     {"utc_media_audio_out_write_p", utc_media_audio_out_write_p, utc_media_audio_out_startup, utc_media_audio_out_cleanup},
-    {"utc_media_audio_out_write_n", utc_media_audio_out_write_n, utc_media_audio_out_startup, utc_media_audio_out_cleanup},
+    {"utc_media_audio_out_write_n1", utc_media_audio_out_write_n1, utc_media_audio_out_startup, utc_media_audio_out_cleanup},
+    {"utc_media_audio_out_write_n2", utc_media_audio_out_write_n2, utc_media_audio_out_startup, utc_media_audio_out_cleanup},
     {"utc_media_audio_out_get_buffer_size_p", utc_media_audio_out_get_buffer_size_p, utc_media_audio_out_startup, utc_media_audio_out_cleanup},
     {"utc_media_audio_out_get_buffer_size_n", utc_media_audio_out_get_buffer_size_n, utc_media_audio_out_startup, utc_media_audio_out_cleanup},
     {"utc_media_audio_out_get_sample_rate_p", utc_media_audio_out_get_sample_rate_p, utc_media_audio_out_startup, utc_media_audio_out_cleanup},
index 856c8987bf8a6069acdec5b0fec9162e17e82ffa..8e0a33cf6a48c22c442b288cbfdb8216ad172626 100755 (executable)
@@ -31,7 +31,8 @@ extern int utc_media_audio_in_create_loopback_n(void);
 extern int utc_media_audio_in_destroy_p(void);
 extern int utc_media_audio_in_destroy_n(void);
 extern int utc_media_audio_in_read_p(void);
-extern int utc_media_audio_in_read_n(void);
+extern int utc_media_audio_in_read_n1(void);
+extern int utc_media_audio_in_read_n2(void);
 extern int utc_media_audio_in_get_buffer_size_p(void);
 extern int utc_media_audio_in_get_buffer_size_n(void);
 extern int utc_media_audio_in_get_sample_rate_p(void);
@@ -77,7 +78,8 @@ extern int utc_media_audio_out_create_n(void);
 extern int utc_media_audio_out_destroy_p(void);
 extern int utc_media_audio_out_destroy_n(void);
 extern int utc_media_audio_out_write_p(void);
-extern int utc_media_audio_out_write_n(void);
+extern int utc_media_audio_out_write_n1(void);
+extern int utc_media_audio_out_write_n2(void);
 extern int utc_media_audio_out_get_buffer_size_p(void);
 extern int utc_media_audio_out_get_buffer_size_n(void);
 extern int utc_media_audio_out_get_sample_rate_p(void);
@@ -127,7 +129,8 @@ testcase tc_array[] = {
     {"utc_media_audio_in_destroy_p", utc_media_audio_in_destroy_p, utc_media_audio_in_startup, utc_media_audio_in_cleanup},
     {"utc_media_audio_in_destroy_n", utc_media_audio_in_destroy_n, utc_media_audio_in_startup, utc_media_audio_in_cleanup},
     {"utc_media_audio_in_read_p", utc_media_audio_in_read_p, utc_media_audio_in_startup, utc_media_audio_in_cleanup},
-    {"utc_media_audio_in_read_n", utc_media_audio_in_read_n, utc_media_audio_in_startup, utc_media_audio_in_cleanup},
+    {"utc_media_audio_in_read_n1", utc_media_audio_in_read_n1, utc_media_audio_in_startup, utc_media_audio_in_cleanup},
+    {"utc_media_audio_in_read_n2", utc_media_audio_in_read_n2, utc_media_audio_in_startup, utc_media_audio_in_cleanup},
     {"utc_media_audio_in_get_buffer_size_p", utc_media_audio_in_get_buffer_size_p, utc_media_audio_in_startup, utc_media_audio_in_cleanup},
     {"utc_media_audio_in_get_buffer_size_n", utc_media_audio_in_get_buffer_size_n, utc_media_audio_in_startup, utc_media_audio_in_cleanup},
     {"utc_media_audio_in_get_sample_rate_p", utc_media_audio_in_get_sample_rate_p, utc_media_audio_in_startup, utc_media_audio_in_cleanup},
@@ -173,7 +176,8 @@ testcase tc_array[] = {
     {"utc_media_audio_out_destroy_p", utc_media_audio_out_destroy_p, utc_media_audio_out_startup, utc_media_audio_out_cleanup},
     {"utc_media_audio_out_destroy_n", utc_media_audio_out_destroy_n, utc_media_audio_out_startup, utc_media_audio_out_cleanup},
     {"utc_media_audio_out_write_p", utc_media_audio_out_write_p, utc_media_audio_out_startup, utc_media_audio_out_cleanup},
-    {"utc_media_audio_out_write_n", utc_media_audio_out_write_n, utc_media_audio_out_startup, utc_media_audio_out_cleanup},
+    {"utc_media_audio_out_write_n1", utc_media_audio_out_write_n1, utc_media_audio_out_startup, utc_media_audio_out_cleanup},
+    {"utc_media_audio_out_write_n2", utc_media_audio_out_write_n2, utc_media_audio_out_startup, utc_media_audio_out_cleanup},
     {"utc_media_audio_out_get_buffer_size_p", utc_media_audio_out_get_buffer_size_p, utc_media_audio_out_startup, utc_media_audio_out_cleanup},
     {"utc_media_audio_out_get_buffer_size_n", utc_media_audio_out_get_buffer_size_n, utc_media_audio_out_startup, utc_media_audio_out_cleanup},
     {"utc_media_audio_out_get_sample_rate_p", utc_media_audio_out_get_sample_rate_p, utc_media_audio_out_startup, utc_media_audio_out_cleanup},
index 7912b8f7bb4bb4c8a1a2addce3b2f0971700d7cb..1a2d2fc3f2fb51d484ef77ebfbc2a117b1cd7588 100755 (executable)
@@ -24,6 +24,8 @@
 #define SAMPLE_RATE_2 48100
 #define SAMPLE_RATE_3 48000
 
+#define TEST_SAMPLE_LENGTH 1024
+
 static pthread_cond_t  cond  = PTHREAD_COND_INITIALIZER;
 static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
 
@@ -284,14 +286,14 @@ int utc_media_audio_in_read_p(void)
  *                                     - Read audio input buffer using sync API.
  *                                     - Unprepare audio input.\n
  */
-int utc_media_audio_in_read_n(void)
+int utc_media_audio_in_read_n1(void)
 {
     int ret, size;
     audio_in_h input = NULL;
     char *buffer = NULL;
 
     // 1) Check sync API
-    ret = audio_in_create(SAMPLE_RATE_1, AUDIO_CHANNEL_MONO ,AUDIO_SAMPLE_TYPE_S16_LE, &input);
+    ret = audio_in_create(SAMPLE_RATE_1, AUDIO_CHANNEL_MONOAUDIO_SAMPLE_TYPE_S16_LE, &input);
     assert_eq(ret, AUDIO_IO_ERROR_NONE);
 
     ret = audio_in_prepare(input);
@@ -308,7 +310,7 @@ int utc_media_audio_in_read_n(void)
     audio_in_destroy(input);
 
     // 2) Check async API
-    ret = audio_in_create(SAMPLE_RATE_1, AUDIO_CHANNEL_MONO ,AUDIO_SAMPLE_TYPE_S16_LE, &input);
+    ret = audio_in_create(SAMPLE_RATE_1, AUDIO_CHANNEL_MONOAUDIO_SAMPLE_TYPE_S16_LE, &input);
     assert_eq(ret, AUDIO_IO_ERROR_NONE);
 
     ret = audio_in_set_stream_cb(input, audio_in_stream_cb_func_peek_drop, NULL);
@@ -335,6 +337,47 @@ int utc_media_audio_in_read_n(void)
     return 0;
 }
 
+
+/**
+ * @testcase           utc_media_audio_in_read_n2
+ * @since_tizen                2.3
+ * @description                Check whether audio_in_read return invalid operation error properly.
+ */
+int utc_media_audio_in_read_n2(void)
+{
+    int ret;
+    char buffer[TEST_SAMPLE_LENGTH];
+    audio_in_h input = NULL;
+
+    /* pre */
+    ret = audio_in_create(SAMPLE_RATE_1, AUDIO_CHANNEL_STEREO, AUDIO_SAMPLE_TYPE_S16_LE, &input);
+    assert_eq(ret, AUDIO_IO_ERROR_NONE);
+
+    /* check #1 : read before prepare */
+    ret = audio_in_read(input, (void*)buffer, TEST_SAMPLE_LENGTH);
+    assert_eq(ret, AUDIO_IO_ERROR_INVALID_OPERATION);
+
+    /* check #2 : read after pause */
+    ret = audio_in_prepare(input);
+    assert_eq(ret, AUDIO_IO_ERROR_NONE);
+    ret = audio_in_pause(input);
+    assert_eq(ret, AUDIO_IO_ERROR_NONE);
+    ret = audio_in_read(input, (void*)buffer, TEST_SAMPLE_LENGTH);
+    assert_eq(ret, AUDIO_IO_ERROR_INVALID_OPERATION);
+
+    /* check #3 : read after unprepare */
+    ret = audio_in_unprepare(input);
+    assert_eq(ret, AUDIO_IO_ERROR_NONE);
+    ret = audio_in_read(input, (void*)buffer, TEST_SAMPLE_LENGTH);
+    assert_eq(ret, AUDIO_IO_ERROR_INVALID_OPERATION);
+
+    /* cleanup */
+    ret = audio_in_destroy(input);
+    assert_eq(ret, AUDIO_IO_ERROR_NONE);
+
+    return 0;
+}
+
 /**
  * @testcase           utc_media_audio_in_get_buffer_size_p
  * @since_tizen                2.3
index 0cf0e5de5397037f0db2e86f8f5c115a763fccef..faaae4969dbf074009431ce25d1146246b57e0d8 100755 (executable)
@@ -25,6 +25,8 @@
 #define SAMPLE_RATE_2 48100
 #define SAMPLE_RATE_3 48000
 
+#define TEST_SAMPLE_LENGTH 1024
+
 static char *AUDIO_PATH = NULL;
 static char *AUDIO_FILE = "sound_5.wav";
 
@@ -323,7 +325,7 @@ int utc_media_audio_out_write_p(void)
 }
 
 /**
- * @testcase           utc_media_audio_out_write_n
+ * @testcase           utc_media_audio_out_write_n1
  * @since_tizen                2.3
  * @description                Start writing the audio data to the device.\n
  *                                     - Prepare audio output.\n
@@ -331,25 +333,65 @@ int utc_media_audio_out_write_p(void)
  *                                     - Write audio output buffer with invalid parameter.\n
  *                                     - Unprepare audio output.
  */
-int utc_media_audio_out_write_n(void)
+int utc_media_audio_out_write_n1(void)
 {
     int ret, size;
     audio_out_h output;
-    ret = audio_out_create(SAMPLE_RATE_1, AUDIO_CHANNEL_STEREO ,AUDIO_SAMPLE_TYPE_S16_LE, SOUND_TYPE_SYSTEM , &output);
-    assert_eq(ret, AUDIO_IO_ERROR_NONE);
 
+    ret = audio_out_create(SAMPLE_RATE_1, AUDIO_CHANNEL_STEREO, AUDIO_SAMPLE_TYPE_S16_LE, SOUND_TYPE_SYSTEM, &output);
+    assert_eq(ret, AUDIO_IO_ERROR_NONE);
     ret = audio_out_prepare(output);
     assert_eq(ret, AUDIO_IO_ERROR_NONE);
-
     ret = audio_out_get_buffer_size(output, &size);
     assert_eq(ret, AUDIO_IO_ERROR_NONE);
 
     ret = audio_out_write(output, NULL, 0);
+    assert_eq(ret, AUDIO_IO_ERROR_INVALID_PARAMETER);
 
-    audio_out_unprepare(output);
-    audio_out_destroy(output);
+    ret = audio_out_unprepare(output);
+    assert_eq(ret, AUDIO_IO_ERROR_NONE);
+    ret = audio_out_destroy(output);
+    assert_eq(ret, AUDIO_IO_ERROR_NONE);
 
-    assert_eq(ret, AUDIO_IO_ERROR_INVALID_PARAMETER);
+    return 0;
+}
+
+/**
+ * @testcase           utc_media_audio_out_write_n2
+ * @since_tizen                2.3
+ * @description                Check whether audio_out_write return invalid operation error properly.
+ */
+int utc_media_audio_out_write_n2(void)
+{
+    int ret, size;
+    audio_out_h output;
+    char buffer[TEST_SAMPLE_LENGTH];
+
+    /* pre */
+    ret = audio_out_create(SAMPLE_RATE_1, AUDIO_CHANNEL_STEREO, AUDIO_SAMPLE_TYPE_S16_LE, SOUND_TYPE_SYSTEM, &output);
+    assert_eq(ret, AUDIO_IO_ERROR_NONE);
+
+    /* check #1 : write before prepare */
+    ret = audio_out_write(output, buffer, TEST_SAMPLE_LENGTH);
+    assert_eq(ret, AUDIO_IO_ERROR_INVALID_OPERATION);
+
+    /* check #2 : write after pause */
+    ret = audio_out_prepare(output);
+    assert_eq(ret, AUDIO_IO_ERROR_NONE);
+    ret = audio_out_pause(output);
+    assert_eq(ret, AUDIO_IO_ERROR_NONE);
+    ret = audio_out_write(output, buffer, TEST_SAMPLE_LENGTH);
+    assert_eq(ret, AUDIO_IO_ERROR_INVALID_OPERATION);
+
+    /* check #3 : write after unprepare */
+    ret = audio_out_unprepare(output);
+    assert_eq(ret, AUDIO_IO_ERROR_NONE);
+    ret = audio_out_write(output, buffer, TEST_SAMPLE_LENGTH);
+    assert_eq(ret, AUDIO_IO_ERROR_INVALID_OPERATION);
+
+    /* cleanup */
+    ret = audio_out_destroy(output);
+    assert_eq(ret, AUDIO_IO_ERROR_NONE);
 
     return 0;
 }