1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/test/update.sh Tue Aug 18 14:04:11 2009 +0100
1.3 @@ -0,0 +1,89 @@
1.4 +#!/bin/sh
1.5 +fs_check_file()
1.6 +{
1.7 + if [ ! -e "$RAZOR_ROOT$1" ]; then
1.8 + echo $1: Not in filesystem >&2
1.9 + ls -R "$RAZOR_ROOT" >&2
1.10 + exit 1
1.11 + fi
1.12 +}
1.13 +fs_check_file_contents()
1.14 +{
1.15 + fs_check_file "$1"
1.16 + if [ `cat "$RAZOR_ROOT$1"` != "$2" ]; then
1.17 + echo $1: Unexpected contents >&2
1.18 + cat "$RAZOR_ROOT$1" >&2
1.19 + exit 1
1.20 + fi
1.21 +}
1.22 +fs_check_no_file()
1.23 +{
1.24 + if [ -e "$RAZOR_ROOT$1" ]; then
1.25 + echo $1: Still in filesystem >&2
1.26 + exit 1
1.27 + fi
1.28 +}
1.29 +check_file()
1.30 +{
1.31 + ../src/razor list-files | grep -x "$1" > /dev/null
1.32 + if [ $? -ne 0 ]; then
1.33 + echo $1: Not in database >&2
1.34 + ../src/razor list-files >&2
1.35 + exit 1
1.36 + fi
1.37 + ../src/razor list-files "$1" | grep -x "$1" > /dev/null
1.38 + if [ $? -ne 0 ]; then
1.39 + echo $1: Not seen by patterned list >&2
1.40 + ../src/razor list-files "$1" >&2
1.41 + exit 1
1.42 + fi
1.43 + pkgs=`../src/razor list-file-packages "$1"`
1.44 + if [ -z "$pkgs" ]; then
1.45 + echo $1: Not owned by any package >&2
1.46 + ../src/razor list-file-packages "$1"
1.47 + exit 1
1.48 + fi
1.49 + for nevra in "$pkgs"; do
1.50 + name=`echo $nevra | sed 's/\-.*$//'`
1.51 + ../src/razor list-package-files "$name" | grep -x "$1" > /dev/null
1.52 + if [ $? -ne 0 ]; then
1.53 + echo $1: Not in database for package $name >&2
1.54 + ../src/razor list-package-files "$name"
1.55 + exit 1
1.56 + fi
1.57 + done
1.58 + fs_check_file $1
1.59 +}
1.60 +check_no_file()
1.61 +{
1.62 + ../src/razor list-files | grep -x "$1" > /dev/null
1.63 + if [ $? -eq 0 ]; then
1.64 + echo $1: Still in database >&2
1.65 + exit 1
1.66 + fi
1.67 + fs_check_no_file $1
1.68 +}
1.69 +set_repository()
1.70 +{
1.71 + cp $1/repodata/primary.xml.gz $1/repodata/filelists.xml.gz .
1.72 + rm -rf rpms
1.73 + ln -s $1/rpms .
1.74 +}
1.75 +export RAZOR_ROOT=`mktemp -dt` || exit 1
1.76 +../src/razor init || exit 1
1.77 +export YUM_URL="file://localhost/`pwd`"
1.78 +set_repository base
1.79 +../src/razor import-yum || exit 1
1.80 +../src/razor install --relocate /usr=/opt zip || exit 1
1.81 +fs_check_file_contents /opt/bin/zip zip-1-1
1.82 +fs_check_file /opt/var/lib/zip/data.zap
1.83 +trap "set_repository base" 0
1.84 +set_repository updates
1.85 +../src/razor import-yum || exit 1
1.86 +../src/razor update --relocate /usr=/opt || exit 1
1.87 +check_file /opt/bin/zip
1.88 +fs_check_file_contents /opt/bin/zip zip-2-1
1.89 +fs_check_file /opt/var/lib/zip/data.zap
1.90 +../src/razor remove zip || exit 1
1.91 +fs_check_no_file /opt/var/lib/zip/data.zap
1.92 +rm -rf "$RAZOR_ROOT"