test/mult-install.sh
author ali <j.a.harlow@letterboxes.org>
Tue Mar 27 21:32:46 2012 +0100 (2012-03-27)
changeset 436 e21194f5bd9c
parent 387 ef9237601f24
child 456 bae5adee8c8c
permissions -rwxr-xr-x
Release version 0.5.6
ali@387
     1
#!/bin/sh
ali@387
     2
fs_check_file()
ali@387
     3
{
ali@387
     4
    if [ ! -e "$RAZOR_ROOT$1" ]; then 
ali@387
     5
	echo $1: Not in filesystem >&2
ali@387
     6
	ls -R "$RAZOR_ROOT" >&2
ali@387
     7
	exit 1
ali@387
     8
    fi
ali@387
     9
}
ali@387
    10
fs_check_file_contents()
ali@387
    11
{
ali@387
    12
    fs_check_file "$1"
ali@387
    13
    if [ `cat "$RAZOR_ROOT$1"` != "$2" ]; then
ali@387
    14
	echo $1: Unexpected contents >&2
ali@387
    15
	cat "$RAZOR_ROOT$1" >&2
ali@387
    16
	exit 1
ali@387
    17
    fi
ali@387
    18
}
ali@387
    19
fs_check_no_file()
ali@387
    20
{
ali@387
    21
    if [ -e "$RAZOR_ROOT$1" ]; then 
ali@387
    22
	echo $1: Still in filesystem >&2
ali@387
    23
	exit 1
ali@387
    24
    fi
ali@387
    25
}
ali@387
    26
check_file()
ali@387
    27
{
ali@387
    28
    ../src/razor list-files | grep -x "$1" > /dev/null
ali@387
    29
    if [ $? -ne 0 ]; then
ali@387
    30
	echo $1: Not in database >&2
ali@387
    31
	../src/razor list-files >&2
ali@387
    32
	exit 1
ali@387
    33
    fi
ali@387
    34
    ../src/razor list-files "$1" | grep -x "$1" > /dev/null
ali@387
    35
    if [ $? -ne 0 ]; then
ali@387
    36
	echo $1: Not seen by patterned list >&2
ali@387
    37
	../src/razor list-files "$1" >&2
ali@387
    38
	exit 1
ali@387
    39
    fi
ali@387
    40
    pkgs=`../src/razor list-file-packages "$1"`
ali@387
    41
    if [ -z "$pkgs" ]; then
ali@387
    42
	echo $1: Not owned by any package >&2
ali@387
    43
	../src/razor list-file-packages "$1"
ali@387
    44
	exit 1
ali@387
    45
    fi
ali@387
    46
    for nevra in "$pkgs"; do
ali@387
    47
	name=`echo $nevra | sed 's/\-.*$//'`
ali@387
    48
	../src/razor list-package-files "$name" | grep -x "$1" > /dev/null
ali@387
    49
	if [ $? -ne 0 ]; then
ali@387
    50
	    echo $1: Not in database for package $name >&2
ali@387
    51
	    ../src/razor list-package-files "$name"
ali@387
    52
	    exit 1
ali@387
    53
	fi
ali@387
    54
    done
ali@387
    55
    fs_check_file $1
ali@387
    56
}
ali@387
    57
check_no_file()
ali@387
    58
{
ali@387
    59
    ../src/razor list-files | grep -x "$1" > /dev/null
ali@387
    60
    if [ $? -eq 0 ]; then
ali@387
    61
	echo $1: Still in database >&2
ali@387
    62
	exit 1
ali@387
    63
    fi
ali@387
    64
    fs_check_no_file $1
ali@387
    65
}
ali@389
    66
check_install_count()
ali@389
    67
{
ali@389
    68
    count=`../src/razor list "$1" | wc -l`
ali@389
    69
    if [ "$count" != "$2" ]; then
ali@389
    70
	echo $1: Install count $count, should be $2 >&2
ali@389
    71
	exit 1
ali@389
    72
    fi
ali@389
    73
}
ali@387
    74
export RAZOR_ROOT=`mktemp -dt` || exit 1
ali@387
    75
../src/razor init || exit 1
ali@387
    76
export YUM_URL="file://localhost/`pwd`"
ali@387
    77
../src/razor import-yum || exit 1
ali@387
    78
../src/razor install --relocate /usr=/opt zip || exit 1
ali@387
    79
fs_check_file_contents /opt/bin/zip zip-1-1
ali@387
    80
fs_check_file /opt/var/lib/zip/data.zap
ali@387
    81
../src/razor install --relocate /usr=/opt zip || exit 1
ali@389
    82
check_install_count zip 2
ali@387
    83
../src/razor install --relocate /usr=/opt zip || exit 1
ali@389
    84
check_install_count zip 3
ali@387
    85
rm -rf "$RAZOR_ROOT"