aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/data/DISABLED5
-rw-r--r--tests/data/test20178
-rw-r--r--tests/data/test201878
-rw-r--r--tests/data/test201978
-rw-r--r--tests/data/test202078
-rw-r--r--tests/data/test202178
-rw-r--r--tests/data/test202278
7 files changed, 399 insertions, 4 deletions
diff --git a/tests/data/DISABLED b/tests/data/DISABLED
index f7402e60b..77625d507 100644
--- a/tests/data/DISABLED
+++ b/tests/data/DISABLED
@@ -6,3 +6,8 @@
1209
1211
2017
+2018
+2019
+2020
+2021
+2022
diff --git a/tests/data/test2017 b/tests/data/test2017
index f4312c47b..52df14e38 100644
--- a/tests/data/test2017
+++ b/tests/data/test2017
@@ -35,7 +35,7 @@ file
Metalink
</features>
<name>
-Metalink local XML file, attempt questionable file name
+Metalink local XML file, attempt UNIX home path traversal
</name>
<command option="no-output,no-include">
--metalink file://%PWD/log/test2017.metalink
@@ -45,7 +45,7 @@ Metalink local XML file, attempt questionable file name
<?xml version="1.0" encoding="utf-8"?>
<metalink version="3.0" xmlns="http://www.metalinker.org/">
<files>
- <file name="log/.download2017">
+ <file name="~/download2017">
<verification>
<hash type="sha256">c7d03debe90ca29492203ea921d76941fa98640cf3b744f2a16c9b58465eab82</hash>
</verification>
@@ -57,7 +57,7 @@ Metalink local XML file, attempt questionable file name
</metalink>
</file>
<postcheck>
-perl %SRCDIR/libtest/notexists.pl log/2017 log/name2017 log/.download2017
+perl %SRCDIR/libtest/notexists.pl log/2017 log/name2017
</postcheck>
</client>
@@ -72,7 +72,7 @@ Metalink: parsing (file://%PWD/log/test2017.metalink) WARNING (missing or invali
Metalink: parsing (file://%PWD/log/test2017.metalink) FAILED
</file2>
<stripfile2>
-$_ = '' if ($_ !~ /^Metalink: /)
+$_ = '' if (($_ !~ /^Metalink: /) && ($_ !~ /error/i) && ($_ !~ /warn/i))
</stripfile2>
</verify>
</testcase>
diff --git a/tests/data/test2018 b/tests/data/test2018
new file mode 100644
index 000000000..b76233e1a
--- /dev/null
+++ b/tests/data/test2018
@@ -0,0 +1,78 @@
+<testcase>
+<info>
+<keywords>
+Metalink
+HTTP
+HTTP GET
+</keywords>
+</info>
+
+#
+# Server-side
+<reply>
+<data nocheck="yes">
+HTTP/1.1 200 OK
+Date: Wed, 20 Jun 2012 14:49:00 GMT
+Server: test-server/fake
+Content-Length: 56
+Connection: close
+Content-Type: text/html
+Content-Disposition: filename=name2018; charset=funny; option=strange
+Funny-head: yesyes
+
+Data that should not be delivered from an HTTP resource
+</data>
+</reply>
+
+#
+# Client-side
+<client>
+<server>
+http
+</server>
+<features>
+file
+Metalink
+</features>
+ <name>
+Metalink local XML file, attempt UNIX questionable file name I
+ </name>
+<command option="no-output,no-include">
+--metalink file://%PWD/log/test2018.metalink
+</command>
+# local metalink file written before test command runs
+<file name="log/test2018.metalink">
+<?xml version="1.0" encoding="utf-8"?>
+<metalink version="3.0" xmlns="http://www.metalinker.org/">
+ <files>
+ <file name="log/.download2018">
+ <verification>
+ <hash type="sha256">c7d03debe90ca29492203ea921d76941fa98640cf3b744f2a16c9b58465eab82</hash>
+ </verification>
+ <resources maxconnections="1">
+ <url type="http" preference="90">http://%HOSTIP:%HTTPPORT/2018</url>
+ </resources>
+ </file>
+ </files>
+</metalink>
+</file>
+<postcheck>
+perl %SRCDIR/libtest/notexists.pl log/2018 log/name2018 log/.download2018
+</postcheck>
+</client>
+
+#
+# Verify data after the test has been "shot"
+<verify>
+<file1 name="log/stdout2018">
+</file1>
+<file2 name="log/stderr2018">
+Metalink: parsing (file://%PWD/log/test2018.metalink) metalink/XML...
+Metalink: parsing (file://%PWD/log/test2018.metalink) WARNING (missing or invalid file name)
+Metalink: parsing (file://%PWD/log/test2018.metalink) FAILED
+</file2>
+<stripfile2>
+$_ = '' if (($_ !~ /^Metalink: /) && ($_ !~ /error/i) && ($_ !~ /warn/i))
+</stripfile2>
+</verify>
+</testcase>
diff --git a/tests/data/test2019 b/tests/data/test2019
new file mode 100644
index 000000000..cd098040b
--- /dev/null
+++ b/tests/data/test2019
@@ -0,0 +1,78 @@
+<testcase>
+<info>
+<keywords>
+Metalink
+HTTP
+HTTP GET
+</keywords>
+</info>
+
+#
+# Server-side
+<reply>
+<data nocheck="yes">
+HTTP/1.1 200 OK
+Date: Wed, 20 Jun 2012 14:49:00 GMT
+Server: test-server/fake
+Content-Length: 56
+Connection: close
+Content-Type: text/html
+Content-Disposition: filename=name2019; charset=funny; option=strange
+Funny-head: yesyes
+
+Data that should not be delivered from an HTTP resource
+</data>
+</reply>
+
+#
+# Client-side
+<client>
+<server>
+http
+</server>
+<features>
+file
+Metalink
+</features>
+ <name>
+Metalink local XML file, attempt UNIX questionable file name II
+ </name>
+<command option="no-output,no-include">
+--metalink file://%PWD/log/test2019.metalink
+</command>
+# local metalink file written before test command runs
+<file name="log/test2019.metalink">
+<?xml version="1.0" encoding="utf-8"?>
+<metalink version="3.0" xmlns="http://www.metalinker.org/">
+ <files>
+ <file name=".">
+ <verification>
+ <hash type="sha256">c7d03debe90ca29492203ea921d76941fa98640cf3b744f2a16c9b58465eab82</hash>
+ </verification>
+ <resources maxconnections="1">
+ <url type="http" preference="90">http://%HOSTIP:%HTTPPORT/2019</url>
+ </resources>
+ </file>
+ </files>
+</metalink>
+</file>
+<postcheck>
+perl %SRCDIR/libtest/notexists.pl log/2019 log/name2019
+</postcheck>
+</client>
+
+#
+# Verify data after the test has been "shot"
+<verify>
+<file1 name="log/stdout2019">
+</file1>
+<file2 name="log/stderr2019">
+Metalink: parsing (file://%PWD/log/test2019.metalink) metalink/XML...
+Metalink: parsing (file://%PWD/log/test2019.metalink) WARNING (missing or invalid file name)
+Metalink: parsing (file://%PWD/log/test2019.metalink) FAILED
+</file2>
+<stripfile2>
+$_ = '' if (($_ !~ /^Metalink: /) && ($_ !~ /error/i) && ($_ !~ /warn/i))
+</stripfile2>
+</verify>
+</testcase>
diff --git a/tests/data/test2020 b/tests/data/test2020
new file mode 100644
index 000000000..f89600b64
--- /dev/null
+++ b/tests/data/test2020
@@ -0,0 +1,78 @@
+<testcase>
+<info>
+<keywords>
+Metalink
+HTTP
+HTTP GET
+</keywords>
+</info>
+
+#
+# Server-side
+<reply>
+<data nocheck="yes">
+HTTP/1.1 200 OK
+Date: Wed, 20 Jun 2012 14:49:00 GMT
+Server: test-server/fake
+Content-Length: 56
+Connection: close
+Content-Type: text/html
+Content-Disposition: filename=name2020; charset=funny; option=strange
+Funny-head: yesyes
+
+Data that should not be delivered from an HTTP resource
+</data>
+</reply>
+
+#
+# Client-side
+<client>
+<server>
+http
+</server>
+<features>
+file
+Metalink
+</features>
+ <name>
+Metalink local XML file, attempt UNIX questionable file name III
+ </name>
+<command option="no-output,no-include">
+--metalink file://%PWD/log/test2020.metalink
+</command>
+# local metalink file written before test command runs
+<file name="log/test2020.metalink">
+<?xml version="1.0" encoding="utf-8"?>
+<metalink version="3.0" xmlns="http://www.metalinker.org/">
+ <files>
+ <file name="..">
+ <verification>
+ <hash type="sha256">c7d03debe90ca29492203ea921d76941fa98640cf3b744f2a16c9b58465eab82</hash>
+ </verification>
+ <resources maxconnections="1">
+ <url type="http" preference="90">http://%HOSTIP:%HTTPPORT/2020</url>
+ </resources>
+ </file>
+ </files>
+</metalink>
+</file>
+<postcheck>
+perl %SRCDIR/libtest/notexists.pl log/2020 log/name2020
+</postcheck>
+</client>
+
+#
+# Verify data after the test has been "shot"
+<verify>
+<file1 name="log/stdout2020">
+</file1>
+<file2 name="log/stderr2020">
+Metalink: parsing (file://%PWD/log/test2020.metalink) metalink/XML...
+Metalink: parsing (file://%PWD/log/test2020.metalink) WARNING (missing or invalid file name)
+Metalink: parsing (file://%PWD/log/test2020.metalink) FAILED
+</file2>
+<stripfile2>
+$_ = '' if (($_ !~ /^Metalink: /) && ($_ !~ /error/i) && ($_ !~ /warn/i))
+</stripfile2>
+</verify>
+</testcase>
diff --git a/tests/data/test2021 b/tests/data/test2021
new file mode 100644
index 000000000..133eb1678
--- /dev/null
+++ b/tests/data/test2021
@@ -0,0 +1,78 @@
+<testcase>
+<info>
+<keywords>
+Metalink
+HTTP
+HTTP GET
+</keywords>
+</info>
+
+#
+# Server-side
+<reply>
+<data nocheck="yes">
+HTTP/1.1 200 OK
+Date: Wed, 20 Jun 2012 14:49:00 GMT
+Server: test-server/fake
+Content-Length: 56
+Connection: close
+Content-Type: text/html
+Content-Disposition: filename=name2021; charset=funny; option=strange
+Funny-head: yesyes
+
+Data that should not be delivered from an HTTP resource
+</data>
+</reply>
+
+#
+# Client-side
+<client>
+<server>
+http
+</server>
+<features>
+file
+Metalink
+</features>
+ <name>
+Metalink local XML file, attempt UNIX questionable file name IV
+ </name>
+<command option="no-output,no-include">
+--metalink file://%PWD/log/test2021.metalink
+</command>
+# local metalink file written before test command runs
+<file name="log/test2021.metalink">
+<?xml version="1.0" encoding="utf-8"?>
+<metalink version="3.0" xmlns="http://www.metalinker.org/">
+ <files>
+ <file name="log/download2021 >/dev/null">
+ <verification>
+ <hash type="sha256">c7d03debe90ca29492203ea921d76941fa98640cf3b744f2a16c9b58465eab82</hash>
+ </verification>
+ <resources maxconnections="1">
+ <url type="http" preference="90">http://%HOSTIP:%HTTPPORT/2021</url>
+ </resources>
+ </file>
+ </files>
+</metalink>
+</file>
+<postcheck>
+perl %SRCDIR/libtest/notexists.pl log/2021 log/name2021 log/download2021
+</postcheck>
+</client>
+
+#
+# Verify data after the test has been "shot"
+<verify>
+<file1 name="log/stdout2021">
+</file1>
+<file2 name="log/stderr2021">
+Metalink: parsing (file://%PWD/log/test2021.metalink) metalink/XML...
+Metalink: parsing (file://%PWD/log/test2021.metalink) WARNING (missing or invalid file name)
+Metalink: parsing (file://%PWD/log/test2021.metalink) FAILED
+</file2>
+<stripfile2>
+$_ = '' if (($_ !~ /^Metalink: /) && ($_ !~ /error/i) && ($_ !~ /warn/i))
+</stripfile2>
+</verify>
+</testcase>
diff --git a/tests/data/test2022 b/tests/data/test2022
new file mode 100644
index 000000000..8cb0df520
--- /dev/null
+++ b/tests/data/test2022
@@ -0,0 +1,78 @@
+<testcase>
+<info>
+<keywords>
+Metalink
+HTTP
+HTTP GET
+</keywords>
+</info>
+
+#
+# Server-side
+<reply>
+<data nocheck="yes">
+HTTP/1.1 200 OK
+Date: Wed, 20 Jun 2012 14:49:00 GMT
+Server: test-server/fake
+Content-Length: 56
+Connection: close
+Content-Type: text/html
+Content-Disposition: filename=name2022; charset=funny; option=strange
+Funny-head: yesyes
+
+Data that should not be delivered from an HTTP resource
+</data>
+</reply>
+
+#
+# Client-side
+<client>
+<server>
+http
+</server>
+<features>
+file
+Metalink
+</features>
+ <name>
+Metalink local XML file, attempt UNIX questionable file name V
+ </name>
+<command option="no-output,no-include">
+--metalink file://%PWD/log/test2022.metalink
+</command>
+# local metalink file written before test command runs
+<file name="log/test2022.metalink">
+<?xml version="1.0" encoding="utf-8"?>
+<metalink version="3.0" xmlns="http://www.metalinker.org/">
+ <files>
+ <file name="log/download2022 |/dev/null">
+ <verification>
+ <hash type="sha256">c7d03debe90ca29492203ea921d76941fa98640cf3b744f2a16c9b58465eab82</hash>
+ </verification>
+ <resources maxconnections="1">
+ <url type="http" preference="90">http://%HOSTIP:%HTTPPORT/2022</url>
+ </resources>
+ </file>
+ </files>
+</metalink>
+</file>
+<postcheck>
+perl %SRCDIR/libtest/notexists.pl log/2022 log/name2022 log/download2022
+</postcheck>
+</client>
+
+#
+# Verify data after the test has been "shot"
+<verify>
+<file1 name="log/stdout2022">
+</file1>
+<file2 name="log/stderr2022">
+Metalink: parsing (file://%PWD/log/test2022.metalink) metalink/XML...
+Metalink: parsing (file://%PWD/log/test2022.metalink) WARNING (missing or invalid file name)
+Metalink: parsing (file://%PWD/log/test2022.metalink) FAILED
+</file2>
+<stripfile2>
+$_ = '' if (($_ !~ /^Metalink: /) && ($_ !~ /error/i) && ($_ !~ /warn/i))
+</stripfile2>
+</verify>
+</testcase>