From 0c340da0a29d2634be0ee90077746464823d0633 Mon Sep 17 00:00:00 2001 From: "Brian C. Lane" Date: Fri, 5 May 2023 11:17:49 -0700 Subject: [PATCH] test: Add metalink test for org.osbuild.librepo NOTE: The metalink xml file points to a repomd.xml file which does not exist. In practice librepo doesn't download this, it only uses the url to construct the mirror urls, so it is not present. These tests test downloading packages using metalink: * Using a single metalink repo * Using two metalink repos * A bad checksum (or file) from the download which is expected to fail * Two metalink paths with the first one returning a 404, expected to succeed with the 2nd metalink path. --- .../cases/404-metalink.json | 39 +++++++++++++++++++ .../cases/bad-metalink-checksum.json | 39 +++++++++++++++++++ .../cases/one-metalink.json | 25 ++++++++++++ .../cases/two-metalink.json | 39 +++++++++++++++++++ .../org.osbuild.librepo/data/Packages/a/a | 1 + .../org.osbuild.librepo/data/Packages/b/b | 1 + .../data/metalink/fedora.xml | 10 +++++ .../data/metalink/one404.xml | 11 ++++++ .../data/metalink/updates.xml | 10 +++++ .../data/updates/Packages/c/c | 1 + .../data/updates/Packages/d/d | 1 + 11 files changed, 177 insertions(+) create mode 100644 test/data/sources/org.osbuild.librepo/cases/404-metalink.json create mode 100644 test/data/sources/org.osbuild.librepo/cases/bad-metalink-checksum.json create mode 100644 test/data/sources/org.osbuild.librepo/cases/one-metalink.json create mode 100644 test/data/sources/org.osbuild.librepo/cases/two-metalink.json create mode 100644 test/data/sources/org.osbuild.librepo/data/Packages/a/a create mode 100644 test/data/sources/org.osbuild.librepo/data/Packages/b/b create mode 100644 test/data/sources/org.osbuild.librepo/data/metalink/fedora.xml create mode 100644 test/data/sources/org.osbuild.librepo/data/metalink/one404.xml create mode 100644 test/data/sources/org.osbuild.librepo/data/metalink/updates.xml create mode 100644 test/data/sources/org.osbuild.librepo/data/updates/Packages/c/c create mode 100644 test/data/sources/org.osbuild.librepo/data/updates/Packages/d/d diff --git a/test/data/sources/org.osbuild.librepo/cases/404-metalink.json b/test/data/sources/org.osbuild.librepo/cases/404-metalink.json new file mode 100644 index 00000000..aff17105 --- /dev/null +++ b/test/data/sources/org.osbuild.librepo/cases/404-metalink.json @@ -0,0 +1,39 @@ +{ + "expects": "success", + "org.osbuild.librepo": { + "items": { + "sha256:99fa21f1b67fea84dcb9b3c7f7e09a4f150095cfa7163a19d03972fd7c826f00": { + "path": "Packages/a/a", + "mirror": "0cde5945566ff3feb627eaa84e31223d2b8be54fb446222cded36fc5e5debcc2" + }, + "sha256:77e6ed0bed2d720e44d77643f66b05f0eb42b06379990e5ef658ef314c415827": { + "path": "Packages/b/b", + "mirror": "0cde5945566ff3feb627eaa84e31223d2b8be54fb446222cded36fc5e5debcc2" + }, + "sha256:e99efe314a66334179236e5fb6a2e6a6431daf6aeb516162e01517a0ac708252": { + "path": "Packages/c/c", + "mirror": "d68132295d14ad03bd676009c4fe8727f5040adfb91e20ac9919101d14ff4703" + }, + "sha256:354fe7c89ac014ed6479bf162fa7b9e8b37eddc7e46719ebd4349699d4e92c8c": { + "path": "Packages/d/d", + "mirror": "d68132295d14ad03bd676009c4fe8727f5040adfb91e20ac9919101d14ff4703" + } + }, + "options": { + "mirrors": { + "0cde5945566ff3feb627eaa84e31223d2b8be54fb446222cded36fc5e5debcc2": { + "url": "http://localhost/sources/org.osbuild.librepo/data/metalink/one404.xml", + "type": "metalink", + "fastest-mirror": true, + "name": "metalink" + }, + "d68132295d14ad03bd676009c4fe8727f5040adfb91e20ac9919101d14ff4703": { + "url": "http://localhost/sources/org.osbuild.librepo/data/metalink/updates.xml", + "type": "metalink", + "fastest-mirror": true, + "name": "metalink" + } + } + } + } +} diff --git a/test/data/sources/org.osbuild.librepo/cases/bad-metalink-checksum.json b/test/data/sources/org.osbuild.librepo/cases/bad-metalink-checksum.json new file mode 100644 index 00000000..c8c64418 --- /dev/null +++ b/test/data/sources/org.osbuild.librepo/cases/bad-metalink-checksum.json @@ -0,0 +1,39 @@ +{ + "expects": "error", + "org.osbuild.librepo": { + "items": { + "sha256:99fa21f1b67fea84dcb9b3c7f7e09a4f150095cfa7163a19d03972fd7c826f00": { + "path": "Packages/a/a", + "mirror": "0cde5945566ff3feb627eaa84e31223d2b8be54fb446222cded36fc5e5debcc2" + }, + "sha256:77e6ed0bed2d720e44d77643f66b05f0eb42b06379990e5ef658ef314c415827": { + "path": "Packages/b/b", + "mirror": "0cde5945566ff3feb627eaa84e31223d2b8be54fb446222cded36fc5e5debcc2" + }, + "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa": { + "path": "Packages/c/c", + "mirror": "d68132295d14ad03bd676009c4fe8727f5040adfb91e20ac9919101d14ff4703" + }, + "sha256:354fe7c89ac014ed6479bf162fa7b9e8b37eddc7e46719ebd4349699d4e92c8c": { + "path": "Packages/d/d", + "mirror": "d68132295d14ad03bd676009c4fe8727f5040adfb91e20ac9919101d14ff4703" + } + }, + "options": { + "mirrors": { + "0cde5945566ff3feb627eaa84e31223d2b8be54fb446222cded36fc5e5debcc2": { + "url": "http://localhost/sources/org.osbuild.librepo/data/metalink/fedora.xml", + "type": "metalink", + "fastest-mirror": true, + "name": "metalink" + }, + "d68132295d14ad03bd676009c4fe8727f5040adfb91e20ac9919101d14ff4703": { + "url": "http://localhost/sources/org.osbuild.librepo/data/metalink/updates.xml", + "type": "metalink", + "fastest-mirror": true, + "name": "metalink" + } + } + } + } +} diff --git a/test/data/sources/org.osbuild.librepo/cases/one-metalink.json b/test/data/sources/org.osbuild.librepo/cases/one-metalink.json new file mode 100644 index 00000000..80a9b1af --- /dev/null +++ b/test/data/sources/org.osbuild.librepo/cases/one-metalink.json @@ -0,0 +1,25 @@ +{ + "expects": "success", + "org.osbuild.librepo": { + "items": { + "sha256:99fa21f1b67fea84dcb9b3c7f7e09a4f150095cfa7163a19d03972fd7c826f00": { + "path": "Packages/a/a", + "mirror": "0cde5945566ff3feb627eaa84e31223d2b8be54fb446222cded36fc5e5debcc2" + }, + "sha256:77e6ed0bed2d720e44d77643f66b05f0eb42b06379990e5ef658ef314c415827": { + "path": "Packages/b/b", + "mirror": "0cde5945566ff3feb627eaa84e31223d2b8be54fb446222cded36fc5e5debcc2" + } + }, + "options": { + "mirrors": { + "0cde5945566ff3feb627eaa84e31223d2b8be54fb446222cded36fc5e5debcc2": { + "url": "http://localhost/sources/org.osbuild.librepo/data/metalink/fedora.xml", + "type": "metalink", + "fastest-mirror": true, + "name": "metalink" + } + } + } + } +} diff --git a/test/data/sources/org.osbuild.librepo/cases/two-metalink.json b/test/data/sources/org.osbuild.librepo/cases/two-metalink.json new file mode 100644 index 00000000..752ff607 --- /dev/null +++ b/test/data/sources/org.osbuild.librepo/cases/two-metalink.json @@ -0,0 +1,39 @@ +{ + "expects": "success", + "org.osbuild.librepo": { + "items": { + "sha256:99fa21f1b67fea84dcb9b3c7f7e09a4f150095cfa7163a19d03972fd7c826f00": { + "path": "Packages/a/a", + "mirror": "0cde5945566ff3feb627eaa84e31223d2b8be54fb446222cded36fc5e5debcc2" + }, + "sha256:77e6ed0bed2d720e44d77643f66b05f0eb42b06379990e5ef658ef314c415827": { + "path": "Packages/b/b", + "mirror": "0cde5945566ff3feb627eaa84e31223d2b8be54fb446222cded36fc5e5debcc2" + }, + "sha256:e99efe314a66334179236e5fb6a2e6a6431daf6aeb516162e01517a0ac708252": { + "path": "Packages/c/c", + "mirror": "d68132295d14ad03bd676009c4fe8727f5040adfb91e20ac9919101d14ff4703" + }, + "sha256:354fe7c89ac014ed6479bf162fa7b9e8b37eddc7e46719ebd4349699d4e92c8c": { + "path": "Packages/d/d", + "mirror": "d68132295d14ad03bd676009c4fe8727f5040adfb91e20ac9919101d14ff4703" + } + }, + "options": { + "mirrors": { + "0cde5945566ff3feb627eaa84e31223d2b8be54fb446222cded36fc5e5debcc2": { + "url": "http://localhost/sources/org.osbuild.librepo/data/metalink/fedora.xml", + "type": "metalink", + "fastest-mirror": true, + "name": "metalink" + }, + "d68132295d14ad03bd676009c4fe8727f5040adfb91e20ac9919101d14ff4703": { + "url": "http://localhost/sources/org.osbuild.librepo/data/metalink/updates.xml", + "type": "metalink", + "fastest-mirror": true, + "name": "metalink" + } + } + } + } +} diff --git a/test/data/sources/org.osbuild.librepo/data/Packages/a/a b/test/data/sources/org.osbuild.librepo/data/Packages/a/a new file mode 100644 index 00000000..3b7706ba --- /dev/null +++ b/test/data/sources/org.osbuild.librepo/data/Packages/a/a @@ -0,0 +1 @@ +DUMMY PACKAGE a diff --git a/test/data/sources/org.osbuild.librepo/data/Packages/b/b b/test/data/sources/org.osbuild.librepo/data/Packages/b/b new file mode 100644 index 00000000..f978a8da --- /dev/null +++ b/test/data/sources/org.osbuild.librepo/data/Packages/b/b @@ -0,0 +1 @@ +DUMMY PACKAGE b diff --git a/test/data/sources/org.osbuild.librepo/data/metalink/fedora.xml b/test/data/sources/org.osbuild.librepo/data/metalink/fedora.xml new file mode 100644 index 00000000..9aba3c65 --- /dev/null +++ b/test/data/sources/org.osbuild.librepo/data/metalink/fedora.xml @@ -0,0 +1,10 @@ + + + + + + http://localhost/sources/org.osbuild.librepo/data/repodata/repomd.xml + + + + diff --git a/test/data/sources/org.osbuild.librepo/data/metalink/one404.xml b/test/data/sources/org.osbuild.librepo/data/metalink/one404.xml new file mode 100644 index 00000000..c4a70083 --- /dev/null +++ b/test/data/sources/org.osbuild.librepo/data/metalink/one404.xml @@ -0,0 +1,11 @@ + + + + + + http://localhost/sources/org.osbuild.librepo/data/404/repodata/repomd.xml + http://localhost/sources/org.osbuild.librepo/data/repodata/repomd.xml + + + + diff --git a/test/data/sources/org.osbuild.librepo/data/metalink/updates.xml b/test/data/sources/org.osbuild.librepo/data/metalink/updates.xml new file mode 100644 index 00000000..17f0140e --- /dev/null +++ b/test/data/sources/org.osbuild.librepo/data/metalink/updates.xml @@ -0,0 +1,10 @@ + + + + + + http://localhost/sources/org.osbuild.librepo/data/updates/repodata/repomd.xml + + + + diff --git a/test/data/sources/org.osbuild.librepo/data/updates/Packages/c/c b/test/data/sources/org.osbuild.librepo/data/updates/Packages/c/c new file mode 100644 index 00000000..8f2929cf --- /dev/null +++ b/test/data/sources/org.osbuild.librepo/data/updates/Packages/c/c @@ -0,0 +1 @@ +DUMMY PACKAGE c diff --git a/test/data/sources/org.osbuild.librepo/data/updates/Packages/d/d b/test/data/sources/org.osbuild.librepo/data/updates/Packages/d/d new file mode 100644 index 00000000..2d226dd5 --- /dev/null +++ b/test/data/sources/org.osbuild.librepo/data/updates/Packages/d/d @@ -0,0 +1 @@ +DUMMY PACKAGE d