pactest: Add basic sandboxed download tests
Signed-off-by: Allan McRae <allan@archlinux.org>
This commit is contained in:
parent
5e9bff6216
commit
0b6df551b5
5 changed files with 60 additions and 78 deletions
|
@ -158,6 +158,8 @@ pacman_tests = [
|
|||
'tests/replace103.py',
|
||||
'tests/replace104.py',
|
||||
'tests/replace110.py',
|
||||
'tests/sandbox-download-upgrade.py',
|
||||
'tests/sandbox-download-basic.py',
|
||||
'tests/scriptlet001.py',
|
||||
'tests/scriptlet002.py',
|
||||
'tests/scriptlet-signal-handling.py',
|
||||
|
@ -337,7 +339,6 @@ pacman_tests = [
|
|||
'tests/xfercommand001.py',
|
||||
'tests/upgrade-download-404.py',
|
||||
'tests/upgrade-download-pkg-and-sig-with-filename.py',
|
||||
'tests/upgrade-download-pkg-and-sig-without-filename.py',
|
||||
'tests/upgrade-download-with-xfercommand.py',
|
||||
]
|
||||
|
||||
|
|
20
test/pacman/tests/sandbox-download-basic.py
Normal file
20
test/pacman/tests/sandbox-download-basic.py
Normal file
|
@ -0,0 +1,20 @@
|
|||
self.description = "--sync with DownloadUser set"
|
||||
self.require_capability("curl")
|
||||
|
||||
p1 = pmpkg('pkg1', '1.0-1')
|
||||
self.addpkg2db('sync', p1)
|
||||
|
||||
url = self.add_simple_http_server({
|
||||
'/{}'.format(p1.filename()): p1.makepkg_bytes(),
|
||||
})
|
||||
|
||||
self.option['DownloadUser'] = ['root']
|
||||
self.db['sync'].option['Server'] = [ url ]
|
||||
self.db['sync'].syncdir = False
|
||||
self.cachepkgs = False
|
||||
|
||||
self.args = '-S pkg1'
|
||||
|
||||
self.addrule("PACMAN_RETCODE=0")
|
||||
self.addrule("PKG_EXIST=pkg1")
|
||||
self.addrule("CACHE_EXISTS=pkg1|1.0-1")
|
17
test/pacman/tests/sandbox-download-upgrade.py
Normal file
17
test/pacman/tests/sandbox-download-upgrade.py
Normal file
|
@ -0,0 +1,17 @@
|
|||
self.description = "--upgrade with DownloadUser set"
|
||||
self.require_capability("curl")
|
||||
|
||||
self.option['DownloadUser'] = ['root']
|
||||
|
||||
p1 = pmpkg('pkg1', '1.0-1')
|
||||
self.addpkg(p1)
|
||||
|
||||
url = self.add_simple_http_server({
|
||||
'/{}'.format(p1.filename()): p1.makepkg_bytes(),
|
||||
})
|
||||
|
||||
self.args = '-U {url}/{}'.format(p1.filename(), url=url)
|
||||
|
||||
self.addrule("PACMAN_RETCODE=0")
|
||||
self.addrule("PKG_EXIST=pkg1")
|
||||
self.addrule("CACHE_EXISTS=pkg1|1.0-1")
|
|
@ -10,7 +10,7 @@ url = self.add_simple_http_server({
|
|||
'body': 'simple.sig',
|
||||
},
|
||||
|
||||
# content-disposition filename
|
||||
# content-disposition filename is now ignored
|
||||
'/cd.pkg': {
|
||||
'headers': { 'Content-Disposition': 'attachment; filename="cd-alt.pkg"' },
|
||||
'body': 'cd'
|
||||
|
@ -64,19 +64,26 @@ self.addrule('!PACMAN_RETCODE=0')
|
|||
self.addrule('CACHE_FCONTENTS=simple.pkg|simple')
|
||||
self.addrule('CACHE_FCONTENTS=simple.pkg.sig|simple.sig')
|
||||
|
||||
self.addrule('!CACHE_FEXISTS=cd.pkg')
|
||||
self.addrule('!CACHE_FEXISTS=cd.pkg.sig')
|
||||
self.addrule('CACHE_FCONTENTS=cd-alt.pkg|cd')
|
||||
self.addrule('CACHE_FCONTENTS=cd-alt.pkg.sig|cd.sig')
|
||||
self.addrule('!CACHE_FEXISTS=cd-alt.pkg')
|
||||
self.addrule('!CACHE_FEXISTS=cd-alt.pkg.sig')
|
||||
self.addrule('CACHE_FCONTENTS=cd.pkg|cd')
|
||||
self.addrule('CACHE_FCONTENTS=cd.pkg.sig|cd.sig')
|
||||
|
||||
self.addrule('!CACHE_FEXISTS=redir.pkg')
|
||||
self.addrule('CACHE_FCONTENTS=redir-dest.pkg|redir-dest')
|
||||
self.addrule('CACHE_FCONTENTS=redir-dest.pkg.sig|redir-dest.sig')
|
||||
self.addrule('!CACHE_FEXISTS=redir-dest.pkg')
|
||||
self.addrule('CACHE_FCONTENTS=redir.pkg|redir-dest')
|
||||
self.addrule('CACHE_FCONTENTS=redir.pkg.sig|redir-dest.sig')
|
||||
|
||||
self.addrule('!CACHE_FEXISTS=cd-redir.pkg')
|
||||
self.addrule('!CACHE_FEXISTS=cd-redir-dest.pkg')
|
||||
self.addrule('CACHE_FCONTENTS=cd-redir-dest-alt.pkg|cd-redir-dest')
|
||||
self.addrule('CACHE_FCONTENTS=cd-redir-dest-alt.pkg.sig|cd-redir-dest.sig')
|
||||
self.addrule('CACHE_FCONTENTS=redir-cdn.pkg|redir-dest')
|
||||
self.addrule('CACHE_FCONTENTS=redir-cdn.pkg.sig|redir-dest.sig')
|
||||
|
||||
self.addrule('CACHE_FCONTENTS=cdn-alt.pkg|cdn-alt')
|
||||
self.addrule('CACHE_FCONTENTS=cdn-alt.pkg.sig|cdn-alt.sig')
|
||||
self.addrule('!CACHE_FEXISTS=cd-redir-dest-alt.pkg')
|
||||
self.addrule('!CACHE_FEXISTS=cd-redir-dest-alt.pkg')
|
||||
self.addrule('CACHE_FCONTENTS=cd-redir.pkg|cd-redir-dest')
|
||||
self.addrule('CACHE_FCONTENTS=cd-redir.pkg.sig|cd-redir-dest.sig')
|
||||
|
||||
self.addrule('!CACHE_FEXISTS=cdn-3')
|
||||
self.addrule('!CACHE_FEXISTS=cdn-4')
|
||||
self.addrule('!CACHE_FEXISTS=cdn-alt.pkg')
|
||||
self.addrule('!CACHE_FEXISTS=cdn-alt.pkg.sig')
|
||||
self.addrule('CACHE_FCONTENTS=cd-redir-cdn.pkg|cdn-alt')
|
||||
self.addrule('CACHE_FCONTENTS=cd-redir-cdn.pkg.sig|cdn-alt.sig')
|
||||
|
|
|
@ -1,63 +0,0 @@
|
|||
self.description = 'download remote packages with -U without a URL filename'
|
||||
self.require_capability("gpg")
|
||||
self.require_capability("curl")
|
||||
|
||||
url = self.add_simple_http_server({
|
||||
# simple
|
||||
'/simple.pkg/': 'simple',
|
||||
'/simple.pkg/.sig': 'simple.sig',
|
||||
|
||||
# content-disposition filename
|
||||
'/cd.pkg/': {
|
||||
'headers': { 'Content-Disposition': 'attachment; filename="cd-alt.pkg"' },
|
||||
'body': 'cd'
|
||||
},
|
||||
'/cd.pkg/.sig': {
|
||||
'headers': { 'Content-Disposition': 'attachment; filename="cd-alt-bad.pkg.sig"' },
|
||||
'body': 'cd.sig'
|
||||
},
|
||||
|
||||
# redirect
|
||||
'/redir.pkg/': { 'code': 303, 'headers': { 'Location': '/redir-dest.pkg' } },
|
||||
'/redir-dest.pkg': 'redir-dest',
|
||||
'/redir-dest.pkg.sig': 'redir-dest.sig',
|
||||
|
||||
# content-disposition and redirect
|
||||
'/cd-redir.pkg/': { 'code': 303, 'headers': { 'Location': '/cd-redir-dest.pkg' } },
|
||||
'/cd-redir-dest.pkg': {
|
||||
'headers': { 'Content-Disposition': 'attachment; filename="cd-redir-dest-alt.pkg"' },
|
||||
'body': 'cd-redir-dest'
|
||||
},
|
||||
'/cd-redir-dest.pkg.sig': 'cd-redir-dest.sig',
|
||||
|
||||
# TODO: absolutely terrible hack to prevent pacman from attempting to
|
||||
# validate packages, which causes failure under --valgrind thanks to
|
||||
# a memory leak in gpgme that is too general for inclusion in valgrind.supp
|
||||
'/404': { 'code': 404 },
|
||||
|
||||
'': 'fallback',
|
||||
})
|
||||
|
||||
self.args = '-Uw {url}/simple.pkg/ {url}/cd.pkg/ {url}/redir.pkg/ {url}/cd-redir.pkg/ {url}/404'.format(url=url)
|
||||
|
||||
# packages/sigs are not valid, error is expected
|
||||
self.addrule('!PACMAN_RETCODE=0')
|
||||
|
||||
# TODO: use a predictable file name
|
||||
#self.addrule('CACHE_FCONTENTS=simple.pkg|simple')
|
||||
#self.addrule('CACHE_FCONTENTS=simple.pkg.sig|simple.sig')
|
||||
|
||||
self.addrule('!CACHE_FEXISTS=cd.pkg')
|
||||
self.addrule('CACHE_FCONTENTS=cd-alt.pkg|cd')
|
||||
self.addrule('CACHE_FCONTENTS=cd-alt.pkg.sig|cd.sig')
|
||||
|
||||
self.addrule('!CACHE_FEXISTS=redir.pkg')
|
||||
self.addrule('CACHE_FCONTENTS=redir-dest.pkg|redir-dest')
|
||||
self.addrule('CACHE_FCONTENTS=redir-dest.pkg.sig|redir-dest.sig')
|
||||
|
||||
self.addrule('!CACHE_FEXISTS=cd-redir.pkg')
|
||||
self.addrule('!CACHE_FEXISTS=cd-redir-dest.pkg')
|
||||
self.addrule('CACHE_FCONTENTS=cd-redir-dest-alt.pkg|cd-redir-dest')
|
||||
self.addrule('CACHE_FCONTENTS=cd-redir-dest-alt.pkg.sig|cd-redir-dest.sig')
|
||||
|
||||
self.addrule('!CACHE_FEXISTS=.sig')
|
Loading…
Add table
Reference in a new issue