summaryrefslogtreecommitdiff
path: root/tests.as-root
diff options
context:
space:
mode:
authorJannis Pohlmann <jannis.pohlmann@codethink.co.uk>2012-09-06 16:39:31 +0000
committerSam Thursfield <sam.thursfield@codethink.co.uk>2012-09-07 18:14:44 +0100
commit1ba9418b7783f01b3dc6ab5c4c1562b225ababff (patch)
tree392a4e01b708dbc8690155c1aa3c3b18a30e9715 /tests.as-root
parentf55a1228d09f2661ef83ba5d0d12b0363a48412b (diff)
downloadmorph-1ba9418b7783f01b3dc6ab5c4c1562b225ababff.tar.gz
Add test to verify that 'morph build' creates the right build refs
Diffstat (limited to 'tests.as-root')
-rwxr-xr-xtests.as-root/building-creates-correct-temporary-refs.script63
-rw-r--r--tests.as-root/building-creates-correct-temporary-refs.stdout27
2 files changed, 90 insertions, 0 deletions
diff --git a/tests.as-root/building-creates-correct-temporary-refs.script b/tests.as-root/building-creates-correct-temporary-refs.script
new file mode 100755
index 00000000..87ba6db6
--- /dev/null
+++ b/tests.as-root/building-creates-correct-temporary-refs.script
@@ -0,0 +1,63 @@
+#!/bin/bash
+# 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.
+
+# Make sure "morph build" works anywhere in a workspace or system branch
+# and produces the same results every time.
+
+set -eu
+
+# Initialise the workspace.
+cd "$DATADIR/workspace"
+"$SRCDIR/scripts/test-morph" init
+
+# Create a new local system branch.
+"$SRCDIR/scripts/test-morph" branch test:morphs-repo branch1
+
+# Edit linux.
+"$SRCDIR/scripts/test-morph" edit linux-system linux-stratum linux
+
+# Fix the UUIDs being used for the temporary refs.
+git config -f "$DATADIR/workspace/branch1/.morph-system-branch/config" \
+ branch.uuid 123456789
+git config -f "$DATADIR/workspace/branch1/test:morphs-repo/.git/config" \
+ morph.uuid 987654321
+git config -f "$DATADIR/workspace/branch1/test:kernel-repo/.git/config" \
+ morph.uuid AABBCCDDE
+
+# Build the linux system from the system branch.
+cd "$DATADIR/workspace"
+"$SRCDIR/scripts/test-morph" build linux-system
+
+# Verify that the right temporary refs were created.
+echo "Refs of morphs repo after first build:"
+"$SRCDIR/scripts/run-git-in" "$DATADIR/workspace/branch1/test:morphs-repo" \
+ show-ref | cut -d' ' -f2
+echo "Refs of kernel repo after first build:"
+"$SRCDIR/scripts/run-git-in" "$DATADIR/workspace/branch1/test:kernel-repo" \
+ show-ref | cut -d' ' -f2
+echo
+
+# Change the build ref prefix and build again.
+cd "$DATADIR/workspace"
+"$SRCDIR/scripts/test-morph" --build-ref-prefix=newprefix build linux-system
+
+# Verify that the right temporary refs were created.
+echo "Refs of morphs repo after second build:"
+"$SRCDIR/scripts/run-git-in" "$DATADIR/workspace/branch1/test:morphs-repo" \
+ show-ref | cut -d' ' -f2
+echo "Refs of kernel repo after second build:"
+"$SRCDIR/scripts/run-git-in" "$DATADIR/workspace/branch1/test:kernel-repo" \
+ show-ref | cut -d' ' -f2
diff --git a/tests.as-root/building-creates-correct-temporary-refs.stdout b/tests.as-root/building-creates-correct-temporary-refs.stdout
new file mode 100644
index 00000000..3416028a
--- /dev/null
+++ b/tests.as-root/building-creates-correct-temporary-refs.stdout
@@ -0,0 +1,27 @@
+Refs of morphs repo after first build:
+refs/heads/baserock/builds/123456789/987654321
+refs/heads/branch1
+refs/heads/master
+refs/remotes/origin/HEAD
+refs/remotes/origin/master
+Refs of kernel repo after first build:
+refs/heads/baserock/builds/123456789/AABBCCDDE
+refs/heads/branch1
+refs/heads/master
+refs/remotes/origin/HEAD
+refs/remotes/origin/master
+
+Refs of morphs repo after second build:
+refs/heads/baserock/builds/123456789/987654321
+refs/heads/branch1
+refs/heads/master
+refs/heads/newprefix/123456789/987654321
+refs/remotes/origin/HEAD
+refs/remotes/origin/master
+Refs of kernel repo after second build:
+refs/heads/baserock/builds/123456789/AABBCCDDE
+refs/heads/branch1
+refs/heads/master
+refs/heads/newprefix/123456789/AABBCCDDE
+refs/remotes/origin/HEAD
+refs/remotes/origin/master