summaryrefslogtreecommitdiff
path: root/libavutil/tests/avstring.c
diff options
context:
space:
mode:
Diffstat (limited to 'libavutil/tests/avstring.c')
-rw-r--r--libavutil/tests/avstring.c50
1 files changed, 45 insertions, 5 deletions
diff --git a/libavutil/tests/avstring.c b/libavutil/tests/avstring.c
index 2e5ee2d44a..14bc7ffcea 100644
--- a/libavutil/tests/avstring.c
+++ b/libavutil/tests/avstring.c
@@ -1,18 +1,18 @@
/*
- * This file is part of Libav.
+ * This file is part of FFmpeg.
*
- * Libav is free software; you can redistribute it and/or
+ * FFmpeg is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
- * Libav is distributed in the hope that it will be useful,
+ * FFmpeg is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
- * License along with Libav; if not, write to the Free Software
+ * License along with FFmpeg; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
@@ -25,7 +25,8 @@
int main(void)
{
int i;
- static const char *strings[] = {
+ char *fullpath, *ptr;
+ static const char * const strings[] = {
"''",
"",
":",
@@ -53,6 +54,8 @@ int main(void)
"'\\fo\\o:': blahblah",
"\\'fo\\o\\:': foo ' :blahblah"
};
+ const char *haystack = "Education consists mainly in what we have unlearned.";
+ const char * const needle[] = {"learned.", "unlearned.", "Unlearned"};
printf("Testing av_get_token()\n");
for (i = 0; i < FF_ARRAY_ELEMS(strings); i++) {
@@ -65,5 +68,42 @@ int main(void)
av_free(q);
}
+ printf("Testing av_append_path_component()\n");
+ #define TEST_APPEND_PATH_COMPONENT(path, component, expected) \
+ fullpath = av_append_path_component((path), (component)); \
+ printf("%s = %s\n", fullpath ? fullpath : "(null)", expected); \
+ av_free(fullpath);
+ TEST_APPEND_PATH_COMPONENT(NULL, NULL, "(null)")
+ TEST_APPEND_PATH_COMPONENT("path", NULL, "path");
+ TEST_APPEND_PATH_COMPONENT(NULL, "comp", "comp");
+ TEST_APPEND_PATH_COMPONENT("path", "comp", "path/comp");
+ TEST_APPEND_PATH_COMPONENT("path/", "comp", "path/comp");
+ TEST_APPEND_PATH_COMPONENT("path", "/comp", "path/comp");
+ TEST_APPEND_PATH_COMPONENT("path/", "/comp", "path/comp");
+ TEST_APPEND_PATH_COMPONENT("path/path2/", "/comp/comp2", "path/path2/comp/comp2");
+
+ /*Testing av_strnstr()*/
+ #define TEST_STRNSTR(haystack, needle, hay_length, expected) \
+ ptr = av_strnstr(haystack, needle, hay_length); \
+ if (ptr != expected){ \
+ printf("expected: %p, received %p\n", expected, ptr); \
+ }
+ TEST_STRNSTR(haystack, needle [0], strlen(haystack), haystack+44);
+ TEST_STRNSTR(haystack, needle [1], strlen(haystack), haystack+42);
+ TEST_STRNSTR(haystack, needle [2], strlen(haystack), NULL );
+ TEST_STRNSTR(haystack, strings[1], strlen(haystack), haystack );
+
+ /*Testing av_d2str()*/
+ #define TEST_D2STR(value, expected) \
+ if((ptr = av_d2str(value)) == NULL){ \
+ printf("error, received null pointer!\n"); \
+ } else { \
+ if(strcmp(ptr, expected) != 0) \
+ printf( "expected: %s, received: %s\n", expected, ptr); \
+ av_free(ptr); \
+ }
+ TEST_D2STR(0 , "0.000000");
+ TEST_D2STR(-1.2333234, "-1.233323");
+ TEST_D2STR(-1.2333237, "-1.233324");
return 0;
}