test/update.sh
author J. Ali Harlow <ali@juiblex.co.uk>
Thu Jul 07 15:17:29 2016 +0100 (2016-07-07)
changeset 479 4204db81cdbc
parent 456 bae5adee8c8c
permissions -rwxr-xr-x
Port razor_package_remove() to URI-based API
ali@382
     1
#!/bin/sh
ali@456
     2
if [ $# -gt 0 ]; then
ali@456
     3
    razor="$1"
ali@456
     4
else
ali@456
     5
    razor=../src/razor
ali@456
     6
fi
ali@382
     7
fs_check_file()
ali@382
     8
{
ali@475
     9
    if [ ! -e "$tmpdir$1" ]; then 
ali@382
    10
	echo $1: Not in filesystem >&2
ali@475
    11
	ls -R "$tmpdir" >&2
ali@382
    12
	exit 1
ali@382
    13
    fi
ali@382
    14
}
ali@382
    15
fs_check_file_contents()
ali@382
    16
{
ali@382
    17
    fs_check_file "$1"
ali@475
    18
    if [ `cat "$tmpdir$1"` != "$2" ]; then
ali@382
    19
	echo $1: Unexpected contents >&2
ali@475
    20
	cat "$tmpdir$1" >&2
ali@382
    21
	exit 1
ali@382
    22
    fi
ali@382
    23
}
ali@382
    24
fs_check_no_file()
ali@382
    25
{
ali@475
    26
    if [ -e "$tmpdir$1" ]; then 
ali@382
    27
	echo $1: Still in filesystem >&2
ali@382
    28
	exit 1
ali@382
    29
    fi
ali@382
    30
}
ali@382
    31
check_file()
ali@382
    32
{
ali@475
    33
    $razor list-files | grep -F -x "$1" > /dev/null
ali@382
    34
    if [ $? -ne 0 ]; then
ali@382
    35
	echo $1: Not in database >&2
ali@456
    36
	$razor list-files >&2
ali@382
    37
	exit 1
ali@382
    38
    fi
ali@475
    39
    $razor list-files "$1" | grep -F -x "$1" > /dev/null
ali@382
    40
    if [ $? -ne 0 ]; then
ali@382
    41
	echo $1: Not seen by patterned list >&2
ali@456
    42
	$razor list-files "$1" >&2
ali@382
    43
	exit 1
ali@382
    44
    fi
ali@456
    45
    pkgs=`$razor list-file-packages "$1"`
ali@382
    46
    if [ -z "$pkgs" ]; then
ali@382
    47
	echo $1: Not owned by any package >&2
ali@456
    48
	$razor list-file-packages "$1"
ali@382
    49
	exit 1
ali@382
    50
    fi
ali@382
    51
    for nevra in "$pkgs"; do
ali@382
    52
	name=`echo $nevra | sed 's/\-.*$//'`
ali@475
    53
	$razor list-package-files "$name" | grep -F -x "$1" > /dev/null
ali@382
    54
	if [ $? -ne 0 ]; then
ali@382
    55
	    echo $1: Not in database for package $name >&2
ali@456
    56
	    $razor list-package-files "$name"
ali@382
    57
	    exit 1
ali@382
    58
	fi
ali@382
    59
    done
ali@382
    60
    fs_check_file $1
ali@382
    61
}
ali@382
    62
check_no_file()
ali@382
    63
{
ali@475
    64
    $razor list-files | grep -F -x "$1" > /dev/null
ali@382
    65
    if [ $? -eq 0 ]; then
ali@382
    66
	echo $1: Still in database >&2
ali@382
    67
	exit 1
ali@382
    68
    fi
ali@382
    69
    fs_check_no_file $1
ali@382
    70
}
ali@389
    71
check_install_count()
ali@389
    72
{
ali@456
    73
    count=`$razor list "$1" | wc -l`
ali@389
    74
    if [ "$count" != "$2" ]; then
ali@389
    75
	echo $1: Install count $count, should be $2 >&2
ali@389
    76
	exit 1
ali@389
    77
    fi
ali@389
    78
}
ali@382
    79
set_repository()
ali@382
    80
{
ali@475
    81
    export YUM_URL="file:`pwd`/$1"
ali@382
    82
    cp $1/repodata/primary.xml.gz $1/repodata/filelists.xml.gz .
ali@382
    83
    rm -rf rpms
ali@475
    84
    ln -s $1/Packages rpms
ali@382
    85
}
ali@475
    86
tmpdir=`mktemp -dt` || exit 1
ali@475
    87
export RAZOR_ROOT="file:$tmpdir"
ali@456
    88
$razor init || exit 1
ali@382
    89
set_repository base
ali@456
    90
$razor import-yum || exit 1
ali@456
    91
$razor install --relocate /usr=/opt zip || exit 1
ali@382
    92
fs_check_file_contents /opt/bin/zip zip-1-1
ali@382
    93
fs_check_file /opt/var/lib/zip/data.zap
ali@382
    94
trap "set_repository base" 0
ali@382
    95
set_repository updates
ali@456
    96
$razor import-yum || exit 1
ali@456
    97
$razor update --relocate /usr=/opt || exit 1
ali@382
    98
check_file /opt/bin/zip
ali@382
    99
fs_check_file_contents /opt/bin/zip zip-2-1
ali@382
   100
fs_check_file /opt/var/lib/zip/data.zap
ali@456
   101
$razor remove zip || exit 1
ali@382
   102
fs_check_no_file /opt/var/lib/zip/data.zap
ali@386
   103
set_repository base
ali@456
   104
$razor import-yum || exit 1
ali@456
   105
$razor install --relocate /usr=/opt zip || exit 1
ali@456
   106
$razor install --relocate /usr=/opt zip || exit 1
ali@389
   107
check_install_count zip 2
ali@386
   108
set_repository updates
ali@456
   109
$razor import-yum || exit 1
ali@456
   110
$razor update --relocate /usr=/opt || exit 1
ali@386
   111
check_file /opt/bin/zip
ali@386
   112
fs_check_file_contents /opt/bin/zip zip-2-1
ali@386
   113
fs_check_file /opt/var/lib/zip/data.zap
ali@389
   114
check_install_count zip 1
ali@456
   115
$razor remove zip || exit 1
ali@386
   116
fs_check_no_file /opt/var/lib/zip/data.zap
ali@389
   117
set_repository base
ali@456
   118
$razor import-yum || exit 1
ali@456
   119
$razor install --relocate /usr=/opt zip || exit 1
ali@456
   120
$razor update --relocate /usr=/opt zip || exit 1
ali@389
   121
check_install_count zip 1
ali@475
   122
rm -rf "$tmpdir"