mirror of https://github.com/FFmpeg/FFmpeg.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
83 lines
2.6 KiB
83 lines
2.6 KiB
/* |
|
* This file is part of FFmpeg. |
|
* |
|
* 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. |
|
* |
|
* 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 FFmpeg; if not, write to the Free Software |
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
|
*/ |
|
|
|
#include <stdio.h> |
|
|
|
#include "libavutil/common.h" |
|
#include "libavutil/mem.h" |
|
#include "libavutil/avstring.h" |
|
|
|
int main(void) |
|
{ |
|
int i; |
|
char *fullpath; |
|
static const char * const strings[] = { |
|
"''", |
|
"", |
|
":", |
|
"\\", |
|
"'", |
|
" '' :", |
|
" '' '' :", |
|
"foo '' :", |
|
"'foo'", |
|
"foo ", |
|
" ' foo ' ", |
|
"foo\\", |
|
"foo': blah:blah", |
|
"foo\\: blah:blah", |
|
"foo\'", |
|
"'foo : ' :blahblah", |
|
"\\ :blah", |
|
" foo", |
|
" foo ", |
|
" foo \\ ", |
|
"foo ':blah", |
|
" foo bar : blahblah", |
|
"\\f\\o\\o", |
|
"'foo : \\ \\ ' : blahblah", |
|
"'\\fo\\o:': blahblah", |
|
"\\'fo\\o\\:': foo ' :blahblah" |
|
}; |
|
|
|
printf("Testing av_get_token()\n"); |
|
for (i = 0; i < FF_ARRAY_ELEMS(strings); i++) { |
|
const char *p = strings[i]; |
|
char *q; |
|
printf("|%s|", p); |
|
q = av_get_token(&p, ":"); |
|
printf(" -> |%s|", q); |
|
printf(" + |%s|\n", p); |
|
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"); |
|
return 0; |
|
}
|
|
|