]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
test2017 to test2022: more metalink tests
authorYang Tse <yangsita@gmail.com>
Fri, 29 Jun 2012 14:02:10 +0000 (16:02 +0200)
committerYang Tse <yangsita@gmail.com>
Fri, 29 Jun 2012 14:09:55 +0000 (16:09 +0200)
With this commit, checks done in previous test2017 are now done in test2018.

Whole range test2017 to test2022 DISABLED until configure is capable of
requiring a new-enough metalink library.

Don't try these without mentioned check in place!

tests/data/DISABLED
tests/data/test2017
tests/data/test2018 [new file with mode: 0644]
tests/data/test2019 [new file with mode: 0644]
tests/data/test2020 [new file with mode: 0644]
tests/data/test2021 [new file with mode: 0644]
tests/data/test2022 [new file with mode: 0644]

index f7402e60b02fcdcb4a828893aeabd429192aa2c0..77625d50707cee4b7964f7e639eedbded843f7da 100644 (file)
@@ -6,3 +6,8 @@
 1209
 1211
 2017
+2018
+2019
+2020
+2021
+2022
index f4312c47b756cb8824da32b4e1d2aa29a015caa1..52df14e3892faef1f526832c8fec479b266d7c00 100644 (file)
@@ -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 (file)
index 0000000..b76233e
--- /dev/null
@@ -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 (file)
index 0000000..cd09804
--- /dev/null
@@ -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 (file)
index 0000000..f89600b
--- /dev/null
@@ -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 (file)
index 0000000..133eb16
--- /dev/null
@@ -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 (file)
index 0000000..8cb0df5
--- /dev/null
@@ -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>