47 info->name =
"format_cap_alloc";
48 info->category =
"/main/format_cap/";
49 info->summary =
"format capabilities allocation unit test";
51 "Test that allocation of a format capabilities structure succeeds";
52 return AST_TEST_NOT_RUN;
59 ast_test_status_update(
test,
"Could not allocate an empty format capabilities structure\n");
76 info->name = __PRETTY_FUNCTION__;
77 info->category =
"/main/format_cap/";
78 info->summary =
"format capabilities adding unit test";
80 "Test that adding a single format to a format capabilities structure succeeds";
81 return AST_TEST_NOT_RUN;
88 ast_test_status_update(
test,
"Could not allocate an empty format capabilities structure\n");
94 ast_test_status_update(
test,
"Could not retrieve built-in ulaw codec\n");
100 ast_test_status_update(
test,
"Could not create format using built-in codec\n");
101 return AST_TEST_FAIL;
105 ast_test_status_update(
test,
"Could not add newly created format to capabilities structure\n");
106 return AST_TEST_FAIL;
108 ast_test_status_update(
test,
"Number of formats in capabilities structure should be 1 but is %zu\n",
110 return AST_TEST_FAIL;
115 ast_test_status_update(
test,
"Attempted to get single format from capabilities structure but got nothing\n");
116 return AST_TEST_FAIL;
117 }
else if (retrieved != format) {
118 ast_test_status_update(
test,
"Retrieved format is not the same as the one we added\n");
119 return AST_TEST_FAIL;
121 ast_test_status_update(
test,
"Framing for format in capabilities structure does not match what we provided\n");
122 return AST_TEST_FAIL;
125 return AST_TEST_PASS;
139 info->name = __PRETTY_FUNCTION__;
140 info->category =
"/main/format_cap/";
141 info->summary =
"format capabilities adding unit test";
143 "Test that adding multiple formats to a format capabilities structure succeeds";
144 return AST_TEST_NOT_RUN;
151 ast_test_status_update(
test,
"Could not allocate an empty format capabilities structure\n");
152 return AST_TEST_FAIL;
157 ast_test_status_update(
test,
"Could not retrieve built-in ulaw codec\n");
158 return AST_TEST_FAIL;
163 ast_test_status_update(
test,
"Could not create ulaw format using built-in codec\n");
164 return AST_TEST_FAIL;
169 ast_test_status_update(
test,
"Could not retrieve built-in alaw codec\n");
170 return AST_TEST_FAIL;
175 ast_test_status_update(
test,
"Could not create alaw format using built-in codec\n");
176 return AST_TEST_FAIL;
180 ast_test_status_update(
test,
"Could not add newly created ulaw format to capabilities structure\n");
181 return AST_TEST_FAIL;
183 ast_test_status_update(
test,
"Could not add newly created alaw format to capabilities structure\n");
184 return AST_TEST_FAIL;
186 ast_test_status_update(
test,
"Number of formats in capabilities structure should be 2 but is %zu\n",
188 return AST_TEST_FAIL;
193 ast_test_status_update(
test,
"Attempted to get first format from capabilities structure but got nothing\n");
194 return AST_TEST_FAIL;
195 }
else if (retrieved != ulaw_format) {
196 ast_test_status_update(
test,
"First retrieved format is not the ulaw one we added\n");
197 return AST_TEST_FAIL;
199 ast_test_status_update(
test,
"Framing for ulaw format in capabilities structure does not match what we provided\n");
205 ast_test_status_update(
test,
"Attempted to get second format from capabilities structure but got nothing\n");
206 return AST_TEST_FAIL;
207 }
else if (retrieved != alaw_format) {
208 ast_test_status_update(
test,
"First retrieved format is not the alaw one we added\n");
209 return AST_TEST_FAIL;
211 ast_test_status_update(
test,
"Framing for alaw format in capabilities structure does not match what we provided\n");
214 return AST_TEST_PASS;
223 info->name = __PRETTY_FUNCTION__;
224 info->category =
"/main/format_cap/";
225 info->summary =
"format capabilities adding unit test";
227 "Test that adding of all formats to a format capabilities structure succeeds";
228 return AST_TEST_NOT_RUN;
235 ast_test_status_update(
test,
"Could not allocate an empty format capabilities structure\n");
236 return AST_TEST_FAIL;
238 ast_test_status_update(
test,
"Failed to add all media formats of all types to capabilities structure\n");
239 return AST_TEST_FAIL;
241 ast_test_status_update(
test,
"Added all media formats but no audio formats exist when they should\n");
242 return AST_TEST_FAIL;
244 ast_test_status_update(
test,
"Added all media formats but no video formats exist when they should\n");
245 return AST_TEST_FAIL;
247 ast_test_status_update(
test,
"The number of formats in the capabilities structure does not match known number\n");
248 return AST_TEST_FAIL;
251 return AST_TEST_PASS;
260 info->name = __PRETTY_FUNCTION__;
261 info->category =
"/main/format_cap/";
262 info->summary =
"format capabilities adding unit test";
264 "Test that adding of all audio formats to a format capabilities structure succeeds";
265 return AST_TEST_NOT_RUN;
272 ast_test_status_update(
test,
"Could not allocate an empty format capabilities structure\n");
273 return AST_TEST_FAIL;
275 ast_test_status_update(
test,
"Failed to add all audio media formats to capabilities structure\n");
276 return AST_TEST_FAIL;
278 ast_test_status_update(
test,
"Added audio media formats but no audio formats exist when they should\n");
279 return AST_TEST_FAIL;
281 ast_test_status_update(
test,
"Added only audio media formats but video formats exist when they should not\n");
282 return AST_TEST_FAIL;
284 ast_test_status_update(
test,
"Added only audio media formats but text formats exist when they should not\n");
285 return AST_TEST_FAIL;
287 ast_test_status_update(
test,
"Added only audio media formats but image formats exist when they should not\n");
288 return AST_TEST_FAIL;
291 return AST_TEST_PASS;
304 info->name = __PRETTY_FUNCTION__;
305 info->category =
"/main/format_cap/";
306 info->summary =
"format capabilities duplication unit test";
308 "Test that adding a single format multiple times to a capabilities structure results in only a single format";
309 return AST_TEST_NOT_RUN;
316 ast_test_status_update(
test,
"Could not allocate an empty format capabilities structure\n");
317 return AST_TEST_FAIL;
322 ast_test_status_update(
test,
"Could not retrieve built-in ulaw codec\n");
323 return AST_TEST_FAIL;
328 ast_test_status_update(
test,
"Could not create format using built-in codec\n");
329 return AST_TEST_FAIL;
334 ast_test_status_update(
test,
"Could not create named format using built-in codec\n");
335 return AST_TEST_FAIL;
339 ast_test_status_update(
test,
"Could not add newly created format to capabilities structure\n");
340 return AST_TEST_FAIL;
342 ast_test_status_update(
test,
"Number of formats in capabilities structure should be 1 but is %zu\n",
344 return AST_TEST_FAIL;
349 ast_test_status_update(
test,
"Adding of duplicate format to capabilities structure failed\n");
350 return AST_TEST_FAIL;
352 ast_test_status_update(
test,
"Number of formats in capabilities structure should be 1 but is %zu\n",
354 return AST_TEST_FAIL;
358 ast_test_status_update(
test,
"Adding of duplicate named format to capabilities structure failed\n");
359 return AST_TEST_FAIL;
361 ast_test_status_update(
test,
"Number of formats in capabilities structure should be 1 but is %zu\n",
363 return AST_TEST_FAIL;
368 ast_test_status_update(
test,
"Attempted to get single format from capabilities structure but got nothing\n");
369 return AST_TEST_FAIL;
370 }
else if (retrieved != format) {
371 ast_test_status_update(
test,
"Retrieved format is not the same as the one we added\n");
372 return AST_TEST_FAIL;
374 ast_test_status_update(
test,
"Framing for format in capabilities structure does not match what we provided\n");
375 return AST_TEST_FAIL;
378 return AST_TEST_PASS;
388 info->name = __PRETTY_FUNCTION__;
389 info->category =
"/main/format_cap/";
390 info->summary =
"format capabilities append unit test";
392 "Test that appending video formats from one capabilities structure to another succeeds";
393 return AST_TEST_NOT_RUN;
400 ast_test_status_update(
test,
"Could not allocate an empty format capabilities structure\n");
401 return AST_TEST_FAIL;
403 ast_test_status_update(
test,
"Failed to add all audio media formats to capabilities structure\n");
404 return AST_TEST_FAIL;
409 ast_test_status_update(
test,
"Could not allocate an empty format capabilities structure\n");
410 return AST_TEST_FAIL;
412 ast_test_status_update(
test,
"Failed to add all video media formats to capabilities structure\n");
413 return AST_TEST_FAIL;
417 ast_test_status_update(
test,
"Failed to append formats to capabilities structure\n");
418 return AST_TEST_FAIL;
420 ast_test_status_update(
test,
"Successfully appended video formats to destination capabilities but it no longer contains audio formats\n");
421 return AST_TEST_FAIL;
423 ast_test_status_update(
test,
"Successfully appended formats but video formats do not exist in destination capabilities\n");
424 return AST_TEST_FAIL;
427 return AST_TEST_PASS;
435 unsigned int total_count;
439 info->name = __PRETTY_FUNCTION__;
440 info->category =
"/main/format_cap/";
441 info->summary =
"format capabilities append duplicate unit test";
443 "Test that appending capabilities structures multiple times does not result in duplicate formats";
444 return AST_TEST_NOT_RUN;
451 ast_test_status_update(
test,
"Could not allocate an empty format capabilities structure\n");
452 return AST_TEST_FAIL;
454 ast_test_status_update(
test,
"Failed to add all audio media formats to capabilities structure\n");
455 return AST_TEST_FAIL;
460 ast_test_status_update(
test,
"Could not allocate an empty format capabilities structure\n");
461 return AST_TEST_FAIL;
463 ast_test_status_update(
test,
"Failed to add all video media formats to capabilities structure\n");
464 return AST_TEST_FAIL;
470 ast_test_status_update(
test,
"Failed to append formats to capabilities structure\n");
471 return AST_TEST_FAIL;
473 ast_test_status_update(
test,
"Successfully appended video formats to destination capabilities but it no longer contains audio formats\n");
474 return AST_TEST_FAIL;
476 ast_test_status_update(
test,
"Successfully appended formats but video formats do not exist in destination capabilities\n");
477 return AST_TEST_FAIL;
483 ast_test_status_update(
test,
"Failed to append duplicate formats to capabilities structure\n");
484 return AST_TEST_FAIL;
488 ast_test_validate(
test, count == total_count);
490 return AST_TEST_PASS;
503 info->name =
"format_cap_set_framing";
504 info->category =
"/main/format_cap/";
505 info->summary =
"format capabilities framing unit test";
507 "Test that global framing on a format capabilities structure is used when it should be";
508 return AST_TEST_NOT_RUN;
515 ast_test_status_update(
test,
"Could not allocate an empty format capabilities structure\n");
516 return AST_TEST_FAIL;
525 ast_test_status_update(
test,
"Could not retrieve built-in ulaw codec\n");
526 return AST_TEST_FAIL;
531 ast_test_status_update(
test,
"Could not create ulaw format using built-in codec\n");
532 return AST_TEST_FAIL;
537 ast_test_status_update(
test,
"Could not retrieve built-in alaw codec\n");
538 return AST_TEST_FAIL;
543 ast_test_status_update(
test,
"Could not create alaw format using built-in codec\n");
544 return AST_TEST_FAIL;
548 ast_test_status_update(
test,
"Could not add newly created ulaw format to capabilities structure\n");
549 return AST_TEST_FAIL;
551 ast_test_status_update(
test,
"Could not add newly created alaw format to capabilities structure\n");
552 return AST_TEST_FAIL;
556 ast_test_status_update(
test,
"Added ulaw format to capabilities structure with explicit framing but did not get it back\n");
557 return AST_TEST_FAIL;
559 ast_test_status_update(
test,
"Added alaw format to capabilities structure with no explicit framing but did not get global back\n");
560 return AST_TEST_FAIL;
564 return AST_TEST_PASS;
575 info->name =
"format_cap_remove_single";
576 info->category =
"/main/format_cap/";
577 info->summary =
"format capabilities removal unit test";
579 "Test that removing a single format from a format capabilities structure succeeds";
580 return AST_TEST_NOT_RUN;
587 ast_test_status_update(
test,
"Could not allocate an empty format capabilities structure\n");
588 return AST_TEST_FAIL;
593 ast_test_status_update(
test,
"Could not retrieve built-in ulaw codec\n");
594 return AST_TEST_FAIL;
599 ast_test_status_update(
test,
"Could not create format using built-in codec\n");
600 return AST_TEST_FAIL;
604 ast_test_status_update(
test,
"Could not add newly created format to capabilities structure\n");
605 return AST_TEST_FAIL;
607 ast_test_status_update(
test,
"Could not remove format that was just added to capabilities structure\n");
608 return AST_TEST_FAIL;
610 ast_test_status_update(
test,
"Successfully removed a format twice from the capabilities structure\n");
611 return AST_TEST_FAIL;
613 ast_test_status_update(
test,
"Capabilities structure should be empty but instead it contains '%zu' formats\n",
615 return AST_TEST_FAIL;
618 return AST_TEST_PASS;
632 info->name =
"format_cap_remove_multiple";
633 info->category =
"/main/format_cap/";
634 info->summary =
"format capabilities removal unit test";
636 "Test that removing a format from a format capabilities structure containing multiple formats succeeds";
637 return AST_TEST_NOT_RUN;
644 ast_test_status_update(
test,
"Could not allocate an empty format capabilities structure\n");
645 return AST_TEST_FAIL;
650 ast_test_status_update(
test,
"Could not retrieve built-in ulaw codec\n");
651 return AST_TEST_FAIL;
656 ast_test_status_update(
test,
"Could not create ulaw format using built-in codec\n");
657 return AST_TEST_FAIL;
662 ast_test_status_update(
test,
"Could not retrieve built-in alaw codec\n");
663 return AST_TEST_FAIL;
668 ast_test_status_update(
test,
"Could not create alaw format using built-in codec\n");
669 return AST_TEST_FAIL;
673 ast_test_status_update(
test,
"Could not add newly created ulaw format to capabilities structure\n");
674 return AST_TEST_FAIL;
676 ast_test_status_update(
test,
"Could not add newly created alaw format to capabilities structure\n");
677 return AST_TEST_FAIL;
679 ast_test_status_update(
test,
"Could not remove the ulaw format we just added to capabilities structure\n");
680 return AST_TEST_FAIL;
682 ast_test_status_update(
test,
"Capabilities structure should contain 1 format but it contains '%zu'\n",
684 return AST_TEST_FAIL;
689 ast_test_status_update(
test,
"Attempted to get first format from capabilities structure but got nothing\n");
690 return AST_TEST_FAIL;
691 }
else if (retrieved != alaw_format) {
692 ast_test_status_update(
test,
"First retrieved format is not the alaw one we added\n");
693 return AST_TEST_FAIL;
696 return AST_TEST_PASS;
705 info->name =
"format_cap_remove_bytype";
706 info->category =
"/main/format_cap/";
707 info->summary =
"format capabilities removal unit test";
709 "Test that removal of a specific type of format from a format capabilities structure succeeds";
710 return AST_TEST_NOT_RUN;
717 ast_test_status_update(
test,
"Could not allocate an empty format capabilities structure\n");
718 return AST_TEST_FAIL;
720 ast_test_status_update(
test,
"Failed to add all media formats of all types to capabilities structure\n");
721 return AST_TEST_FAIL;
726 ast_test_status_update(
test,
"Removed all audio type formats from capabilities structure but some remain\n");
727 return AST_TEST_FAIL;
729 ast_test_status_update(
test,
"Removed audio type formats from capabilities structure but video are gone as well\n");
730 return AST_TEST_FAIL;
733 return AST_TEST_PASS;
742 info->name =
"format_cap_remove_all";
743 info->category =
"/main/format_cap/";
744 info->summary =
"format capabilities removal unit test";
746 "Test that removal of all formats from a format capabilities structure succeeds";
747 return AST_TEST_NOT_RUN;
754 ast_test_status_update(
test,
"Could not allocate an empty format capabilities structure\n");
755 return AST_TEST_FAIL;
757 ast_test_status_update(
test,
"Failed to add all media formats of all types to capabilities structure\n");
758 return AST_TEST_FAIL;
764 ast_test_status_update(
test,
"Removed all formats from capabilities structure but some remain\n");
765 return AST_TEST_FAIL;
768 return AST_TEST_PASS;
782 info->name =
"format_cap_get_compatible_format";
783 info->category =
"/main/format_cap/";
784 info->summary =
"format capabilities negotiation unit test";
786 "Test that getting a compatible format from a capabilities structure succeeds";
787 return AST_TEST_NOT_RUN;
794 ast_test_status_update(
test,
"Could not allocate an empty format capabilities structure\n");
795 return AST_TEST_FAIL;
800 ast_test_status_update(
test,
"Could not retrieve built-in ulaw codec\n");
801 return AST_TEST_FAIL;
806 ast_test_status_update(
test,
"Could not create ulaw format using built-in codec\n");
807 return AST_TEST_FAIL;
812 ast_test_status_update(
test,
"Could not retrieve built-in alaw codec\n");
813 return AST_TEST_FAIL;
818 ast_test_status_update(
test,
"Could not create alaw format using built-in codec\n");
819 return AST_TEST_FAIL;
823 ast_test_status_update(
test,
"Could not add newly created ulaw format to capabilities structure\n");
824 return AST_TEST_FAIL;
829 ast_test_status_update(
test,
"Retrieved a compatible format from capabilities structure when none should exist\n");
830 return AST_TEST_FAIL;
835 ast_test_status_update(
test,
"Did not retrieve a compatible format from capabilities structure when there should be one\n");
836 return AST_TEST_FAIL;
837 }
else if (compatible != ulaw_format) {
838 ast_test_status_update(
test,
"Compatible format is not the format we added to the capabilities structure\n");
839 return AST_TEST_FAIL;
842 return AST_TEST_PASS;
855 info->name =
"format_cap_iscompatible_format";
856 info->category =
"/main/format_cap/";
857 info->summary =
"format capabilities negotiation unit test";
859 "Test that checking whether a format is compatible with a capabilities structure succeeds";
860 return AST_TEST_NOT_RUN;
867 ast_test_status_update(
test,
"Could not allocate an empty format capabilities structure\n");
868 return AST_TEST_FAIL;
873 ast_test_status_update(
test,
"Could not retrieve built-in ulaw codec\n");
874 return AST_TEST_FAIL;
879 ast_test_status_update(
test,
"Could not create ulaw format using built-in codec\n");
880 return AST_TEST_FAIL;
885 ast_test_status_update(
test,
"Could not retrieve built-in alaw codec\n");
886 return AST_TEST_FAIL;
891 ast_test_status_update(
test,
"Could not create alaw format using built-in codec\n");
892 return AST_TEST_FAIL;
896 ast_test_status_update(
test,
"Could not add newly created ulaw format to capabilities structure\n");
897 return AST_TEST_FAIL;
899 ast_test_status_update(
test,
"Alaw format is compatible with capabilities structure when it only contains ulaw\n");
900 return AST_TEST_FAIL;
902 ast_test_status_update(
test,
"Ulaw format is not compatible with capabilities structure when it should be\n");
903 return AST_TEST_FAIL;
906 return AST_TEST_PASS;
921 info->name =
"format_cap_get_compatible";
922 info->category =
"/main/format_cap/";
923 info->summary =
"format capabilities negotiation unit test";
925 "Test that getting the compatible formats between two capabilities structures succeeds";
926 return AST_TEST_NOT_RUN;
933 ast_test_status_update(
test,
"Could not allocate an empty format capabilities structure\n");
934 return AST_TEST_FAIL;
939 ast_test_status_update(
test,
"Could not allocate an empty format capabilities structure\n");
940 return AST_TEST_FAIL;
944 if (!compatible_caps) {
945 ast_test_status_update(
test,
"Could not allocate an empty format capabilities structure\n");
946 return AST_TEST_FAIL;
951 ast_test_status_update(
test,
"Could not retrieve built-in ulaw codec\n");
952 return AST_TEST_FAIL;
957 ast_test_status_update(
test,
"Could not create ulaw format using built-in codec\n");
958 return AST_TEST_FAIL;
963 ast_test_status_update(
test,
"Could not retrieve built-in alaw codec\n");
964 return AST_TEST_FAIL;
969 ast_test_status_update(
test,
"Could not create alaw format using built-in codec\n");
970 return AST_TEST_FAIL;
974 ast_test_status_update(
test,
"Could not add ulaw format to ulaw capabilities\n");
975 return AST_TEST_FAIL;
977 ast_test_status_update(
test,
"Could not add alaw format to alaw capabilities\n");
978 return AST_TEST_FAIL;
983 ast_test_status_update(
test,
"A compatible format exists when none should\n");
984 return AST_TEST_FAIL;
989 ast_test_status_update(
test,
"No compatible formats exist when 1 should\n");
990 return AST_TEST_FAIL;
993 return AST_TEST_PASS;
1007 info->name =
"format_cap_iscompatible";
1008 info->category =
"/main/format_cap/";
1009 info->summary =
"format capabilities negotiation unit test";
1011 "Test that checking if there are compatible formats between two capabilities structures succeeds";
1012 return AST_TEST_NOT_RUN;
1019 ast_test_status_update(
test,
"Could not allocate an empty format capabilities structure\n");
1020 return AST_TEST_FAIL;
1025 ast_test_status_update(
test,
"Could not allocate an empty format capabilities structure\n");
1026 return AST_TEST_FAIL;
1031 ast_test_status_update(
test,
"Could not retrieve built-in ulaw codec\n");
1032 return AST_TEST_FAIL;
1037 ast_test_status_update(
test,
"Could not create ulaw format using built-in codec\n");
1038 return AST_TEST_FAIL;
1043 ast_test_status_update(
test,
"Could not retrieve built-in alaw codec\n");
1044 return AST_TEST_FAIL;
1049 ast_test_status_update(
test,
"Could not create alaw format using built-in codec\n");
1050 return AST_TEST_FAIL;
1054 ast_test_status_update(
test,
"Could not add ulaw format to ulaw capabilities\n");
1055 return AST_TEST_FAIL;
1057 ast_test_status_update(
test,
"Could not add alaw format to alaw capabilities\n");
1058 return AST_TEST_FAIL;
1060 ast_test_status_update(
test,
"Two capability structures that should not be compatible are\n");
1061 return AST_TEST_FAIL;
1063 ast_test_status_update(
test,
"Capability structure is not compatible with itself\n");
1064 return AST_TEST_FAIL;
1067 return AST_TEST_PASS;
1084 info->name =
"format_cap_get_names";
1085 info->category =
"/main/format_cap/";
1086 info->summary =
"Test getting the names of formats";
1088 "Test that obtaining the names from a format capabilities structure\n"
1089 "produces the expected output.";
1090 return AST_TEST_NOT_RUN;
1097 ast_test_status_update(
test,
"Could not allocate an empty format capabilities structure\n");
1098 return AST_TEST_FAIL;
1103 ast_test_status_update(
test,
"Could not allocate an empty format capabilities structure\n");
1104 return AST_TEST_FAIL;
1109 ast_test_status_update(
test,
"Could not allocate an empty format capabilities structure\n");
1110 return AST_TEST_FAIL;
1115 ast_test_status_update(
test,
"Could not allocate an empty format capabilities structure\n");
1116 return AST_TEST_FAIL;
1121 ast_test_status_update(
test,
"Could not retrieve built-in ulaw codec\n");
1122 return AST_TEST_FAIL;
1127 ast_test_status_update(
test,
"Could not create ulaw format using built-in codec\n");
1128 return AST_TEST_FAIL;
1133 ast_test_status_update(
test,
"Could not retrieve built-in alaw codec\n");
1134 return AST_TEST_FAIL;
1139 ast_test_status_update(
test,
"Could not create alaw format using built-in codec\n");
1140 return AST_TEST_FAIL;
1144 ast_test_status_update(
test,
"Could not add ulaw format to ulaw capabilities\n");
1145 return AST_TEST_FAIL;
1147 ast_test_status_update(
test,
"Could not add alaw format to alaw capabilities\n");
1148 return AST_TEST_FAIL;
1150 ast_test_status_update(
test,
"Could not add ulaw format to multi capabilities\n");
1151 return AST_TEST_FAIL;
1153 ast_test_status_update(
test,
"Could not add alaw format to multi capabilities\n");
1154 return AST_TEST_FAIL;
1167 return AST_TEST_PASS;
1183 info->name = __PRETTY_FUNCTION__;
1184 info->category =
"/main/format_cap/";
1185 info->summary =
"format capabilities best by type unit test";
1187 "Test that we can get the best format type out of a capabilities structure";
1188 return AST_TEST_NOT_RUN;
1195 ast_test_status_update(
test,
"Could not allocate an empty format capabilities structure\n");
1196 return AST_TEST_FAIL;
1201 ast_test_status_update(
test,
"Could not retrieve built-in ulaw codec\n");
1202 return AST_TEST_FAIL;
1207 ast_test_status_update(
test,
"Could not create ulaw format using built-in codec\n");
1208 return AST_TEST_FAIL;
1213 ast_test_status_update(
test,
"Could not retrieve built-in alaw codec\n");
1214 return AST_TEST_FAIL;
1219 ast_test_status_update(
test,
"Could not create alaw format using built-in codec\n");
1220 return AST_TEST_FAIL;
1225 ast_test_status_update(
test,
"Could not retrieve built-in h263 codec\n");
1226 return AST_TEST_FAIL;
1231 ast_test_status_update(
test,
"Could not create h263 format using built-in codec\n");
1232 return AST_TEST_FAIL;
1236 ast_test_status_update(
test,
"Could not add ulaw format to capabilities\n");
1237 return AST_TEST_FAIL;
1239 ast_test_status_update(
test,
"Could not add alaw format to capabilities\n");
1240 return AST_TEST_FAIL;
1242 ast_test_status_update(
test,
"Could not add h263 format to capabilities\n");
1243 return AST_TEST_FAIL;
1259 ast_test_validate(
test, best_format == NULL);
1262 ast_test_validate(
test, best_format == NULL);
1264 return AST_TEST_PASS;
1267 static int test_law_samples(
struct ast_frame *frame)
1272 static int test_law_length(
unsigned int samples)
1279 .description =
"format cap unit test codec",
1280 .type = AST_MEDIA_TYPE_AUDIO,
1281 .sample_rate = 8000,
1285 .samples_count = test_law_samples,
1286 .get_length = test_law_length,
1292 ast_log(LOG_ERROR,
"Comparing format1 %p and format2 %p\n", format1, format2);
1296 static void test_law_destroy(
struct ast_format *format)
1307 .format_clone = test_law_clone,
1308 .format_destroy = test_law_destroy,
1324 info->name = __PRETTY_FUNCTION__;
1325 info->category =
"/main/format_cap/";
1326 info->summary =
"format capabilities adding unit test";
1328 "Test that adding multiple formats to a format capabilities structure succeeds";
1329 return AST_TEST_NOT_RUN;
1337 if (!caps || !replace_caps || !result_caps) {
1338 ast_test_status_update(
test,
"Could not allocate an empty format capabilities structure\n");
1339 return AST_TEST_FAIL;
1342 ulaw =
ast_codec_get(
"test_law", AST_MEDIA_TYPE_AUDIO, 8000);
1344 ast_test_status_update(
test,
"Could not retrieve test_law codec\n");
1345 return AST_TEST_FAIL;
1350 ast_test_status_update(
test,
"Could not create ulaw format using built-in codec\n");
1351 return AST_TEST_FAIL;
1355 if (!ulaw_format_variant) {
1356 ast_test_status_update(
test,
"Could not create ulaw format variant using built-in codec\n");
1357 return AST_TEST_FAIL;
1362 ast_test_status_update(
test,
"Could not retrieve built-in alaw codec\n");
1363 return AST_TEST_FAIL;
1368 ast_test_status_update(
test,
"Could not create alaw format using built-in codec\n");
1369 return AST_TEST_FAIL;
1374 ast_test_status_update(
test,
"Could not add ulaw format to capabilities structure\n");
1375 return AST_TEST_FAIL;
1378 ast_test_status_update(
test,
"Could not add alaw format to capabilities structure\n");
1379 return AST_TEST_FAIL;
1382 ast_test_status_update(
test,
"Number of formats in capabilities structure should be 2 but is %zu\n",
1384 return AST_TEST_FAIL;
1389 ast_test_status_update(
test,
"Could not add ulaw format to capabilities structure\n");
1390 return AST_TEST_FAIL;
1393 ast_test_status_update(
test,
"Number of formats in capabilities structure should be 1 but is %zu\n",
1395 return AST_TEST_FAIL;
1400 ast_test_status_update(
test,
"Could not add ulaw variant to capabilities structure\n");
1401 return AST_TEST_FAIL;
1404 ast_test_status_update(
test,
"Could not add alaw format to capabilities structure\n");
1405 return AST_TEST_FAIL;
1408 ast_test_status_update(
test,
"Number of formats in capabilities structure should be 2 but is %zu\n",
1410 return AST_TEST_FAIL;
1418 ast_test_status_update(
test,
"Actual and expected result caps differ\n");
1419 return AST_TEST_FAIL;
1422 return AST_TEST_PASS;
1425 static int unload_module(
void)
1427 AST_TEST_UNREGISTER(format_cap_alloc);
1428 AST_TEST_UNREGISTER(format_cap_append_single);
1429 AST_TEST_UNREGISTER(format_cap_append_multiple);
1430 AST_TEST_UNREGISTER(format_cap_append_all_unknown);
1431 AST_TEST_UNREGISTER(format_cap_append_all_audio);
1432 AST_TEST_UNREGISTER(format_cap_append_duplicate);
1433 AST_TEST_UNREGISTER(format_cap_append_from_cap);
1434 AST_TEST_UNREGISTER(format_cap_append_from_cap_duplicate);
1435 AST_TEST_UNREGISTER(format_cap_set_framing);
1436 AST_TEST_UNREGISTER(format_cap_remove_single);
1437 AST_TEST_UNREGISTER(format_cap_remove_multiple);
1438 AST_TEST_UNREGISTER(format_cap_remove_bytype);
1439 AST_TEST_UNREGISTER(format_cap_remove_all);
1440 AST_TEST_UNREGISTER(format_cap_get_names);
1441 AST_TEST_UNREGISTER(format_cap_get_compatible_format);
1442 AST_TEST_UNREGISTER(format_cap_iscompatible_format);
1443 AST_TEST_UNREGISTER(format_cap_get_compatible);
1444 AST_TEST_UNREGISTER(format_cap_iscompatible);
1445 AST_TEST_UNREGISTER(format_cap_best_by_type);
1446 AST_TEST_UNREGISTER(format_cap_replace_from_cap);
1450 static int load_module(
void)
1452 AST_TEST_REGISTER(format_cap_alloc);
1453 AST_TEST_REGISTER(format_cap_append_single);
1454 AST_TEST_REGISTER(format_cap_append_multiple);
1455 AST_TEST_REGISTER(format_cap_append_all_unknown);
1456 AST_TEST_REGISTER(format_cap_append_all_audio);
1457 AST_TEST_REGISTER(format_cap_append_duplicate);
1458 AST_TEST_REGISTER(format_cap_append_from_cap);
1459 AST_TEST_REGISTER(format_cap_append_from_cap_duplicate);
1460 AST_TEST_REGISTER(format_cap_set_framing);
1461 AST_TEST_REGISTER(format_cap_remove_single);
1462 AST_TEST_REGISTER(format_cap_remove_multiple);
1463 AST_TEST_REGISTER(format_cap_remove_bytype);
1464 AST_TEST_REGISTER(format_cap_remove_all);
1465 AST_TEST_REGISTER(format_cap_get_names);
1466 AST_TEST_REGISTER(format_cap_get_compatible_format);
1467 AST_TEST_REGISTER(format_cap_iscompatible_format);
1468 AST_TEST_REGISTER(format_cap_get_compatible);
1469 AST_TEST_REGISTER(format_cap_iscompatible);
1470 AST_TEST_REGISTER(format_cap_best_by_type);
1471 AST_TEST_REGISTER(format_cap_replace_from_cap);
1477 AST_MODULE_INFO_STANDARD(
ASTERISK_GPL_KEY,
"Format capabilities API test module");
const char * name
Name for this codec.
Asterisk main include file. File version handling, generic pbx functions.
char * ast_str_buffer(const struct ast_str *buf)
Returns the string buffer within the ast_str buf.
struct ast_codec * ast_codec_get(const char *name, enum ast_media_type type, unsigned int sample_rate)
Retrieve a codec given a name, type, and sample rate.
int ast_codec_get_max(void)
Retrieve the current maximum identifier for codec iteration.
#define ao2_ref(o, delta)
Reference/unreference an object and return the old refcount.
Asterisk internal frame definitions.
#define ast_codec_register(codec)
This function is used to register a codec with the Asterisk core. Registering allows it to be passed ...
Support for dynamic strings.
Data structure associated with a single frame of data.
#define AST_TEST_DEFINE(hdr)
#define ASTERISK_GPL_KEY
The text the key() function should return.
Asterisk module definitions.
#define RAII_VAR(vartype, varname, initval, dtor)
Declare a variable that will call a destructor function when it goes out of scope.
Represents a media codec within Asterisk.