FFmpeg
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
}
base
uint8_t base
Definition:
vp3data.h:202
buf
void * buf
Definition:
avisynth_c.h:766
NULL
#define NULL
Definition:
coverity.c:32
test
static void test(const char *base, const char *rel)
Definition:
url.c:23
main
int main(void)
Definition:
url.c:39
printf
printf("static const uint8_t my_array[100] = {\n")
url.h
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
snprintf
#define snprintf
Definition:
snprintf.h:34
Generated on Wed Aug 24 2022 21:27:25 for FFmpeg by
1.8.17