blob: c572fbca3715bb226a475fa8f430872d8d24a73c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
#!/usr/bin/env zsh
unset -m 'GIT_*'
setopt err_exit
trap "print -P '\n%N:%i: %B%F{red}Test faild!%F{default}%b'" ZERR
source test/documentation
function stringcmp {
diff -u <(echo $1) <(echo $2)
}
tests=$PWD/test
test_pdir=$(mktemp -dt pkgdir.XXXXXX)
test_proot=$(mktemp -dt pkgroot.XXXXXX)
test_home=$(mktemp -dt pkghome.XXXXXX)
cat << meow
test directories:
PKG_DIR = $test_pdir
PKG_ROOT = $test_proot
HOME = $test_home
meow
source $tests/setup
echo "# bootstrapping PKG_DIR"
cd $test_home
export HOME=$test_home
$test_proot/core/include/bootstrap $test_proot $test_pdir
echo "# checking for success"
[[ -e $test_home/.config/pkg/pkg.conf ]]
[[ -d $test_proot/core ]]
[[ -d $test_pdir/core ]]
[[ -L $test_home/bin/pkg ]]
[[ -L $test_home/bin/checklinks ]]
[[ -x $(readlink $test_home/bin/pkg) ]]
[[ -x $(readlink $test_home/bin/checklinks) ]]
[[ -e $test_pdir/.collected/man/man1/pkg.1 ]]
[[ -e $test_pdir/.collected/man/man5/pkg.conf.5 ]]
[[ -e $test_pdir/.collected/man/man7/pkg.7 ]]
echo "# pkg list local"
stringcmp "core" "$(pkg list)"
stringcmp "core" "$(pkg list local)"
echo "# pkg list not-installed"
stringcmp "ra\nra-bare\nrb\nrb-bare\nrc\nrc-bare" "$(pkg list not-installed)"
echo "# pkg list all"
stringcmp "core\nra\nra-bare\nrb\nrb-bare\nrc\nrc-bare" "$(pkg list all)"
echo "# pkg add (no such repo)"
! pkg add weltfrieden
echo "# pkg add (already installed)"
! pkg add core
for conf_origin in 0 1; {
echo "## GIT_USE_ORIGIN=$conf_origin"
echo "GIT_USE_ORIGIN=$conf_origin" >> $test_home/.config/pkg/pkg.conf
for repo in ra ra-bare; {
file=${repo%-*}
if [[ $repo == *-bare ]] {
echo "## bare repository"
complement=$file
} else {
echo "## non-bare repository"
complement=${repo}-bare
}
source $tests/add
source $tests/prereqs
cd $test_pdir/$repo
source $tests/push
cd $test_pdir
source $tests/pull-prepare
source $tests/remove
}
}
rm -rf $test_pdir $test_proot $test_home
print -P '%F{green} test passed%F{default}'
|