etcd: implement separate system tests

- add t13_etcd test directory
- etcd will be started for the unit tests and each system test
- etcd will load fixture DB export if requested by the test
- existing tests are reused for etcd testing
This commit is contained in:
André Roth
2024-04-21 14:33:15 +02:00
parent f10acb3df8
commit 640c202ee5
57 changed files with 571 additions and 63 deletions
+1
View File
@@ -0,0 +1 @@
../t06_publish/PublishDrop1Test_gold
+1
View File
@@ -0,0 +1 @@
../t06_publish/PublishDrop2Test_gold
+1
View File
@@ -0,0 +1 @@
../t06_publish/PublishDrop3Test_gold
+1
View File
@@ -0,0 +1 @@
../t06_publish/PublishDrop4Test_gold
+1
View File
@@ -0,0 +1 @@
../t06_publish/PublishDrop5Test_gold
+1
View File
@@ -0,0 +1 @@
../t06_publish/PublishDrop6Test_gold
+1
View File
@@ -0,0 +1 @@
../t06_publish/PublishDrop7Test_gold
+1
View File
@@ -0,0 +1 @@
../t06_publish/PublishDrop8Test_gold
+1
View File
@@ -0,0 +1 @@
../t06_publish/PublishDrop9Test_gold
+1
View File
@@ -0,0 +1 @@
../t06_publish/PublishList1Test_gold
+1
View File
@@ -0,0 +1 @@
../t06_publish/PublishList2Test_gold
+1
View File
@@ -0,0 +1 @@
../t06_publish/PublishList3Test_gold
+1
View File
@@ -0,0 +1 @@
../t06_publish/PublishList4Test_gold
+1
View File
@@ -0,0 +1 @@
../t06_publish/PublishList5Test_gold
+1
View File
@@ -0,0 +1 @@
../t04_mirror/UpdateMirror10Test_gold
+1
View File
@@ -0,0 +1 @@
../t04_mirror/UpdateMirror11Test_gold
+1
View File
@@ -0,0 +1 @@
../t04_mirror/UpdateMirror12Test_gold
+1
View File
@@ -0,0 +1 @@
../t04_mirror/UpdateMirror13Test_gold
+1
View File
@@ -0,0 +1 @@
../t04_mirror/UpdateMirror14Test_gold
+1
View File
@@ -0,0 +1 @@
../t04_mirror/UpdateMirror15Test_gold
+1
View File
@@ -0,0 +1 @@
../t04_mirror/UpdateMirror16Test_gold
+1
View File
@@ -0,0 +1 @@
../t04_mirror/UpdateMirror17Test_gold
+1
View File
@@ -0,0 +1 @@
../t04_mirror/UpdateMirror18Test_gold
+1
View File
@@ -0,0 +1 @@
../t04_mirror/UpdateMirror19Test_gold
+1
View File
@@ -0,0 +1 @@
../t04_mirror/UpdateMirror1Test_gold
+1
View File
@@ -0,0 +1 @@
../t04_mirror/UpdateMirror20Test_gold
+1
View File
@@ -0,0 +1 @@
../t04_mirror/UpdateMirror21Test_gold
+1
View File
@@ -0,0 +1 @@
../t04_mirror/UpdateMirror22Test_gold
+1
View File
@@ -0,0 +1 @@
../t04_mirror/UpdateMirror23Test_gold
+1
View File
@@ -0,0 +1 @@
../t04_mirror/UpdateMirror24Test_gold
+1
View File
@@ -0,0 +1 @@
../t04_mirror/UpdateMirror25Test_gold
+1
View File
@@ -0,0 +1 @@
../t04_mirror/UpdateMirror2Test_gold
+1
View File
@@ -0,0 +1 @@
../t04_mirror/UpdateMirror3Test_gold
+1
View File
@@ -0,0 +1 @@
../t04_mirror/UpdateMirror4Test_gold
+1
View File
@@ -0,0 +1 @@
../t04_mirror/UpdateMirror5Test_gold
+1
View File
@@ -0,0 +1 @@
../t04_mirror/UpdateMirror6Test_gold
+1
View File
@@ -0,0 +1 @@
../t04_mirror/UpdateMirror7Test_gold
+1
View File
@@ -0,0 +1 @@
../t04_mirror/UpdateMirror8Test_gold
+1
View File
@@ -0,0 +1 @@
../t04_mirror/UpdateMirror9Test_gold
+3
View File
@@ -0,0 +1,3 @@
"""
Testing aptly with etcd DB
"""
+12
View File
@@ -0,0 +1,12 @@
#!/bin/sh
# etcd test env
ETCD_VER=v3.5.2
DOWNLOAD_URL=https://storage.googleapis.com/etcd
if [ ! -e /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz ]; then
curl -L ${DOWNLOAD_URL}/${ETCD_VER}/etcd-${ETCD_VER}-linux-amd64.tar.gz -o /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz
fi
mkdir /srv/etcd
tar xf /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz -C /srv/etcd --strip-components=1
+234
View File
@@ -0,0 +1,234 @@
# reuse existing tests:
from t04_mirror.update import UpdateMirror1Test, \
UpdateMirror2Test, \
UpdateMirror3Test, \
UpdateMirror4Test, \
UpdateMirror5Test, \
UpdateMirror6Test, \
UpdateMirror7Test, \
UpdateMirror8Test, \
UpdateMirror9Test, \
UpdateMirror10Test, \
UpdateMirror11Test, \
UpdateMirror12Test, \
UpdateMirror13Test, \
UpdateMirror14Test, \
UpdateMirror17Test, \
UpdateMirror18Test, \
UpdateMirror19Test, \
UpdateMirror20Test, \
UpdateMirror21Test, \
UpdateMirror22Test, \
UpdateMirror23Test, \
UpdateMirror24Test, \
UpdateMirror25Test
TEST_IGNORE = ["UpdateMirror1Test",
"UpdateMirror2Test",
"UpdateMirror3Test",
"UpdateMirror4Test",
"UpdateMirror5Test",
"UpdateMirror6Test",
"UpdateMirror7Test",
"UpdateMirror8Test",
"UpdateMirror9Test",
"UpdateMirror10Test",
"UpdateMirror11Test",
"UpdateMirror12Test",
"UpdateMirror13Test",
"UpdateMirror14Test",
"UpdateMirror17Test",
"UpdateMirror18Test",
"UpdateMirror19Test",
"UpdateMirror20Test",
"UpdateMirror21Test",
"UpdateMirror22Test",
"UpdateMirror23Test",
"UpdateMirror24Test",
"UpdateMirror25Test"
]
class UpdateMirror1TestEtcd(UpdateMirror1Test):
"""
update mirrors: regular update
"""
databaseType = "etcd"
databaseUrl = "127.0.0.1:2379"
class UpdateMirror2TestEtcd(UpdateMirror2Test):
"""
update mirrors: no such repo
"""
databaseType = "etcd"
databaseUrl = "127.0.0.1:2379"
class UpdateMirror3TestEtcd(UpdateMirror3Test):
"""
update mirrors: wrong checksum in release file
"""
databaseType = "etcd"
databaseUrl = "127.0.0.1:2379"
class UpdateMirror4TestEtcd(UpdateMirror4Test):
"""
update mirrors: wrong checksum in release file, but ignore
"""
databaseType = "etcd"
databaseUrl = "127.0.0.1:2379"
class UpdateMirror5TestEtcd(UpdateMirror5Test):
"""
update mirrors: wrong checksum in package
"""
databaseType = "etcd"
databaseUrl = "127.0.0.1:2379"
class UpdateMirror6TestEtcd(UpdateMirror6Test):
"""
update mirrors: wrong checksum in package, but ignore
"""
databaseType = "etcd"
databaseUrl = "127.0.0.1:2379"
class UpdateMirror7TestEtcd(UpdateMirror7Test):
"""
update mirrors: flat repository
"""
databaseType = "etcd"
databaseUrl = "127.0.0.1:2379"
class UpdateMirror8TestEtcd(UpdateMirror8Test):
"""
update mirrors: with sources (already in pool)
"""
databaseType = "etcd"
databaseUrl = "127.0.0.1:2379"
class UpdateMirror9TestEtcd(UpdateMirror9Test):
"""
update mirrors: flat repository + sources
"""
databaseType = "etcd"
databaseUrl = "127.0.0.1:2379"
class UpdateMirror10TestEtcd(UpdateMirror10Test):
"""
update mirrors: filtered
"""
databaseType = "etcd"
databaseUrl = "127.0.0.1:2379"
class UpdateMirror11TestEtcd(UpdateMirror11Test):
"""
update mirrors: update over FTP
"""
databaseType = "etcd"
databaseUrl = "127.0.0.1:2379"
class UpdateMirror12TestEtcd(UpdateMirror12Test):
"""
update mirrors: update with udebs
"""
databaseType = "etcd"
databaseUrl = "127.0.0.1:2379"
class UpdateMirror13TestEtcd(UpdateMirror13Test):
"""
update mirrors: regular update with --skip-existing-packages option
"""
databaseType = "etcd"
databaseUrl = "127.0.0.1:2379"
class UpdateMirror14TestEtcd(UpdateMirror14Test):
"""
update mirrors: regular update with --skip-existing-packages option
"""
databaseType = "etcd"
databaseUrl = "127.0.0.1:2379"
class UpdateMirror17TestEtcd(UpdateMirror17Test):
"""
update mirrors: update for mirror but with file in pool on legacy MD5 location
"""
databaseType = "etcd"
databaseUrl = "127.0.0.1:2379"
class UpdateMirror18TestEtcd(UpdateMirror18Test):
"""
update mirrors: update for mirror but with file in pool on legacy MD5 location and disabled legacy path support
"""
databaseType = "etcd"
databaseUrl = "127.0.0.1:2379"
class UpdateMirror19TestEtcd(UpdateMirror19Test):
"""
update mirrors: correct matching of Release checksums
"""
databaseType = "etcd"
databaseUrl = "127.0.0.1:2379"
class UpdateMirror20TestEtcd(UpdateMirror20Test):
"""
update mirrors: flat repository (internal GPG implementation)
"""
databaseType = "etcd"
databaseUrl = "127.0.0.1:2379"
class UpdateMirror21TestEtcd(UpdateMirror21Test):
"""
update mirrors: correct matching of Release checksums (internal pgp implementation)
"""
databaseType = "etcd"
databaseUrl = "127.0.0.1:2379"
class UpdateMirror22TestEtcd(UpdateMirror22Test):
"""
update mirrors: SHA512 checksums only
"""
databaseType = "etcd"
databaseUrl = "127.0.0.1:2379"
class UpdateMirror23TestEtcd(UpdateMirror23Test):
"""
update mirrors: update with installer
"""
databaseType = "etcd"
databaseUrl = "127.0.0.1:2379"
class UpdateMirror24TestEtcd(UpdateMirror24Test):
"""
update mirrors: update with installer with separate gpg file
"""
databaseType = "etcd"
databaseUrl = "127.0.0.1:2379"
class UpdateMirror25TestEtcd(UpdateMirror25Test):
"""
update mirrors: mirror with / in distribution
"""
databaseType = "etcd"
databaseUrl = "127.0.0.1:2379"
+92
View File
@@ -0,0 +1,92 @@
# reuse existing tests:
from t06_publish.drop import PublishDrop1Test, \
PublishDrop2Test, \
PublishDrop3Test, \
PublishDrop4Test, \
PublishDrop5Test, \
PublishDrop6Test, \
PublishDrop7Test, \
PublishDrop8Test, \
PublishDrop9Test
TEST_IGNORE = ["PublishDrop1Test",
"PublishDrop2Test",
"PublishDrop3Test",
"PublishDrop4Test",
"PublishDrop5Test",
"PublishDrop6Test",
"PublishDrop7Test",
"PublishDrop8Test",
"PublishDrop9Test"]
class PublishDrop1TestEtcd(PublishDrop1Test):
"""
publish drop: existing snapshot
"""
databaseType = "etcd"
databaseUrl = "127.0.0.1:2379"
class PublishDrop2TestEtcd(PublishDrop2Test):
"""
publish drop: under prefix
"""
databaseType = "etcd"
databaseUrl = "127.0.0.1:2379"
class PublishDrop3TestEtcd(PublishDrop3Test):
"""
publish drop: drop one distribution
"""
databaseType = "etcd"
databaseUrl = "127.0.0.1:2379"
class PublishDrop4TestEtcd(PublishDrop4Test):
"""
publish drop: drop one of components
"""
databaseType = "etcd"
databaseUrl = "127.0.0.1:2379"
class PublishDrop5TestEtcd(PublishDrop5Test):
"""
publish drop: component cleanup
"""
databaseType = "etcd"
databaseUrl = "127.0.0.1:2379"
class PublishDrop6TestEtcd(PublishDrop6Test):
"""
publish drop: no publish
"""
databaseType = "etcd"
databaseUrl = "127.0.0.1:2379"
class PublishDrop7TestEtcd(PublishDrop7Test):
"""
publish drop: under prefix with trailing & leading slashes
"""
databaseType = "etcd"
databaseUrl = "127.0.0.1:2379"
class PublishDrop8TestEtcd(PublishDrop8Test):
"""
publish drop: skip component cleanup
"""
databaseType = "etcd"
databaseUrl = "127.0.0.1:2379"
class PublishDrop9TestEtcd(PublishDrop9Test):
"""
publish drop: component cleanup after first cleanup skipped
"""
databaseType = "etcd"
databaseUrl = "127.0.0.1:2379"
+48
View File
@@ -0,0 +1,48 @@
# reuse existing tests:
from t06_publish.list import PublishList1Test, \
PublishList2Test, \
PublishList3Test, \
PublishList4Test, \
PublishList5Test
TEST_IGNORE = ["PublishList1Test", "PublishList2Test", "PublishList3Test", "PublishList4Test", "PublishList5Test"]
class PublishList1TestEtcd(PublishList1Test):
"""
publish list: empty list
"""
databaseType = "etcd"
databaseUrl = "127.0.0.1:2379"
class PublishList2TestEtcd(PublishList2Test):
"""
publish list: several repos list
"""
databaseType = "etcd"
databaseUrl = "127.0.0.1:2379"
class PublishList3TestEtcd(PublishList3Test):
"""
publish list: several repos list, raw
"""
databaseType = "etcd"
databaseUrl = "127.0.0.1:2379"
class PublishList4TestEtcd(PublishList4Test):
"""
publish list json: empty list
"""
databaseType = "etcd"
databaseUrl = "127.0.0.1:2379"
class PublishList5TestEtcd(PublishList5Test):
"""
publish list json: several repos list
"""
databaseType = "etcd"
databaseUrl = "127.0.0.1:2379"
+23
View File
@@ -0,0 +1,23 @@
#!/bin/sh
if [ -e /tmp/etcd.pid ]; then
echo etcd already running, killing..
etcdpid=`cat /tmp/etcd.pid`
kill $etcdpid
sleep 2
fi
finish()
{
if [ -n "$etcdpid" ]; then
echo terminating etcd
kill $etcdpid
fi
}
trap finish INT
/srv/etcd/etcd --max-request-bytes '1073741824' --data-dir /tmp/etcd-data &
echo $! > /tmp/etcd.pid
etcdpid=`cat /tmp/etcd.pid`
wait $etcdpid
echo etcd terminated
+1
View File
@@ -0,0 +1 @@
../t04_mirror/test_release
+1
View File
@@ -0,0 +1 @@
../t04_mirror/test_release2