diff options
-rwxr-xr-x | check | 16 | ||||
-rw-r--r-- | tests.as-root/lib | 36 | ||||
-rwxr-xr-x | tests.as-root/metadata-includes-morph-version.script | 53 | ||||
-rwxr-xr-x | tests.as-root/metadata-includes-morph-version.setup | 36 | ||||
-rwxr-xr-x | tests.as-root/metadata-includes-repo-alias.script | 49 | ||||
-rwxr-xr-x | tests.as-root/metadata-includes-repo-alias.setup | 36 | ||||
-rwxr-xr-x | tests.as-root/setup | 194 | ||||
-rw-r--r-- | tests.as-root/setup-build | 35 |
8 files changed, 0 insertions, 455 deletions
@@ -162,19 +162,3 @@ elif ! (python --version 2>&1 | grep -q '^Python 2\.[78]'); then else cmdtest tests.build fi - -# The as-root tests use YAML morphologies, so they require the PyYAML module. -if ! "$run_slow_cmdtests"; then - echo "NOT RUNNING tests.as-root" -elif [ $(whoami) != root ] || ! command -v mkfs.btrfs > /dev/null; then - echo "NOT RUNNING tests.as-root (no btrfs)" -elif ! python -c " -import morphlib, sys -if not morphlib.got_yaml: - sys.exit(1) -" > /dev/null 2>&1 -then - echo "NOT RUNNING tests.as-root (requires PyYAML)" -else - cmdtest tests.as-root -fi diff --git a/tests.as-root/lib b/tests.as-root/lib deleted file mode 100644 index d17d8e32..00000000 --- a/tests.as-root/lib +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/sh -# -# 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. - - -## Helper functions for as-root tests - -loopback_rootfs() { - # Find offset partition offset in a rootfs and mount it - ROOTFS="$1" - - PYTHONPATH="$SRCDIR" "$SRCDIR/scripts/sparse-gunzip" \ - <"$ROOTFS" >"$ROOTFS-unzipped" - - OFFSET=$(sfdisk -d "$ROOTFS-unzipped" | \ - grep -m 1 -o 'start=\s\+\([0-9]\+\)' | awk '{ print $2 }') - OFFSET=$(expr "$OFFSET" '*' 512) - - DEVICE=$(losetup --show -o "$OFFSET" -f "$ROOTFS-unzipped") - udevadm settle - - echo "$DEVICE" -} diff --git a/tests.as-root/metadata-includes-morph-version.script b/tests.as-root/metadata-includes-morph-version.script deleted file mode 100755 index 772d7d50..00000000 --- a/tests.as-root/metadata-includes-morph-version.script +++ /dev/null @@ -1,53 +0,0 @@ -#!/bin/sh -# -# Copyright (C) 2013 - 2014 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. - - -# All the metadata files in /baserock of a system contain morph's version -# information - -set -eu - -# Disable test on versions of Python before 2.7. -. "$SRCDIR/scripts/python-check" - -. "$SRCDIR/scripts/fix-committer-info" - -# get git version info -cd "$SRCDIR" -description="$(git describe --abbrev=40 --always \ - --dirty=-unreproducible --match=DO-NOT-MATCH-ANY-TAGS)" -commit="$(git rev-parse 'HEAD^{commit}')" -tree="$(git rev-parse 'HEAD^{tree}')" -ref="$(git rev-parse --symbolic-full-name 'HEAD')" - -tar=$("$SRCDIR/scripts/test-morph" --find-system-artifact \ - build-morphology test:morphs tarball hello-tarball) - -extracted="$DATADIR/extracted" -mkdir -p "$extracted" -tar -xf "$tar" -C "$extracted" -cd "$extracted/baserock" -for f in *.meta; do - # Check for git describe output - grep -q -F -e "$description" "$f" - # Check the Sha-1 commit is included - grep -q -F -e "$commit" "$f" - # Check the Sha-1 of the commit's tree is included - grep -q -F -e "$tree" "$f" - # Check the ref (e.g. branch) is included - grep -q -F -e "$ref" "$f" -done diff --git a/tests.as-root/metadata-includes-morph-version.setup b/tests.as-root/metadata-includes-morph-version.setup deleted file mode 100755 index e4557302..00000000 --- a/tests.as-root/metadata-includes-morph-version.setup +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2013-2014 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" - -morphsrepo="$DATADIR/morphs" -cd "$morphsrepo" -git checkout -b tarball -cat <<EOF > hello-tarball.morph -name: hello-tarball -kind: system -arch: $("$SRCDIR/scripts/test-morph" print-architecture) -strata: - - morph: hello-stratum - - morph: linux-stratum -EOF -git add hello-tarball.morph - -git commit --quiet -m "add tarball system" diff --git a/tests.as-root/metadata-includes-repo-alias.script b/tests.as-root/metadata-includes-repo-alias.script deleted file mode 100755 index 9e4a5d98..00000000 --- a/tests.as-root/metadata-includes-repo-alias.script +++ /dev/null @@ -1,49 +0,0 @@ -#!/bin/sh -# -# Copyright (C) 2013-2014 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. - - -# All the metadata files in /baserock of a system contain the repository -# alias they were built from. - -set -eu - -# Disable test on versions of Python before 2.7. -. "$SRCDIR/scripts/python-check" - -. "$SRCDIR/scripts/fix-committer-info" - -# get git version info -cd "$SRCDIR" - -tar=$("$SRCDIR/scripts/test-morph" --find-system-artifact \ - build-morphology test:morphs tarball hello-tarball) - -extracted="$DATADIR/extracted" -mkdir -p "$extracted" -tar -xf "$tar" -C "$extracted" -cd "$extracted/baserock" - -# Check for test:morphs in System and Stratum -#grep -q -F -e test:morphs hello-tarball.meta # tarball bug -grep -q -F -e test:morphs hello-stratum-runtime.meta -grep -q -F -e test:morphs linux-stratum-runtime.meta - -# Check for test:kernel-repo in linux -grep -q -F -e test:kernel-repo linux-misc.meta - -# Check for test:chunk-repo in hello -grep -q -F -e test:chunk-repo hello-bins.meta diff --git a/tests.as-root/metadata-includes-repo-alias.setup b/tests.as-root/metadata-includes-repo-alias.setup deleted file mode 100755 index e4557302..00000000 --- a/tests.as-root/metadata-includes-repo-alias.setup +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2013-2014 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" - -morphsrepo="$DATADIR/morphs" -cd "$morphsrepo" -git checkout -b tarball -cat <<EOF > hello-tarball.morph -name: hello-tarball -kind: system -arch: $("$SRCDIR/scripts/test-morph" print-architecture) -strata: - - morph: hello-stratum - - morph: linux-stratum -EOF -git add hello-tarball.morph - -git commit --quiet -m "add tarball system" diff --git a/tests.as-root/setup b/tests.as-root/setup deleted file mode 100755 index 1cf9dd04..00000000 --- a/tests.as-root/setup +++ /dev/null @@ -1,194 +0,0 @@ -#!/bin/bash -# -# Create git repositories for tests. The chunk repository will contain a -# simple "hello, world" C program, and two branches ("master", "farrokh"), -# with the master branch containing just a README. The two branches are there -# so that we can test building a branch that hasn't been checked out. -# The branches are different so that we know that if the wrong branch -# is uses, the build will fail. -# -# The stratum repository contains a single branch, "master", with a -# stratum and a system morphology that include the chunk above. -# -# Copyright (C) 2011, 2012, 2013, 2014 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" - -# The $DATADIR should be empty at the beginnig of each test. -find "$DATADIR" -mindepth 1 -delete - -# Create an empty directory to be used as a morph workspace -mkdir "$DATADIR/workspace" - -# Create chunk repository. - -chunkrepo="$DATADIR/chunk-repo" -mkdir "$chunkrepo" -cd "$chunkrepo" -git init --quiet - -cat <<EOF > README -This is a sample README. -EOF -git add README -git commit --quiet -m "add README" - -git checkout --quiet -b farrokh - -cat <<EOF > hello.c -#include <stdio.h> -int main(void) -{ - puts("hello, world"); - return 0; -} -EOF -git add hello.c - -cat <<EOF > hello.morph -name: hello -kind: chunk -build-system: dummy -build-commands: - - gcc -o hello hello.c -install-commands: - - install -d "\$DESTDIR"/etc - - install -d "\$DESTDIR"/bin - - install hello "\$DESTDIR"/bin/hello -EOF -git add hello.morph - -git commit --quiet -m "add a hello world program and morph" - -git checkout --quiet master - - -# Create tools repository, so there is an extra layer of build-depends -toolsrepo="$DATADIR/tools-repo" -mkdir -p "$toolsrepo" -cd "$toolsrepo" -git init --quiet -cat <<'EOF' >tools.morph -name: tools -kind: chunk -build-commands: - - echo 'echo dummy strace' >strace -install-commands: - - mkdir -p "$DESTDIR/bin" - - install strace "$DESTDIR/bin/strace" -EOF -git add tools.morph -git commit --quiet -m "add morphology" - -# Create morph repository. - -morphsrepo="$DATADIR/morphs" -mkdir "$morphsrepo" -cd "$morphsrepo" -git init --quiet - -cat <<EOF > hello-stratum.morph -name: hello-stratum -kind: stratum -chunks: - - name: hello - repo: test:chunk-repo - ref: farrokh - build-mode: test - build-depends: [] -EOF -git add hello-stratum.morph - -cat <<EOF > tools-stratum.morph -name: tools-stratum -kind: stratum -build-depends: - - morph: linux-stratum -chunks: - - name: tools - repo: test:tools-repo - ref: master - build-mode: test - build-depends: [] -EOF -git add tools-stratum.morph - -cat <<EOF > hello-system.morph -name: hello-system -kind: system -arch: `"$SRCDIR/scripts/test-morph" print-architecture` -strata: - - morph: hello-stratum -EOF -git add hello-system.morph - -cat <<EOF > linux-stratum.morph -name: linux-stratum -kind: stratum -build-depends: - - morph: hello-stratum -chunks: - - name: linux - repo: test:kernel-repo - ref: master - build-mode: test - build-depends: [] -EOF -git add linux-stratum.morph - -cat <<EOF > linux-system.morph -name: linux-system -kind: system -arch: `"$SRCDIR/scripts/test-morph" print-architecture` -strata: - - morph: hello-stratum - - morph: linux-stratum - - morph: tools-stratum -EOF -git add linux-system.morph - -git commit --quiet -m "add morphs" - -# Make a dummy kernel chunk. -mkdir "$DATADIR/kernel-repo" -cat <<EOF > "$DATADIR/kernel-repo/linux.morph" -name: linux -kind: chunk -install-commands: - - mkdir -p "\$DESTDIR/boot" - - touch "\$DESTDIR/extlinux.conf" - - touch "\$DESTDIR/boot/vmlinuz" - - touch "\$DESTDIR/boot/System.map" -EOF -"$SRCDIR/scripts/run-git-in" "$DATADIR/kernel-repo" init --quiet -"$SRCDIR/scripts/run-git-in" "$DATADIR/kernel-repo" add . -"$SRCDIR/scripts/run-git-in" "$DATADIR/kernel-repo" commit --quiet -m foo \ - > /dev/null - -# Create a morph configuration file. -cat <<EOF > "$DATADIR/morph.conf" -[config] -repo-alias = test=file://$DATADIR/#file://$DATADIR/ -cachedir = $DATADIR/cache -log = $DATADIR/morph.log -no-distcc = true -quiet = true -log = /tmp/morph.log -EOF - diff --git a/tests.as-root/setup-build b/tests.as-root/setup-build deleted file mode 100644 index 1f6f1c39..00000000 --- a/tests.as-root/setup-build +++ /dev/null @@ -1,35 +0,0 @@ -#!/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. - - -## Fixture for tests involving 'morph build' - -source "$SRCDIR/scripts/fix-committer-info" - -cd "$DATADIR/workspace" -"$SRCDIR/scripts/test-morph" init -"$SRCDIR/scripts/test-morph" branch test:morphs branch1 -"$SRCDIR/scripts/test-morph" edit linux-system linux-stratum linux - -# Fix UUID's in the checked out repos to make build branch names deterministic -git config -f "$DATADIR/workspace/branch1/.morph-system-branch/config" \ - branch.uuid 123456789 -git config -f "$DATADIR/workspace/branch1/test:morphs/.git/config" \ - morph.uuid 987654321 -git config -f "$DATADIR/workspace/branch1/test:kernel-repo/.git/config" \ - morph.uuid AABBCCDDE - |