summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorJenkins2 <jenkins2@gerrit.asterisk.org>2017-06-16 11:51:41 -0500
committerGerrit Code Review <gerrit2@gerrit.digium.api>2017-06-16 11:51:41 -0500
commitd81293a5ddd545c8b2b3683306a17af91e41c102 (patch)
tree8a07ef3f636fcce9f49f46477091ee7e36400643 /tests
parent2f684eb6a5db2b84145fd539f4112f59dffc4b43 (diff)
parenta95584d07999035de85da3a84a422bb3c6475122 (diff)
Merge changes from topic 'sdp_api_adjustments'
* changes: SDP: Set the remote c= line in RTP instance. SDP: Add t= line in sdp_create_from_state() stream: Ignore declined streams for some topology calls.
Diffstat (limited to 'tests')
-rw-r--r--tests/test_stream.c85
1 files changed, 76 insertions, 9 deletions
diff --git a/tests/test_stream.c b/tests/test_stream.c
index cf3d2e365..fdb988584 100644
--- a/tests/test_stream.c
+++ b/tests/test_stream.c
@@ -755,7 +755,12 @@ AST_TEST_DEFINE(stream_topology_create_from_format_cap)
AST_TEST_DEFINE(stream_topology_get_first_stream_by_type)
{
RAII_VAR(struct ast_stream_topology *, topology, NULL, ast_stream_topology_free);
- struct ast_stream *first_stream, *second_stream, *third_stream, *fourth_stream;
+ struct ast_stream *first_stream;
+ struct ast_stream *second_stream;
+ struct ast_stream *third_stream;
+ struct ast_stream *fourth_stream;
+ struct ast_stream *fifth_stream;
+ struct ast_stream *sixth_stream;
switch (cmd) {
case TEST_INIT:
@@ -780,6 +785,7 @@ AST_TEST_DEFINE(stream_topology_get_first_stream_by_type)
ast_test_status_update(test, "Failed to create an audio stream for testing stream topology\n");
return AST_TEST_FAIL;
}
+ ast_stream_set_state(first_stream, AST_STREAM_STATE_REMOVED);
if (ast_stream_topology_append_stream(topology, first_stream) == -1) {
ast_test_status_update(test, "Failed to append a perfectly good stream to a topology\n");
@@ -799,9 +805,9 @@ AST_TEST_DEFINE(stream_topology_get_first_stream_by_type)
return AST_TEST_FAIL;
}
- third_stream = ast_stream_alloc("video", AST_MEDIA_TYPE_VIDEO);
+ third_stream = ast_stream_alloc("audio3", AST_MEDIA_TYPE_AUDIO);
if (!third_stream) {
- ast_test_status_update(test, "Failed to create a video stream for testing stream topology\n");
+ ast_test_status_update(test, "Failed to create a third audio stream for testing stream topology\n");
return AST_TEST_FAIL;
}
@@ -811,11 +817,12 @@ AST_TEST_DEFINE(stream_topology_get_first_stream_by_type)
return AST_TEST_FAIL;
}
- fourth_stream = ast_stream_alloc("video2", AST_MEDIA_TYPE_VIDEO);
+ fourth_stream = ast_stream_alloc("video", AST_MEDIA_TYPE_VIDEO);
if (!fourth_stream) {
- ast_test_status_update(test, "Failed to create a second video stream for testing stream topology\n");
+ ast_test_status_update(test, "Failed to create a video stream for testing stream topology\n");
return AST_TEST_FAIL;
}
+ ast_stream_set_state(fourth_stream, AST_STREAM_STATE_REMOVED);
if (ast_stream_topology_append_stream(topology, fourth_stream) == -1) {
ast_test_status_update(test, "Failed to append a perfectly good stream to a topology\n");
@@ -823,12 +830,36 @@ AST_TEST_DEFINE(stream_topology_get_first_stream_by_type)
return AST_TEST_FAIL;
}
- if (ast_stream_topology_get_first_stream_by_type(topology, AST_MEDIA_TYPE_AUDIO) != first_stream) {
+ fifth_stream = ast_stream_alloc("video2", AST_MEDIA_TYPE_VIDEO);
+ if (!fifth_stream) {
+ ast_test_status_update(test, "Failed to create a second video stream for testing stream topology\n");
+ return AST_TEST_FAIL;
+ }
+
+ if (ast_stream_topology_append_stream(topology, fifth_stream) == -1) {
+ ast_test_status_update(test, "Failed to append a perfectly good stream to a topology\n");
+ ast_stream_free(fifth_stream);
+ return AST_TEST_FAIL;
+ }
+
+ sixth_stream = ast_stream_alloc("video3", AST_MEDIA_TYPE_VIDEO);
+ if (!sixth_stream) {
+ ast_test_status_update(test, "Failed to create a third video stream for testing stream topology\n");
+ return AST_TEST_FAIL;
+ }
+
+ if (ast_stream_topology_append_stream(topology, sixth_stream) == -1) {
+ ast_test_status_update(test, "Failed to append a perfectly good stream to a topology\n");
+ ast_stream_free(sixth_stream);
+ return AST_TEST_FAIL;
+ }
+
+ if (ast_stream_topology_get_first_stream_by_type(topology, AST_MEDIA_TYPE_AUDIO) != second_stream) {
ast_test_status_update(test, "Retrieved first audio stream from topology but it is not the correct one\n");
return AST_TEST_FAIL;
}
- if (ast_stream_topology_get_first_stream_by_type(topology, AST_MEDIA_TYPE_VIDEO) != third_stream) {
+ if (ast_stream_topology_get_first_stream_by_type(topology, AST_MEDIA_TYPE_VIDEO) != fifth_stream) {
ast_test_status_update(test, "Retrieved first video stream from topology but it is not the correct one\n");
return AST_TEST_FAIL;
}
@@ -1918,6 +1949,8 @@ AST_TEST_DEFINE(format_cap_from_stream_topology)
RAII_VAR(struct ast_format_cap *, caps, NULL, ao2_cleanup);
RAII_VAR(struct ast_format_cap *, stream_caps, NULL, ao2_cleanup);
struct ast_stream_topology *topology;
+ struct ast_stream *stream;
+ struct ast_format_cap *new_cap;
switch (cmd) {
case TEST_INIT:
@@ -1938,12 +1971,12 @@ AST_TEST_DEFINE(format_cap_from_stream_topology)
}
if (ast_format_cap_append(caps, ast_format_ulaw, 0)) {
- ast_test_status_update(test, "Failed to append a ulaw format to capabilities for channel nativeformats\n");
+ ast_test_status_update(test, "Failed to append ulaw format to capabilities\n");
return AST_TEST_FAIL;
}
if (ast_format_cap_append(caps, ast_format_h264, 0)) {
- ast_test_status_update(test, "Failed to append an h264 format to capabilities for channel nativeformats\n");
+ ast_test_status_update(test, "Failed to append h264 format to capabilities\n");
return AST_TEST_FAIL;
}
@@ -1953,6 +1986,40 @@ AST_TEST_DEFINE(format_cap_from_stream_topology)
return AST_TEST_FAIL;
}
+ /*
+ * Append declined stream with formats that should not be included
+ * in combined topology caps.
+ */
+ stream = ast_stream_alloc("audio", AST_MEDIA_TYPE_AUDIO);
+ if (!stream) {
+ ast_test_status_update(test, "Failed to create an audio stream for testing stream topology\n");
+ ast_stream_topology_free(topology);
+ return AST_TEST_FAIL;
+ }
+ ast_stream_set_state(stream, AST_STREAM_STATE_REMOVED);
+ new_cap = ast_format_cap_alloc(AST_FORMAT_CAP_FLAG_DEFAULT);
+ if (!new_cap) {
+ ast_test_status_update(test, "Could not allocate an empty format capabilities structure\n");
+ ast_stream_free(stream);
+ ast_stream_topology_free(topology);
+ return AST_TEST_FAIL;
+ }
+ if (ast_format_cap_append(new_cap, ast_format_alaw, 0)) {
+ ast_test_status_update(test, "Failed to append alaw format to capabilities\n");
+ ao2_cleanup(new_cap);
+ ast_stream_free(stream);
+ ast_stream_topology_free(topology);
+ return AST_TEST_FAIL;
+ }
+ ast_stream_set_formats(stream, new_cap);
+ ao2_cleanup(new_cap);
+ if (ast_stream_topology_append_stream(topology, stream) == -1) {
+ ast_test_status_update(test, "Failed to append a perfectly good stream to a topology\n");
+ ast_stream_free(stream);
+ ast_stream_topology_free(topology);
+ return AST_TEST_FAIL;
+ }
+
stream_caps = ast_format_cap_from_stream_topology(topology);
if (!stream_caps) {
ast_test_status_update(test, "Failed to create a format capabilities from a stream topology\n");