diff --git a/tests/data/DISABLED b/tests/data/DISABLED
index 5a0f2bf95d..9da02ea8f3 100644
--- a/tests/data/DISABLED
+++ b/tests/data/DISABLED
@@ -5,3 +5,4 @@
594
1209
1211
+2010
diff --git a/tests/data/Makefile.am b/tests/data/Makefile.am
index 6f098ba97f..5dbc2cba9f 100644
--- a/tests/data/Makefile.am
+++ b/tests/data/Makefile.am
@@ -92,7 +92,8 @@ test1371 test1372 test1373 test1374 test1375 test1376 test1377 test1378 \
test1379 test1380 test1381 test1382 test1383 test1384 test1385 test1386 \
test1387 test1388 test1389 test1390 test1391 test1392 test1393 \
test1400 test1401 test1402 test1403 test1404 test1405 test1406 test1407 \
-test2000 test2001 test2002 test2003 test2004 test2005
+test2000 test2001 test2002 test2003 test2004 test2005 test2006 test2007 \
+test2008 test2009 test2010 test2011
EXTRA_DIST = $(TESTCASES) DISABLED
diff --git a/tests/data/test2006 b/tests/data/test2006
new file mode 100644
index 0000000000..4ad4c57987
--- /dev/null
+++ b/tests/data/test2006
@@ -0,0 +1,109 @@
+
+
+
+Metalink
+HTTP
+HTTP GET
+
+
+
+#
+# Server-side
+
+
+HTTP/1.1 200 OK
+Date: Thu, 21 Jun 2012 14:49:01 GMT
+Server: test-server/fake
+Content-Length: 42
+Connection: close
+Content-Type: text/html
+Content-Disposition: filename=name2006; charset=funny; option=strange
+Funny-head: yesyes
+
+Some data delivered from an HTTP resource
+
+
+
+#
+# Client-side
+
+# This relies on the debug feature to allow us to set directory to store the
+# -O output in, using the CURL_TESTDIR variable. This test might use it upon
+# failure only, successful execution won't actually use it.
+
+debug
+file
+Metalink
+
+
+http
+
+
+Metalink local XML file, HTTP resource, using -O -D file
+
+
+CURL_TESTDIR=%PWD/log
+
+
+--metalink file://%PWD/log/test2006.metalink -O -D log/heads2006
+
+# local metalink file written before test command runs
+
+
+
+
+
+
+ we-only-check-the-strongest-hash-provided
+ 319cb6be756734b7ff689628ca3265580cdae6a0e38f42d4ac612ff4fba143b0
+
+
+ http://%HOSTIP:%HTTPPORT/2006
+
+
+
+
+
+
+perl %SRCDIR/libtest/notexists.pl log/2006 log/name2006
+
+
+
+#
+# Verify data after the test has been "shot"
+
+
+^User-Agent:.*
+
+
+GET /2006 HTTP/1.1
+Host: %HOSTIP:%HTTPPORT
+Accept: */*
+
+
+
+Some data delivered from an HTTP resource
+
+
+HTTP/1.1 200 OK
+Date: Thu, 21 Jun 2012 14:49:01 GMT
+Server: test-server/fake
+Content-Length: 42
+Connection: close
+Content-Type: text/html
+Content-Disposition: filename=name2006; charset=funny; option=strange
+Funny-head: yesyes
+
+
+
+
+
+Metalink: Metalink XML file was parsed successfully
+Metalink: Validating sha-256 checksum (This may take some time)...
+Metalink: log/download2006: OK
+
+
+$_ = '' if ($_ !~ /^Metalink: /)
+
+
+
diff --git a/tests/data/test2007 b/tests/data/test2007
new file mode 100644
index 0000000000..987e71e397
--- /dev/null
+++ b/tests/data/test2007
@@ -0,0 +1,110 @@
+
+
+
+Metalink
+HTTP
+HTTP GET
+-J
+
+
+
+#
+# Server-side
+
+
+HTTP/1.1 200 OK
+Date: Thu, 21 Jun 2012 14:50:02 GMT
+Server: test-server/fake
+Content-Length: 42
+Connection: close
+Content-Type: text/html
+Content-Disposition: filename=name2007; charset=funny; option=strange
+Funny-head: yesyes
+
+Something delivered from an HTTP resource
+
+
+
+#
+# Client-side
+
+# This relies on the debug feature to allow us to set directory to store the
+# -O and -J output in, using the CURL_TESTDIR variable. This test might use
+# it upon failure only, successful execution won't actually use it.
+
+debug
+file
+Metalink
+
+
+http
+
+
+Metalink local XML file, HTTP resource, using -O -J -D file
+
+
+CURL_TESTDIR=%PWD/log
+
+
+--metalink file://%PWD/log/test2007.metalink -J -O -D log/heads2007
+
+# local metalink file written before test command runs
+
+
+
+
+
+
+ we-only-check-the-strongest-hash-provided
+ 52899e30f80e3490632d505653204e1fb5b02bda141048704ce9a0ed00b8a3f5
+
+
+ http://%HOSTIP:%HTTPPORT/2007
+
+
+
+
+
+
+perl %SRCDIR/libtest/notexists.pl log/2007 log/name2007
+
+
+
+#
+# Verify data after the test has been "shot"
+
+
+^User-Agent:.*
+
+
+GET /2007 HTTP/1.1
+Host: %HOSTIP:%HTTPPORT
+Accept: */*
+
+
+
+Something delivered from an HTTP resource
+
+
+HTTP/1.1 200 OK
+Date: Thu, 21 Jun 2012 14:50:02 GMT
+Server: test-server/fake
+Content-Length: 42
+Connection: close
+Content-Type: text/html
+Content-Disposition: filename=name2007; charset=funny; option=strange
+Funny-head: yesyes
+
+
+
+
+
+Metalink: Metalink XML file was parsed successfully
+Metalink: Validating sha-256 checksum (This may take some time)...
+Metalink: log/download2007: OK
+
+
+$_ = '' if ($_ !~ /^Metalink: /)
+
+
+
diff --git a/tests/data/test2008 b/tests/data/test2008
new file mode 100644
index 0000000000..057808a24e
--- /dev/null
+++ b/tests/data/test2008
@@ -0,0 +1,102 @@
+
+
+
+Metalink
+HTTP
+HTTP GET
+
+
+
+#
+# Server-side
+
+
+HTTP/1.1 200 OK
+Date: Thu, 21 Jun 2012 15:23:48 GMT
+Server: test-server/fake
+Content-Length: 43
+Connection: close
+Content-Type: text/html
+Content-Disposition: filename=name2008; charset=funny; option=strange
+Funny-head: yesyes
+
+Some stuff delivered from an HTTP resource
+
+
+
+#
+# Client-side
+
+
+file
+Metalink
+
+
+http
+
+
+Metalink local XML file, HTTP resource, using -o fname -D file
+
+
+--metalink file://%PWD/log/test2008.metalink -o log/outfile2008 -D log/heads2008
+
+# local metalink file written before test command runs
+
+
+
+
+
+
+ we-only-check-the-strongest-hash-provided
+ 711b1b566b536c5baae9b36f2f5c1830a7c8ff126d1afa2febc5b59f8d0aab54
+
+
+ http://%HOSTIP:%HTTPPORT/2008
+
+
+
+
+
+
+perl %SRCDIR/libtest/notexists.pl log/2008 log/name2008 log/outfile2008
+
+
+
+#
+# Verify data after the test has been "shot"
+
+
+^User-Agent:.*
+
+
+GET /2008 HTTP/1.1
+Host: %HOSTIP:%HTTPPORT
+Accept: */*
+
+
+
+Some stuff delivered from an HTTP resource
+
+
+HTTP/1.1 200 OK
+Date: Thu, 21 Jun 2012 15:23:48 GMT
+Server: test-server/fake
+Content-Length: 43
+Connection: close
+Content-Type: text/html
+Content-Disposition: filename=name2008; charset=funny; option=strange
+Funny-head: yesyes
+
+
+
+
+
+Metalink: Metalink XML file was parsed successfully
+Metalink: Validating sha-256 checksum (This may take some time)...
+Metalink: log/download2008: OK
+
+
+$_ = '' if ($_ !~ /^Metalink: /)
+
+
+
diff --git a/tests/data/test2009 b/tests/data/test2009
new file mode 100644
index 0000000000..8e25039dc3
--- /dev/null
+++ b/tests/data/test2009
@@ -0,0 +1,103 @@
+
+
+
+Metalink
+HTTP
+HTTP GET
+-J
+
+
+
+#
+# Server-side
+
+
+HTTP/1.1 200 OK
+Date: Thu, 21 Jun 2012 16:27:17 GMT
+Server: test-server/fake
+Content-Length: 46
+Connection: close
+Content-Type: text/html
+Content-Disposition: filename=name2009; charset=funny; option=strange
+Funny-head: yesyes
+
+Some contents delivered from an HTTP resource
+
+
+
+#
+# Client-side
+
+
+file
+Metalink
+
+
+http
+
+
+Metalink local XML file, HTTP resource, using -o fname -J -D file
+
+
+--metalink file://%PWD/log/test2009.metalink -J -o log/outfile2009 -D log/heads2009
+
+# local metalink file written before test command runs
+
+
+
+
+
+
+ we-only-check-the-strongest-hash-provided
+ e4c5b83384ba7d5f8e201d61747a14f29baacd7dfadce0fbd56661db4bba72b2
+
+
+ http://%HOSTIP:%HTTPPORT/2009
+
+
+
+
+
+
+perl %SRCDIR/libtest/notexists.pl log/2009 log/name2009 log/outfile2009
+
+
+
+#
+# Verify data after the test has been "shot"
+
+
+^User-Agent:.*
+
+
+GET /2009 HTTP/1.1
+Host: %HOSTIP:%HTTPPORT
+Accept: */*
+
+
+
+Some contents delivered from an HTTP resource
+
+
+HTTP/1.1 200 OK
+Date: Thu, 21 Jun 2012 16:27:17 GMT
+Server: test-server/fake
+Content-Length: 46
+Connection: close
+Content-Type: text/html
+Content-Disposition: filename=name2009; charset=funny; option=strange
+Funny-head: yesyes
+
+
+
+
+
+Metalink: Metalink XML file was parsed successfully
+Metalink: Validating sha-256 checksum (This may take some time)...
+Metalink: log/download2009: OK
+
+
+$_ = '' if ($_ !~ /^Metalink: /)
+
+
+
diff --git a/tests/data/test2010 b/tests/data/test2010
new file mode 100644
index 0000000000..7a0dc76a57
--- /dev/null
+++ b/tests/data/test2010
@@ -0,0 +1,102 @@
+
+
+
+Metalink
+HTTP
+HTTP GET
+
+
+
+#
+# Server-side
+
+
+HTTP/1.1 200 OK
+Date: Thu, 21 Jun 2012 17:37:27 GMT
+Server: test-server/fake
+Content-Length: 41
+Connection: close
+Content-Type: text/html
+Content-Disposition: filename=name2010; charset=funny; option=strange
+Funny-head: yesyes
+
+Contents delivered from an HTTP resource
+
+
+
+#
+# Client-side
+
+
+file
+Metalink
+
+
+http
+
+
+Metalink local XML file, HTTP resource, using -o fname -i -D file
+
+
+--metalink file://%PWD/log/test2010.metalink -i -o log/outfile2010 -D log/heads2010
+
+# local metalink file written before test command runs
+
+
+
+
+
+
+ we-only-check-the-strongest-hash-provided
+ 6b6d97e5688bc46d75da9236631d8e7f2e5b0991941a95a0cc0533c05dcd07e2
+
+
+ http://%HOSTIP:%HTTPPORT/2010
+
+
+
+
+
+
+perl %SRCDIR/libtest/notexists.pl log/2010 log/name2010 log/outfile2010
+
+
+
+#
+# Verify data after the test has been "shot"
+
+
+^User-Agent:.*
+
+
+GET /2010 HTTP/1.1
+Host: %HOSTIP:%HTTPPORT
+Accept: */*
+
+
+
+Contents delivered from an HTTP resource
+
+
+HTTP/1.1 200 OK
+Date: Thu, 21 Jun 2012 17:37:27 GMT
+Server: test-server/fake
+Content-Length: 41
+Connection: close
+Content-Type: text/html
+Content-Disposition: filename=name2010; charset=funny; option=strange
+Funny-head: yesyes
+
+
+
+
+
+Metalink: Metalink XML file was parsed successfully
+Metalink: Validating sha-256 checksum (This may take some time)...
+Metalink: log/download2010: OK
+
+
+$_ = '' if ($_ !~ /^Metalink: /)
+
+
+
diff --git a/tests/data/test2011 b/tests/data/test2011
new file mode 100644
index 0000000000..db355f57fc
--- /dev/null
+++ b/tests/data/test2011
@@ -0,0 +1,90 @@
+
+
+
+Metalink
+HTTP
+HTTP GET
+
+
+
+#
+# Server-side
+
+
+HTTP/1.1 200 OK
+Date: Wed, 20 Jun 2012 14:49:00 GMT
+Server: test-server/fake
+Content-Length: 37
+Connection: close
+Content-Type: text/html
+Content-Disposition: filename=name2011; charset=funny; option=strange
+Funny-head: yesyes
+
+Data delivered from an HTTP resource
+
+
+
+#
+# Client-side
+
+
+http
+
+
+file
+Metalink
+
+
+Metalink local XML file, HTTP resource, hash mismatch
+
+
+--metalink file://%PWD/log/test2011.metalink
+
+# local metalink file written before test command runs
+
+
+
+
+
+
+ badbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadb
+
+
+ http://%HOSTIP:%HTTPPORT/2011
+
+
+
+
+
+
+perl %SRCDIR/libtest/notexists.pl log/2011 log/name2011
+
+
+
+#
+# Verify data after the test has been "shot"
+
+
+^User-Agent:.*
+
+
+GET /2011 HTTP/1.1
+Host: %HOSTIP:%HTTPPORT
+Accept: */*
+
+
+
+Data delivered from an HTTP resource
+
+
+
+
+Metalink: Metalink XML file was parsed successfully
+Metalink: Validating sha-256 checksum (This may take some time)...
+Metalink: log/download2011: FAILED
+
+
+$_ = '' if ($_ !~ /^Metalink: /)
+
+
+