avformat/tests/url: add av_url_split tests
authorMarton Balint <cus@passwd.hu>
Mon, 3 Feb 2020 00:13:28 +0000 (01:13 +0100)
committerMarton Balint <cus@passwd.hu>
Sat, 15 Feb 2020 17:41:36 +0000 (18:41 +0100)
Signed-off-by: Marton Balint <cus@passwd.hu>
libavformat/tests/url.c
tests/ref/fate/url

index 11ed5bb..d99876f 100644 (file)
@@ -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;
 }
index b5deba8..8212c11 100644 (file)
@@ -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@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=