summaryrefslogtreecommitdiff
path: root/tests.as-root
diff options
context:
space:
mode:
authorRichard Maw <richard.maw@codethink.co.uk>2012-10-09 12:59:43 +0000
committerRichard Maw <richard.maw@codethink.co.uk>2012-10-09 13:17:25 +0000
commitf480d6a32f01e3febf81a82fb9053a9586da61b5 (patch)
tree58369d4a73a652145b691c8a4dd4adf730eb22d1 /tests.as-root
parentf0efec459795929f2d9bc79b52c77c63908f5ab0 (diff)
downloadmorph-f480d6a32f01e3febf81a82fb9053a9586da61b5.tar.gz
Add regression test for created tarballs
Diffstat (limited to 'tests.as-root')
-rwxr-xr-xtests.as-root/tarball-image-is-sensible.script35
-rwxr-xr-xtests.as-root/tarball-image-is-sensible.setup87
-rw-r--r--tests.as-root/tarball-image-is-sensible.stdout18
3 files changed, 140 insertions, 0 deletions
diff --git a/tests.as-root/tarball-image-is-sensible.script b/tests.as-root/tarball-image-is-sensible.script
new file mode 100755
index 00000000..d1245cbe
--- /dev/null
+++ b/tests.as-root/tarball-image-is-sensible.script
@@ -0,0 +1,35 @@
+#!/bin/sh
+#
+# A system kind of 'rootfs-tarball' should create a tarball containing
+# all the required files
+#
+# Copyright (C) 2012 Codethink Limited
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; version 2 of the License.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+set -eu
+
+source "$SRCDIR/scripts/fix-committer-info"
+
+tar=$("$SRCDIR/morph" \
+ --no-default-config --config="$DATADIR/morph.conf" --verbose \
+ build-morphology test:morphs-repo tarball-links hello-tarball 2>&1 |
+ grep "system hello-tarball-rootfs is cached at" |
+ sed -nre "s/^.*system hello-tarball-rootfs is cached at (\S+)$/\1/p")
+
+extracted="$DATADIR/extracted"
+mkdir -p "$extracted"
+cd "$extracted"
+tar -xf "$tar"
+find . -mindepth 1 | LC_ALL=C sort -u | xargs ls -dF
diff --git a/tests.as-root/tarball-image-is-sensible.setup b/tests.as-root/tarball-image-is-sensible.setup
new file mode 100755
index 00000000..f9aaed2c
--- /dev/null
+++ b/tests.as-root/tarball-image-is-sensible.setup
@@ -0,0 +1,87 @@
+#!/bin/bash
+#
+# Copyright (C) 2011, 2012 Codethink Limited
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; version 2 of the License.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+set -eu
+
+source "$SRCDIR/scripts/fix-committer-info"
+
+chunkrepo="$DATADIR/chunk-repo"
+cd "$chunkrepo"
+git checkout -b tarball-links
+cat >links.morph <<'EOF'
+{
+ "name": "links",
+ "kind": "chunk",
+ "build-system": "manual",
+ "install-commands": [
+ "mkdir -p \"$DESTDIR/bin\"",
+ "touch \"$DESTDIR/bin/true\"",
+ "cd \"$DESTDIR/bin\" && ln true true-hardlink",
+ "cd \"$DESTDIR/bin\" && ln -s true true-symlink"
+ ]
+}
+EOF
+git add links.morph
+git commit --quiet -m 'Add link adding chunk'
+
+morphsrepo="$DATADIR/morphs-repo"
+cd "$morphsrepo"
+git checkout -b tarball-links
+cat <<EOF > hello-tarball.morph
+{
+ "name": "hello-tarball",
+ "kind": "system",
+ "system-kind": "rootfs-tarball",
+ "arch": "$(uname -m)",
+ "strata": [
+ {
+ "morph": "link-stratum",
+ "repo": "test:morphs-repo",
+ "ref": "tarball-links"
+ },
+ {
+ "morph": "hello-stratum",
+ "repo": "test:morphs-repo",
+ "ref": "tarball-links"
+ },
+ {
+ "morph": "linux-stratum",
+ "repo": "test:morphs-repo",
+ "ref": "tarball-links"
+ }
+ ]
+}
+EOF
+git add hello-tarball.morph
+
+cat <<EOF > link-stratum.morph
+{
+ "name": "link-stratum",
+ "kind": "stratum",
+ "chunks": [
+ {
+ "name": "links",
+ "repo": "test:chunk-repo",
+ "ref": "tarball-links",
+ "build-depends": []
+ }
+ ]
+}
+EOF
+git add link-stratum.morph
+git commit --quiet -m "add morphs"
diff --git a/tests.as-root/tarball-image-is-sensible.stdout b/tests.as-root/tarball-image-is-sensible.stdout
new file mode 100644
index 00000000..34eb6752
--- /dev/null
+++ b/tests.as-root/tarball-image-is-sensible.stdout
@@ -0,0 +1,18 @@
+./baserock/
+./baserock/hello-stratum.meta
+./baserock/hello.meta
+./baserock/link-stratum.meta
+./baserock/links.meta
+./baserock/linux-stratum.meta
+./baserock/linux.meta
+./bin/
+./bin/hello*
+./bin/true
+./bin/true-hardlink
+./bin/true-symlink@
+./boot/
+./boot/System.map
+./boot/vmlinuz
+./etc/
+./etc/fstab
+./extlinux.conf