diff -r 000000000000 -r 6a6462ce8a08 test/mult-install.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/mult-install.sh Thu Oct 01 20:02:12 2009 +0100 @@ -0,0 +1,75 @@ +#!/bin/sh +fs_check_file() +{ + if [ ! -e "$RAZOR_ROOT$1" ]; then + echo $1: Not in filesystem >&2 + ls -R "$RAZOR_ROOT" >&2 + exit 1 + fi +} +fs_check_file_contents() +{ + fs_check_file "$1" + if [ `cat "$RAZOR_ROOT$1"` != "$2" ]; then + echo $1: Unexpected contents >&2 + cat "$RAZOR_ROOT$1" >&2 + exit 1 + fi +} +fs_check_no_file() +{ + if [ -e "$RAZOR_ROOT$1" ]; then + echo $1: Still in filesystem >&2 + exit 1 + fi +} +check_file() +{ + ../src/razor list-files | grep -x "$1" > /dev/null + if [ $? -ne 0 ]; then + echo $1: Not in database >&2 + ../src/razor list-files >&2 + exit 1 + fi + ../src/razor list-files "$1" | grep -x "$1" > /dev/null + if [ $? -ne 0 ]; then + echo $1: Not seen by patterned list >&2 + ../src/razor list-files "$1" >&2 + exit 1 + fi + pkgs=`../src/razor list-file-packages "$1"` + if [ -z "$pkgs" ]; then + echo $1: Not owned by any package >&2 + ../src/razor list-file-packages "$1" + exit 1 + fi + for nevra in "$pkgs"; do + name=`echo $nevra | sed 's/\-.*$//'` + ../src/razor list-package-files "$name" | grep -x "$1" > /dev/null + if [ $? -ne 0 ]; then + echo $1: Not in database for package $name >&2 + ../src/razor list-package-files "$name" + exit 1 + fi + done + fs_check_file $1 +} +check_no_file() +{ + ../src/razor list-files | grep -x "$1" > /dev/null + if [ $? -eq 0 ]; then + echo $1: Still in database >&2 + exit 1 + fi + fs_check_no_file $1 +} +export RAZOR_ROOT=`mktemp -dt` || exit 1 +../src/razor init || exit 1 +export YUM_URL="file://localhost/`pwd`" +../src/razor import-yum || exit 1 +../src/razor install --relocate /usr=/opt zip || exit 1 +fs_check_file_contents /opt/bin/zip zip-1-1 +fs_check_file /opt/var/lib/zip/data.zap +../src/razor install --relocate /usr=/opt zip || exit 1 +../src/razor install --relocate /usr=/opt zip || exit 1 +rm -rf "$RAZOR_ROOT"