#!/bin/sh # # Does a cached stratum get rebuilt if its chunk changes? # This tests a bug that is currently in morph, where the stratum does # not get rebuilt in that case. Later on, the test will guard against # regressions. # # Copyright (C) 2011 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 -e cache="$DATADIR/rebuild-cached-stratum-cache" log="$DATADIR/rebuild-cached-stratum-morph.log" # Make a branch in the chunk repo where we can make our own modifications. (cd "$DATADIR/chunk-repo" && git checkout --quiet farrokh && git checkout --quiet -b rebuild-cached-stratum) # Make a branch in the morphs repo and modify the stratum to refer to # the new chunk branch. (cd "$DATADIR/morphs-repo" && git checkout --quiet -b rebuild-cached-stratum && sed -i 's/farrokh/rebuild-cached-stratum/' hello-stratum.morph && git commit --quiet -m "rebuild-cached-stratum" -a) # Build the first time. ./morph --no-default-configs \ build morphs-repo rebuild-cached-stratum hello-stratum.morph \ --git-base-url="file://$DATADIR" \ --cachedir="$cache" --keep-path --no-distcc \ --log="$log" || cat "$log" 1>&2 echo "first build:" (cd "$cache" && ls *.chunk.* *.stratum.* | sed 's/^[^.]*\./ /' | LC_ALL=C sort) # Change the chunk. (cd "$DATADIR/chunk-repo" && echo >> hello.c && git commit --quiet -am change) # Rebuild. ./morph --no-default-configs \ build morphs-repo rebuild-cached-stratum hello-stratum.morph \ --git-base-url="file://$DATADIR" \ --cachedir="$cache" --keep-path --no-distcc \ --log="$log" || cat "$log" 1>&2 echo "second build:" (cd "$cache" && ls *.chunk.* *.stratum.* | sed 's/^[^.]*\./ /' | LC_ALL=C sort)