[FFmpeg-devel] [PATCH 02/12] avformat/tests/url: add av_url_split tests

Marton Balint cus at passwd.hu
Sat Feb 8 23:18:13 EET 2020


Signed-off-by: Marton Balint <cus at passwd.hu>
---
 libavformat/tests/url.c | 24 ++++++++++++++++++++++++
 tests/ref/fate/url      | 10 ++++++++++
 2 files changed, 34 insertions(+)

diff --git a/libavformat/tests/url.c b/libavformat/tests/url.c
index 11ed5bb0b7..d99876f02c 100644
--- a/libavformat/tests/url.c
+++ b/libavformat/tests/url.c
@@ -19,6 +19,7 @@
  */
 
 #include "libavformat/url.h"
+#include "libavformat/avformat.h"
 
 static void test(const char *base, const char *rel)
 {
@@ -36,6 +37,18 @@ static void test(const char *base, const char *rel)
     }
 }
 
+static void test2(const char *url)
+{
+    char proto[64];
+    char auth[256];
+    char host[256];
+    char path[256];
+    int port=-1;
+
+    av_url_split(proto, sizeof(proto), auth, sizeof(auth), host, sizeof(host), &port, path, sizeof(path), url);
+    printf("%-60s => %-15s %-15s %-15s %5d %s\n", url, proto, auth, host, port, path);
+}
+
 int main(void)
 {
     printf("Testing ff_make_absolute_url:\n");
@@ -52,5 +65,16 @@ int main(void)
     test("http://server/foo/bar?param=value/with/slashes", "/baz");
     test("http://server/foo/bar?param&otherparam", "?someparam");
     test("http://server/foo/bar", "//other/url");
+
+    printf("\nTesting av_url_split:\n");
+    test2("/foo/bar");
+    test2("http://server/foo/");
+    test2("http://example.com/foo/bar");
+    test2("http://user:pass@localhost:8080/foo/bar/123");
+    test2("http://server/foo/bar?param=value/with/slashes");
+    test2("https://1l-lh.a.net/i/1LIVE_HDS@179577/master.m3u8");
+    test2("ftp://u:p%2B%2F2@ftp.pbt.com/ExportHD.mpg");
+    test2("https://key.dns.com?key_id=2&model_id=12345&&access_key=");
+
     return 0;
 }
diff --git a/tests/ref/fate/url b/tests/ref/fate/url
index b5deba88ae..8212c1131b 100644
--- a/tests/ref/fate/url
+++ b/tests/ref/fate/url
@@ -12,3 +12,13 @@ Testing ff_make_absolute_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 //other/url          => http://other/url
+
+Testing av_url_split:
+/foo/bar                                                     =>                                                    -1 /foo/bar
+http://server/foo/                                           => http                            server             -1 /foo/
+http://example.com/foo/bar                                   => http                            example.com        -1 /foo/bar
+http://user:pass@localhost:8080/foo/bar/123                  => http            user:pass       localhost        8080 /foo/bar/123
+http://server/foo/bar?param=value/with/slashes               => http                            server             -1 /foo/bar?param=value/with/slashes
+https://1l-lh.a.net/i/1LIVE_HDS@179577/master.m3u8           => https                           1l-lh.a.net        -1 /i/1LIVE_HDS at 179577/master.m3u8
+ftp://u:p%2B%2F2@ftp.pbt.com/ExportHD.mpg                    => ftp             u:p%2B%2F2      ftp.pbt.com        -1 /ExportHD.mpg
+https://key.dns.com?key_id=2&model_id=12345&&access_key=     => https                           key.dns.com        -1 ?key_id=2&model_id=12345&&access_key=
-- 
2.16.4



More information about the ffmpeg-devel mailing list