mirror of
https://github.com/systemd/systemd.git
synced 2024-11-01 17:51:22 +03:00
f5095a6af0
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.
129 lines
3.6 KiB
Bash
Executable File
129 lines
3.6 KiB
Bash
Executable File
#!/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
|