FFmpeg
4.0
libavformat
tests
url.c
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2012 Martin Storsjo
3
*
4
* This file is part of FFmpeg.
5
*
6
* FFmpeg is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU Lesser General Public
8
* License as published by the Free Software Foundation; either
9
* version 2.1 of the License, or (at your option) any later version.
10
*
11
* FFmpeg is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
* Lesser General Public License for more details.
15
*
16
* You should have received a copy of the GNU Lesser General Public
17
* License along with FFmpeg; if not, write to the Free Software
18
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19
*/
20
21
#include "
libavformat/url.h
"
22
23
static
void
test
(
const
char
*base,
const
char
*rel)
24
{
25
char
buf
[200], buf2[200];
26
ff_make_absolute_url
(buf,
sizeof
(buf), base, rel);
27
printf(
"%s\n"
, buf);
28
if
(base) {
29
/* Test in-buffer replacement */
30
snprintf
(buf2,
sizeof
(buf2),
"%s"
, base);
31
ff_make_absolute_url
(buf2,
sizeof
(buf2), buf2, rel);
32
if
(strcmp(buf, buf2)) {
33
printf(
"In-place handling of %s + %s failed\n"
, base, rel);
34
exit(1);
35
}
36
}
37
}
38
39
int
main
(
void
)
40
{
41
test
(
NULL
,
"baz"
);
42
test
(
"/foo/bar"
,
"baz"
);
43
test
(
"/foo/bar"
,
"../baz"
);
44
test
(
"/foo/bar"
,
"/baz"
);
45
test
(
"http://server/foo/"
,
"baz"
);
46
test
(
"http://server/foo/bar"
,
"baz"
);
47
test
(
"http://server/foo/"
,
"../baz"
);
48
test
(
"http://server/foo/bar/123"
,
"../../baz"
);
49
test
(
"http://server/foo/bar/123"
,
"/baz"
);
50
test
(
"http://server/foo/bar/123"
,
"https://other/url"
);
51
test
(
"http://server/foo/bar?param=value/with/slashes"
,
"/baz"
);
52
test
(
"http://server/foo/bar?param&otherparam"
,
"?someparam"
);
53
test
(
"http://server/foo/bar"
,
"//other/url"
);
54
return
0;
55
}
NULL
#define NULL
Definition:
coverity.c:32
ff_make_absolute_url
void ff_make_absolute_url(char *buf, int size, const char *base, const char *rel)
Convert a relative url into an absolute url, given a base url.
Definition:
url.c:80
main
int main(void)
Definition:
url.c:39
buf
void * buf
Definition:
avisynth_c.h:690
snprintf
#define snprintf
Definition:
snprintf.h:34
url.h
unbuffered private I/O API
test
static void test(const char *base, const char *rel)
Definition:
url.c:23
Generated on Tue May 22 2018 07:06:58 for FFmpeg by
1.8.13