Correct some leaks in unit tests.
authorCorey Farrell <git@cfware.com>
Fri, 4 Aug 2017 01:58:25 +0000 (21:58 -0400)
committerCorey Farrell <git@cfware.com>
Fri, 4 Aug 2017 02:09:28 +0000 (22:09 -0400)
* chan_sip: channel in test_sip_rtpqos_1.
* test_config: config hook, config info and global config holder.
* test_core_format: format in format_attribute_set_without_interface.
* test_stream: unneeded frame duplication.
* test_taskprocessor: task_data.

Change-Id: I94d364d195cf3b3b5de2bf3ad565343275c7ad31

channels/sip/dialplan_functions.c
tests/test_config.c
tests/test_core_format.c
tests/test_stream.c
tests/test_taskprocessor.c

index e21bb2c..59e841d 100644 (file)
@@ -484,6 +484,9 @@ done:
                dialog_unlink_all(p);
                dialog_unref(p, "Destroy test object");
        }
+       if (chan) {
+               ast_channel_unref(chan);
+       }
        ast_rtp_engine_unregister(&test_engine);
        return res;
 }
index d737108..8675cb8 100644 (file)
@@ -1038,6 +1038,7 @@ AST_TEST_DEFINE(config_hook)
        res = AST_TEST_PASS;
 
 out:
+       ast_config_hook_unregister("test_hook");
        delete_config_file();
        return res;
 }
@@ -1675,6 +1676,8 @@ AST_TEST_DEFINE(config_options_test)
        configs.codeccapopt = NULL;
        ast_string_field_free_memory(&defaults);
        ast_string_field_free_memory(&configs);
+       aco_info_destroy(&cfg_info);
+       ao2_global_obj_release(global_obj);
        return res;
 }
 
index a697f8e..164dff8 100644 (file)
@@ -858,6 +858,7 @@ AST_TEST_DEFINE(format_attribute_set_without_interface)
 {
        RAII_VAR(struct ast_codec *, codec, NULL, ao2_cleanup);
        RAII_VAR(struct ast_format *, format, NULL, ao2_cleanup);
+       struct ast_format *attr_set;
 
        switch (cmd) {
        case TEST_INIT:
@@ -883,10 +884,12 @@ AST_TEST_DEFINE(format_attribute_set_without_interface)
                return AST_TEST_FAIL;
        }
 
-       if (!ast_format_attribute_set(format, "bees", "cool")) {
+       attr_set = ast_format_attribute_set(format, "bees", "cool");
+       if (!attr_set) {
                ast_test_status_update(test, "Successfully set an attribute on a format without an interface\n");
                return AST_TEST_FAIL;
        }
+       ao2_cleanup(attr_set);
 
        return AST_TEST_PASS;
 }
index fdb9885..28983e0 100644 (file)
@@ -1522,7 +1522,7 @@ static int load_stream_readqueue(struct ast_channel *chan, int frames)
                }
                f.stream_num = pvt->frame_count % pvt->streams;
                f.seqno = pvt->frame_count;
-               ast_queue_frame(chan, ast_frdup(&f));
+               ast_queue_frame(chan, &f);
                pvt->frame_count++;
        }
 
index be48f92..ad2074c 100644 (file)
@@ -677,7 +677,7 @@ AST_TEST_DEFINE(taskprocessor_push_local)
 {
        RAII_VAR(struct ast_taskprocessor *, tps, NULL,
                ast_taskprocessor_unreference);
-       struct task_data *task_data;
+       RAII_VAR(struct task_data *, task_data, NULL, ao2_cleanup);
        int local_data;
        int res;