#!/bin/sh # Copyright (C) 2012,2014-2015 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, see . # Wrapper around morph for use by cmdtest tests. This does several things: # # * simpler command lines for running morph, so that each test does not # need to add --no-default-config and other options every time # * replace temporary filenames ($DATADIR) in the output with a known # string ("TMP"), so that test output is deterministic set -eu # Set PATH to include the source directory. This is necessary for # distributed builds, which invoke morph as a sub-process. export PATH="$SRCDIR:$PATH" WARNING_IGNORES='-W ignore:(stratum|system)\s+morphology' if [ "$1" = "--find-system-artifact" ]; then shift python $WARNING_IGNORES \ "$SRCDIR/morph" --no-default-config \ --tarball-server= --cache-server= \ --cachedir-min-space=0 --tempdir-min-space=0 \ --config="$DATADIR/morph.conf" --debug "$@" > $DATADIR/stdout ARTIFACT=$(grep "system \S\+-rootfs is cached at" "$DATADIR/stdout" | \ sed -nre "s/^.*system \S+-rootfs is cached at (\S+)$/\1/p") rm "$DATADIR/stdout" if [ ! -e "$ARTIFACT" ]; then echo "Unable to find rootfs artifact: $ARTIFACT" 1>&2 exit 1 fi echo $ARTIFACT else "$SRCDIR/scripts/cmd-filter" \ python $WARNING_IGNORES \ "$SRCDIR/morph" --no-default-config \ --cachedir-min-space=0 --tempdir-min-space=0 \ --tarball-server= --cache-server= \ --config="$DATADIR/morph.conf" "$@" fi