mirror of
https://github.com/systemd/systemd-stable.git
synced 2025-03-06 12:58:22 +03:00
test: add simple test for importd
It tests importing and exporting, and a few other machinectl commands. It currently does not test pulling (i.e. http downloads), but we might want to add that later on.
This commit is contained in:
parent
d02bfa50f6
commit
f5095a6af0
1
test/TEST-25-IMPORT/Makefile
Symbolic link
1
test/TEST-25-IMPORT/Makefile
Symbolic link
@ -0,0 +1 @@
|
||||
../TEST-01-BASIC/Makefile
|
43
test/TEST-25-IMPORT/test.sh
Executable file
43
test/TEST-25-IMPORT/test.sh
Executable file
@ -0,0 +1,43 @@
|
||||
#!/bin/bash
|
||||
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
|
||||
# ex: ts=8 sw=4 sts=4 et filetype=sh
|
||||
set -e
|
||||
TEST_DESCRIPTION="test importd"
|
||||
|
||||
. $TEST_BASE_DIR/test-functions
|
||||
|
||||
test_setup() {
|
||||
create_empty_image
|
||||
mkdir -p $TESTDIR/root
|
||||
mount ${LOOPDEV}p1 $TESTDIR/root
|
||||
|
||||
(
|
||||
LOG_LEVEL=5
|
||||
eval $(udevadm info --export --query=env --name=${LOOPDEV}p2)
|
||||
|
||||
setup_basic_environment
|
||||
dracut_install dd gunzip mv tar diff
|
||||
|
||||
# setup the testsuite service
|
||||
cat >$initdir/etc/systemd/system/testsuite.service <<EOF
|
||||
[Unit]
|
||||
Description=Testsuite service
|
||||
|
||||
[Service]
|
||||
ExecStart=/testsuite.sh
|
||||
Type=oneshot
|
||||
StandardOutput=tty
|
||||
StandardError=tty
|
||||
NotifyAccess=all
|
||||
EOF
|
||||
cp testsuite.sh $initdir/
|
||||
|
||||
setup_testsuite
|
||||
) || return 1
|
||||
setup_nspawn_root
|
||||
|
||||
ddebug "umount $TESTDIR/root"
|
||||
umount $TESTDIR/root
|
||||
}
|
||||
|
||||
do_test "$@"
|
128
test/TEST-25-IMPORT/testsuite.sh
Executable file
128
test/TEST-25-IMPORT/testsuite.sh
Executable file
@ -0,0 +1,128 @@
|
||||
#!/bin/bash
|
||||
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
|
||||
# ex: ts=8 sw=4 sts=4 et filetype=sh
|
||||
set -ex
|
||||
set -o pipefail
|
||||
|
||||
export SYSTEMD_PAGER=cat
|
||||
|
||||
dd if=/dev/urandom of=/var/tmp/testimage.raw bs=$((1024*1024+7)) count=5
|
||||
|
||||
# Test import
|
||||
machinectl import-raw /var/tmp/testimage.raw
|
||||
machinectl image-status testimage
|
||||
test -f /var/lib/machines/testimage.raw
|
||||
cmp /var/tmp/testimage.raw /var/lib/machines/testimage.raw
|
||||
|
||||
# Test export
|
||||
machinectl export-raw testimage /var/tmp/testimage2.raw
|
||||
cmp /var/tmp/testimage.raw /var/tmp/testimage2.raw
|
||||
rm /var/tmp/testimage2.raw
|
||||
|
||||
# Test compressed export (gzip)
|
||||
machinectl export-raw testimage /var/tmp/testimage2.raw.gz
|
||||
gunzip /var/tmp/testimage2.raw.gz
|
||||
cmp /var/tmp/testimage.raw /var/tmp/testimage2.raw
|
||||
rm /var/tmp/testimage2.raw
|
||||
|
||||
# Test clone
|
||||
machinectl clone testimage testimage3
|
||||
test -f /var/lib/machines/testimage3.raw
|
||||
machinectl image-status testimage3
|
||||
test -f /var/lib/machines/testimage.raw
|
||||
machinectl image-status testimage
|
||||
cmp /var/tmp/testimage.raw /var/lib/machines/testimage.raw
|
||||
cmp /var/tmp/testimage.raw /var/lib/machines/testimage3.raw
|
||||
|
||||
# Test removal
|
||||
machinectl remove testimage
|
||||
! test -f /var/lib/machines/testimage.raw
|
||||
! machinectl image-status testimage
|
||||
|
||||
# Test export of clone
|
||||
machinectl export-raw testimage3 /var/tmp/testimage3.raw
|
||||
cmp /var/tmp/testimage.raw /var/tmp/testimage3.raw
|
||||
rm /var/tmp/testimage3.raw
|
||||
|
||||
# Test rename
|
||||
machinectl rename testimage3 testimage4
|
||||
test -f /var/lib/machines/testimage4.raw
|
||||
machinectl image-status testimage4
|
||||
! test -f /var/lib/machines/testimage3.raw
|
||||
! machinectl image-status testimage3
|
||||
cmp /var/tmp/testimage.raw /var/lib/machines/testimage4.raw
|
||||
|
||||
# Test export of rename
|
||||
machinectl export-raw testimage4 /var/tmp/testimage4.raw
|
||||
cmp /var/tmp/testimage.raw /var/tmp/testimage4.raw
|
||||
rm /var/tmp/testimage4.raw
|
||||
|
||||
# Test removal
|
||||
machinectl remove testimage4
|
||||
! test -f /var/lib/machines/testimage4.raw
|
||||
! machinectl image-status testimage4
|
||||
|
||||
# → And now, let's test directory trees ← #
|
||||
|
||||
# Set up a directory we can import
|
||||
mkdir /var/tmp/scratch
|
||||
mv /var/tmp/testimage.raw /var/tmp/scratch/
|
||||
touch /var/tmp/scratch/anotherfile
|
||||
mkdir /var/tmp/scratch/adirectory
|
||||
echo "piep" > /var/tmp/scratch/adirectory/athirdfile
|
||||
|
||||
# Test import-fs
|
||||
machinectl import-fs /var/tmp/scratch/
|
||||
test -d /var/lib/machines/scratch
|
||||
machinectl image-status scratch
|
||||
|
||||
# Test export-tar
|
||||
machinectl export-tar scratch /var/tmp/scratch.tar.gz
|
||||
test -f /var/tmp/scratch.tar.gz
|
||||
mkdir /var/tmp/extract
|
||||
(cd /var/tmp/extract ; tar xzf /var/tmp/scratch.tar.gz)
|
||||
diff -r /var/tmp/scratch/ /var/tmp/extract/
|
||||
rm -rf /var/tmp/extract
|
||||
|
||||
# Test import-tar
|
||||
machinectl import-tar /var/tmp/scratch.tar.gz scratch2
|
||||
test -d /var/lib/machines/scratch2
|
||||
machinectl image-status scratch2
|
||||
diff -r /var/tmp/scratch/ /var/lib/machines/scratch2
|
||||
|
||||
# Test removal
|
||||
machinectl remove scratch
|
||||
! test -f /var/lib/machines/scratch
|
||||
! machinectl image-status scratch
|
||||
|
||||
# Test clone
|
||||
machinectl clone scratch2 scratch3
|
||||
test -d /var/lib/machines/scratch2
|
||||
machinectl image-status scratch2
|
||||
test -d /var/lib/machines/scratch3
|
||||
machinectl image-status scratch3
|
||||
diff -r /var/tmp/scratch/ /var/lib/machines/scratch3
|
||||
|
||||
# Test removal
|
||||
machinectl remove scratch2
|
||||
! test -f /var/lib/machines/scratch2
|
||||
! machinectl image-status scratch2
|
||||
|
||||
# Test rename
|
||||
machinectl rename scratch3 scratch4
|
||||
test -d /var/lib/machines/scratch4
|
||||
machinectl image-status scratch4
|
||||
! test -f /var/lib/machines/scratch3
|
||||
! machinectl image-status scratch3
|
||||
diff -r /var/tmp/scratch/ /var/lib/machines/scratch4
|
||||
|
||||
# Test removal
|
||||
machinectl remove scratch4
|
||||
! test -f /var/lib/machines/scratch4
|
||||
! machinectl image-status scratch4
|
||||
|
||||
rm -rf /var/tmp/scratch
|
||||
|
||||
echo OK > /testok
|
||||
|
||||
exit 0
|
Loading…
x
Reference in New Issue
Block a user