diff options
author | Richard Maw <richard.maw@codethink.co.uk> | 2012-11-13 15:45:40 +0000 |
---|---|---|
committer | Richard Maw <richard.maw@codethink.co.uk> | 2012-11-13 16:15:04 +0000 |
commit | 75453f4ce61e6ad9e44b39c3681b5ede133af447 (patch) | |
tree | 0197190e5cbacd76efd08c464a807a78a2fbf08e | |
parent | 2ac6f661130322e63b8d2737145ea11d445aaa79 (diff) | |
download | morph-75453f4ce61e6ad9e44b39c3681b5ede133af447.tar.gz |
Consolidate checks for python version
Most of the bespoke logic for the version check is unnecessary,
since the output to display can be easily inferred from the filename.
This fixes some test failures where the version check would cat a
file to fake the output, but fail because the file was removed.
19 files changed, 56 insertions, 90 deletions
diff --git a/scripts/python-check b/scripts/python-check new file mode 100644 index 00000000..6b79897f --- /dev/null +++ b/scripts/python-check @@ -0,0 +1,36 @@ +#!/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. + +# When sourced by scripts, if the python version is too old +# fake the output and exit. + +if ! python --version 2>&1 | grep '^Python 2\.[78]' > /dev/null +then + outpath="$(dirname "$0")/$(basename "$0" .script).stdout" + errpath="$(dirname "$0")/$(basename "$0" .script).stderr" + exitpath="$(dirname "$0")/$(basename "$0" .script).exit" + if [ -r "$outpath" ]; then + cat "$outpath" + fi + if [ -r "$errpath" ]; then + cat "$errpath" >&2 + fi + if [ -r "$exitpath" ]; then + exit "$(cat "$exitpath")" + else + exit 0 + fi +fi diff --git a/tests.as-root/build-with-external-strata.script b/tests.as-root/build-with-external-strata.script index affb28f5..6bd14c10 100755 --- a/tests.as-root/build-with-external-strata.script +++ b/tests.as-root/build-with-external-strata.script @@ -19,11 +19,7 @@ set -eu # Disable test on versions of Python before 2.7. -if ! python --version 2>&1 | grep '^Python 2\.[78]' > /dev/null -then - cat "$SRCDIR/tests.as-root/build-with-external-strata.stdout" - exit 0 -fi +. "$SRCDIR/scripts/python-check" . "$SRCDIR/scripts/setup-3rd-party-strata" diff --git a/tests.as-root/build-with-push.script b/tests.as-root/build-with-push.script index 1c3fb3fd..554edaaa 100755 --- a/tests.as-root/build-with-push.script +++ b/tests.as-root/build-with-push.script @@ -20,11 +20,7 @@ set -eu # Disable test on versions of Python before 2.7. -if ! python --version 2>&1 | grep '^Python 2\.[78]' > /dev/null -then - cat "$SRCDIR/tests.as-root/build-with-push.stdout" - exit 0 -fi +source "$SRCDIR/scripts/python-check" source "$SRCDIR/tests.as-root/setup-build" diff --git a/tests.as-root/building-a-system-branch-multiple-times-doesnt-generate-new-artifacts.script b/tests.as-root/building-a-system-branch-multiple-times-doesnt-generate-new-artifacts.script index 9ccc3dee..bf8ecf71 100755 --- a/tests.as-root/building-a-system-branch-multiple-times-doesnt-generate-new-artifacts.script +++ b/tests.as-root/building-a-system-branch-multiple-times-doesnt-generate-new-artifacts.script @@ -20,12 +20,7 @@ set -eu # Disable test on versions of Python before 2.7. -if ! python --version 2>&1 | grep '^Python 2\.[78]' > /dev/null -then - name=building-a-system-branch-multiple-times-doesnt-generate-new-artifacts - cat "$SRCDIR/tests.as-root/$name.stdout" - exit 0 -fi +source "$SRCDIR/scripts/python-check" source "$SRCDIR/tests.as-root/setup-build" diff --git a/tests.as-root/building-a-system-branch-picks-up-uncommitted-changes.script b/tests.as-root/building-a-system-branch-picks-up-uncommitted-changes.script index 642093dc..65c25c73 100755 --- a/tests.as-root/building-a-system-branch-picks-up-uncommitted-changes.script +++ b/tests.as-root/building-a-system-branch-picks-up-uncommitted-changes.script @@ -20,12 +20,7 @@ set -eu # Disable test on versions of Python before 2.7. -if ! python --version 2>&1 | grep '^Python 2\.[78]' > /dev/null -then - name="building-a-system-branch-picks-up-uncommitted-changes" - cat "$SRCDIR/tests.as-root/$name.stdout" - exit 0 -fi +source "$SRCDIR/scripts/python-check" source "$SRCDIR/tests.as-root/setup-build" diff --git a/tests.as-root/building-a-system-branch-works-anywhere.script b/tests.as-root/building-a-system-branch-works-anywhere.script index 2bba83dc..e79fa167 100755 --- a/tests.as-root/building-a-system-branch-works-anywhere.script +++ b/tests.as-root/building-a-system-branch-works-anywhere.script @@ -20,11 +20,7 @@ set -eu # Disable test on versions of Python before 2.7. -if ! python --version 2>&1 | grep '^Python 2\.[78]' > /dev/null -then - cat "$SRCDIR/tests.as-root/building-a-system-branch-works-anywhere.stdout" - exit 0 -fi +source "$SRCDIR/scripts/python-check" source "$SRCDIR/tests.as-root/setup-build" diff --git a/tests.as-root/rootfs-tarball-builds-rootfs-and-kernel.script b/tests.as-root/rootfs-tarball-builds-rootfs-and-kernel.script index fea92d65..95e7a504 100755 --- a/tests.as-root/rootfs-tarball-builds-rootfs-and-kernel.script +++ b/tests.as-root/rootfs-tarball-builds-rootfs-and-kernel.script @@ -20,9 +20,7 @@ set -eu -case $(python --version 2>&1) in - "Python 2.6"*) exit 0 ;; -esac +. "$SRCDIR/scripts/python-check" cache="$DATADIR/cache/artifacts" kernelrepo="$DATADIR/kernel-repo" diff --git a/tests.as-root/tarball-image-is-sensible.script b/tests.as-root/tarball-image-is-sensible.script index 412d27e0..035a13c7 100755 --- a/tests.as-root/tarball-image-is-sensible.script +++ b/tests.as-root/tarball-image-is-sensible.script @@ -20,9 +20,7 @@ set -eu -case $(python --version 2>&1) in - "Python 2.6"*) exit 0 ;; -esac +. "$SRCDIR/scripts/python-check" . "$SRCDIR/scripts/fix-committer-info" diff --git a/tests.branching/ambiguous-refs.script b/tests.branching/ambiguous-refs.script index 9da776fd..3b2ec5e8 100755 --- a/tests.branching/ambiguous-refs.script +++ b/tests.branching/ambiguous-refs.script @@ -20,13 +20,10 @@ set -eu -. "$SRCDIR/scripts/fix-committer-info" - # Disable test on versions of Python before 2.7. -if ! python --version 2>&1 | grep '^Python 2\.[78]' > /dev/null -then - exit 0 -fi +. "$SRCDIR/scripts/python-check" + +. "$SRCDIR/scripts/fix-committer-info" cd "$DATADIR/morphs" git mv hello-stratum.morph goodbye-stratum.morph diff --git a/tests.branching/edit-updates-stratum.script b/tests.branching/edit-updates-stratum.script index d43fd360..8b6af1d1 100755 --- a/tests.branching/edit-updates-stratum.script +++ b/tests.branching/edit-updates-stratum.script @@ -21,11 +21,7 @@ set -eu # Disable test on versions of Python before 2.7. -if ! python --version 2>&1 | grep '^Python 2\.[78]' > /dev/null -then - cat "$SRCDIR/tests.branching/edit-updates-stratum.stdout" - exit 0 -fi +. "$SRCDIR/scripts/python-check" # Create system branch. cd "$DATADIR/workspace" diff --git a/tests.branching/petrify-no-double-petrify.script b/tests.branching/petrify-no-double-petrify.script index 56326cdc..1b5289c4 100755 --- a/tests.branching/petrify-no-double-petrify.script +++ b/tests.branching/petrify-no-double-petrify.script @@ -22,12 +22,7 @@ set -eu # Disable test on versions of Python before 2.7. -if ! python --version 2>&1 | grep '^Python 2\.[78]' > /dev/null -then - cat "$SRCDIR/tests.branching/petrify-no-double-petrify.stdout" - exit 0 -fi - +. "$SRCDIR/scripts/python-check" cd "$DATADIR/workspace" "$SRCDIR/scripts/test-morph" init diff --git a/tests.branching/petrify.script b/tests.branching/petrify.script index a74ae6ba..0fb4a4c4 100755 --- a/tests.branching/petrify.script +++ b/tests.branching/petrify.script @@ -23,11 +23,7 @@ set -eu # Disable test on versions of Python before 2.7. -if ! python --version 2>&1 | grep '^Python 2\.[78]' > /dev/null -then - cat "$SRCDIR/tests.branching/petrify.stdout" - exit 0 -fi +. "$SRCDIR/scripts/python-check" . "$SRCDIR/tests.branching/setup-second-chunk" diff --git a/tests.branching/workflow-petrify.script b/tests.branching/workflow-petrify.script index a73e17db..35643012 100755 --- a/tests.branching/workflow-petrify.script +++ b/tests.branching/workflow-petrify.script @@ -22,11 +22,7 @@ set -eu # Disable test on versions of Python before 2.7. -if ! python --version 2>&1 | grep '^Python 2\.[78]' > /dev/null -then - cat "$SRCDIR/tests.branching/workflow-petrify.stdout" - exit 0 -fi +. "$SRCDIR/scripts/python-check" . "$SRCDIR/scripts/setup-3rd-party-strata" diff --git a/tests.merging/basic.script b/tests.merging/basic.script index 6b063a20..8eddcfdb 100755 --- a/tests.merging/basic.script +++ b/tests.merging/basic.script @@ -20,10 +20,7 @@ set -eu # Disable test on versions of Python before 2.7. -if ! python --version 2>&1 | grep '^Python 2\.[78]' > /dev/null -then - exit 0 -fi +. "$SRCDIR/scripts/python-check" cd "$DATADIR/workspace" "$SRCDIR/scripts/test-morph" init diff --git a/tests.merging/conflict-chunks.script b/tests.merging/conflict-chunks.script index a9b85989..37ee4fb8 100755 --- a/tests.merging/conflict-chunks.script +++ b/tests.merging/conflict-chunks.script @@ -20,12 +20,7 @@ set -eu # Disable test on versions of Python before 2.7. -if ! python --version 2>&1 | grep '^Python 2\.[78]' > /dev/null -then - cat "$SRCDIR/tests.merging/conflict-chunks.stdout" - cat "$SRCDIR/tests.merging/conflict-chunks.stderr" >&2 - exit 0 -fi +. "$SRCDIR/scripts/python-check" . "$SRCDIR/scripts/setup-3rd-party-strata" diff --git a/tests.merging/conflict-stratum-field-ordering.script b/tests.merging/conflict-stratum-field-ordering.script index 3c1dce1c..13ddf3fb 100755 --- a/tests.merging/conflict-stratum-field-ordering.script +++ b/tests.merging/conflict-stratum-field-ordering.script @@ -25,12 +25,7 @@ set -eu # Disable test on versions of Python before 2.7. -if ! python --version 2>&1 | grep '^Python 2\.[78]' > /dev/null -then - cat "$SRCDIR/tests.branching/merge-conflict-stratum.stdout" - cat "$SRCDIR/tests.branching/merge-conflict-stratum.stderr" >&2 - exit 1 -fi +. "$SRCDIR/scripts/python-check" cd "$DATADIR/workspace" "$SRCDIR/scripts/test-morph" init diff --git a/tests.merging/move-chunk-repo.script b/tests.merging/move-chunk-repo.script index 1e3befbd..a203a824 100755 --- a/tests.merging/move-chunk-repo.script +++ b/tests.merging/move-chunk-repo.script @@ -20,11 +20,7 @@ set -eu # Disable test on versions of Python before 2.7. -if ! python --version 2>&1 | grep '^Python 2\.[78]' > /dev/null -then - cat "$SRCDIR/tests.merging/move-chunk-repo.stderr" >&2 - exit 1 -fi +. "$SRCDIR/scripts/python-check" # Create system branch. cd "$DATADIR/workspace" diff --git a/tests.merging/rename-chunk.script b/tests.merging/rename-chunk.script index fb76491b..a50a83bd 100755 --- a/tests.merging/rename-chunk.script +++ b/tests.merging/rename-chunk.script @@ -20,10 +20,7 @@ set -eu # Disable test on versions of Python before 2.7. -if ! python --version 2>&1 | grep '^Python 2\.[78]' > /dev/null -then - exit 0 -fi +. "$SRCDIR/scripts/python-check" # Create system branch. cd "$DATADIR/workspace" diff --git a/tests.merging/rename-stratum.script b/tests.merging/rename-stratum.script index 64fb7e15..b0e5d57e 100755 --- a/tests.merging/rename-stratum.script +++ b/tests.merging/rename-stratum.script @@ -20,11 +20,7 @@ set -eu # Disable test on versions of Python before 2.7. -if ! python --version 2>&1 | grep '^Python 2\.[78]' > /dev/null -then - cat "$SRCDIR/tests.merging/rename-stratum.stderr" 1>&2 - exit 1 -fi +. "$SRCDIR/scripts/python-check" # Create system branch. cd "$DATADIR/workspace" |