ali@387: #!/bin/sh ali@456: if [ $# -gt 0 ]; then ali@456: razor="$1" ali@456: else ali@456: razor=../src/razor ali@456: fi ali@387: fs_check_file() ali@387: { ali@387: if [ ! -e "$RAZOR_ROOT$1" ]; then ali@387: echo $1: Not in filesystem >&2 ali@387: ls -R "$RAZOR_ROOT" >&2 ali@387: exit 1 ali@387: fi ali@387: } ali@387: fs_check_file_contents() ali@387: { ali@387: fs_check_file "$1" ali@387: if [ `cat "$RAZOR_ROOT$1"` != "$2" ]; then ali@387: echo $1: Unexpected contents >&2 ali@387: cat "$RAZOR_ROOT$1" >&2 ali@387: exit 1 ali@387: fi ali@387: } ali@387: fs_check_no_file() ali@387: { ali@387: if [ -e "$RAZOR_ROOT$1" ]; then ali@387: echo $1: Still in filesystem >&2 ali@387: exit 1 ali@387: fi ali@387: } ali@387: check_file() ali@387: { ali@456: $razor list-files | grep -x "$1" > /dev/null ali@387: if [ $? -ne 0 ]; then ali@387: echo $1: Not in database >&2 ali@456: $razor list-files >&2 ali@387: exit 1 ali@387: fi ali@456: $razor list-files "$1" | grep -x "$1" > /dev/null ali@387: if [ $? -ne 0 ]; then ali@387: echo $1: Not seen by patterned list >&2 ali@456: $razor list-files "$1" >&2 ali@387: exit 1 ali@387: fi ali@456: pkgs=`$razor list-file-packages "$1"` ali@387: if [ -z "$pkgs" ]; then ali@387: echo $1: Not owned by any package >&2 ali@456: $razor list-file-packages "$1" ali@387: exit 1 ali@387: fi ali@387: for nevra in "$pkgs"; do ali@387: name=`echo $nevra | sed 's/\-.*$//'` ali@456: $razor list-package-files "$name" | grep -x "$1" > /dev/null ali@387: if [ $? -ne 0 ]; then ali@387: echo $1: Not in database for package $name >&2 ali@456: $razor list-package-files "$name" ali@387: exit 1 ali@387: fi ali@387: done ali@387: fs_check_file $1 ali@387: } ali@387: check_no_file() ali@387: { ali@456: $razor list-files | grep -x "$1" > /dev/null ali@387: if [ $? -eq 0 ]; then ali@387: echo $1: Still in database >&2 ali@387: exit 1 ali@387: fi ali@387: fs_check_no_file $1 ali@387: } ali@389: check_install_count() ali@389: { ali@456: count=`$razor list "$1" | wc -l` ali@389: if [ "$count" != "$2" ]; then ali@389: echo $1: Install count $count, should be $2 >&2 ali@389: exit 1 ali@389: fi ali@389: } ali@387: export RAZOR_ROOT=`mktemp -dt` || exit 1 ali@456: $razor init || exit 1 ali@387: export YUM_URL="file://localhost/`pwd`" ali@456: $razor import-yum || exit 1 ali@456: $razor install --relocate /usr=/opt zip || exit 1 ali@387: fs_check_file_contents /opt/bin/zip zip-1-1 ali@387: fs_check_file /opt/var/lib/zip/data.zap ali@456: $razor install --relocate /usr=/opt zip || exit 1 ali@389: check_install_count zip 2 ali@456: $razor install --relocate /usr=/opt zip || exit 1 ali@389: check_install_count zip 3 ali@387: rm -rf "$RAZOR_ROOT"