[FFmpeg-devel] [PATCH v3 2/2] avformat/tests/url: add test cases for handling of double dot
Josef Zlomek
josef at pex.com
Tue Jul 28 07:10:58 EEST 2020
added test cases
Signed-off-by: Josef Zlomek <josef at pex.com>
---
libavformat/tests/url.c | 11 ++++++++++-
tests/ref/fate/url | 9 +++++++++
2 files changed, 19 insertions(+), 1 deletion(-)
diff --git a/libavformat/tests/url.c b/libavformat/tests/url.c
index 1d961a1b43..029be6ff10 100644
--- a/libavformat/tests/url.c
+++ b/libavformat/tests/url.c
@@ -23,7 +23,7 @@
static void test(const char *base, const char *rel)
{
- char buf[200], buf2[200];
+ char buf[80], buf2[80];
ff_make_absolute_url(buf, sizeof(buf), base, rel);
printf("%50s %-20s => %s\n", base, rel, buf);
if (base) {
@@ -57,6 +57,9 @@ int main(void)
test("/foo/bar", "../baz");
test("/foo/bar", "/baz");
test("/foo/bar", "../../../baz");
+ test("/foo/bar", "..");
+ test("/foo/bar/baz", "..");
+ test("http://server", "");
test("http://server/foo/", "baz");
test("http://server/foo/bar", "baz");
test("http://server/foo/", "../baz");
@@ -65,11 +68,17 @@ int main(void)
test("http://server/foo/bar/123", "https://other/url");
test("http://server/foo/bar?param=value/with/slashes", "/baz");
test("http://server/foo/bar?param&otherparam", "?someparam");
+ test("http://server/foo/bar", "simple/relative/path");
test("http://server/foo/bar", "//other/url");
test("http://server/foo/bar", "../../../../../other/url");
+ test("http://server/foo/bar", "a/b/../c/d/../e../..f/.../other/url/test..mp3");
+ test("http://server/foo/bar", "/a/b/../c/d/../e../..f/.../other/url/test..mp3");
+ test("http://server/foo/bar", "a/b/../c/d/../e../..f/.../other/url/..");
+ test("http://server/foo/bar", "a/b/../c/d/../e../..f/.../other/url/");
test("http://server/foo/bar", "/../../../../../other/url");
test("http://server/foo/bar", "/test/../../../../../other/url");
test("http://server/foo/bar", "/test/../../test/../../../other/url");
+ test("http://server/foo/bar", "/too/long1/too/long2/too/long3/too/long4/too/long5/too/long6/too/long7");
printf("\nTesting av_url_split:\n");
test2("/foo/bar");
diff --git a/tests/ref/fate/url b/tests/ref/fate/url
index 533ba2cb1e..20c37bc826 100644
--- a/tests/ref/fate/url
+++ b/tests/ref/fate/url
@@ -4,6 +4,9 @@ Testing ff_make_absolute_url:
/foo/bar ../baz => /baz
/foo/bar /baz => /baz
/foo/bar ../../../baz => /baz
+ /foo/bar .. => /
+ /foo/bar/baz .. => /foo/
+ http://server => http://server
http://server/foo/ baz => http://server/foo/baz
http://server/foo/bar baz => http://server/foo/baz
http://server/foo/ ../baz => http://server/baz
@@ -12,11 +15,17 @@ Testing ff_make_absolute_url:
http://server/foo/bar/123 https://other/url => https://other/url
http://server/foo/bar?param=value/with/slashes /baz => http://server/baz
http://server/foo/bar?param&otherparam ?someparam => http://server/foo/bar?someparam
+ http://server/foo/bar simple/relative/path => http://server/foo/simple/relative/path
http://server/foo/bar //other/url => http://other/url
http://server/foo/bar ../../../../../other/url => http://server/other/url
+ http://server/foo/bar a/b/../c/d/../e../..f/.../other/url/test..mp3 => http://server/foo/a/c/e../..f/.../other/url/test..mp3
+ http://server/foo/bar /a/b/../c/d/../e../..f/.../other/url/test..mp3 => http://server/a/c/e../..f/.../other/url/test..mp3
+ http://server/foo/bar a/b/../c/d/../e../..f/.../other/url/.. => http://server/foo/a/c/e../..f/.../other/
+ http://server/foo/bar a/b/../c/d/../e../..f/.../other/url/ => http://server/foo/a/c/e../..f/.../other/url/
http://server/foo/bar /../../../../../other/url => http://server/other/url
http://server/foo/bar /test/../../../../../other/url => http://server/other/url
http://server/foo/bar /test/../../test/../../../other/url => http://server/other/url
+ http://server/foo/bar /too/long1/too/long2/too/long3/too/long4/too/long5/too/long6/too/long7 => http://server/too/long1/too/long2/too/long3/too/long4/too/long5/too/long6/too/l
Testing av_url_split:
/foo/bar => -1 /foo/bar
--
2.17.1
More information about the ffmpeg-devel
mailing list