summaryrefslogtreecommitdiff
path: root/test.sh
blob: 28d33f72d51c8224c650780522995bee5a81c501 (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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
#!/bin/sh
test_increments() {
	local pkgrel="$1"
	local repo="$2"
	cd "$repo"
	git init
	cat >PKGBUILD <<-PKGBUILD_initial
	# Maintainer: Test <test@acme.com>
	pkgname=test
	pkgver=1.0.0
	pkgdesc="Package intended for testing"
	PKGBUILD_initial
	git add PKGBUILD
	git commit -m "Initial commit"
	test "$($pkgrel)" -eq 1 || exit 1
	echo >>PKGBUILD "arch=(i686 x86_64)"
	test "$($pkgrel)" -eq 2 || exit 1
	git commit -am "Added architecture"
	test "$($pkgrel)" -eq 2 || exit 1
	sed -i "s/1.0.0/1.1.0/" PKGBUILD
	git commit -am "Bumped version"
	test "$($pkgrel)" -eq 1 || exit 1
	sed -i "s/intended/created/" PKGBUILD
	test "$($pkgrel)" -eq 2 || exit 1
	sed -i "s/testing/rolling/" PKGBUILD
	test "$($pkgrel)" -eq 2 || exit 1
	git commit -am "Updated purpose of package"
	test "$($pkgrel)" -eq 2 || exit 1
	sed -i "s/Package/Distribution/" PKGBUILD
	test "$($pkgrel)" -eq 3 || exit 1
}


test_root() {
	local pkgrel="$1"
	local repo="$2"
	cd "$repo"
	$pkgrel && exit 1
	git init
	$pkgrel && exit 1
	touch hello
	git add hello
	git commit -m "Initial commit"
	$pkgrel && exit 1
	touch PKGBUILD
	test "$($pkgrel)" -eq 1 || exit 1
	git add PKGBUILD
	git commit -m "Added PKGBUILD"
	test "$($pkgrel)" -eq 1 || exit 1
	echo >>PKGBUILD "pkgname=test"
	test "$($pkgrel)" -eq 2 || exit 1
	echo >>PKGBUILD "pkgver=1.0.0"
	test "$($pkgrel)" -eq 1 || exit 1
	git commit -am "Added version and name to package"
	test "$($pkgrel)" -eq 1 || exit 1
}


test_nested() {
	local pkgrel="$1"
	local repo="$2"
	cd "$repo"
	git init
	mkdir -p first second/sub
	touch first/PKGBUILD second/PKGBUILD second/sub/PKGBUILD
	git add first/PKGBUILD second/PKGBUILD second/sub/PKGBUILD
	git commit -m "Initial commit"
	$pkgrel && exit 1
	cd "$repo/first"
	test "$($pkgrel)" -eq 1 || exit 1
	cd "$repo/second"
	test "$($pkgrel)" -eq 1 || exit 1
	cd "$repo/second/sub"
	test "$($pkgrel)" -eq 1 || exit 1
	echo >>PKGBUILD "pkgname=sub"
	test "$($pkgrel)" -eq 2 || exit 1
	cd "$repo/second"
	test "$($pkgrel)" -eq 1 || exit 1
	echo >>PKGBUILD "pkgname=second"
	test "$($pkgrel)" -eq 2 || exit 1
	cd "$repo/first"
	test "$($pkgrel)" -eq 1 || exit 1
	git commit -am "Added names to second and sub"
	test "$($pkgrel)" -eq 1 || exit 1
	cd "$repo/second"
	test "$($pkgrel)" -eq 2 || exit 1
	echo >>PKGBUILD "pkgver=1.0.0"
	test "$($pkgrel)" -eq 1 || exit 1
	cd "$repo/second/sub"
	test "$($pkgrel)" -eq 2 || exit 1
	git commit -am "Added version to second"
	test "$($pkgrel)" -eq 2 || exit 1
}


ok() {
	echo -e "${1:-unknown}... \033[32;1mok\033[0m"
}


fail() {
	echo -e "${1:-unknown}... \033[31;1mfail\033[0m"
}


execute_test() {
	local test_name="$1"
	repo=$(mktemp -d)
	( $test_name "$PWD/pkgrel" "$repo" ) 1>&2 && ok "$test_name" || fail "$test_name"
	rm -rf "$repo"
}

execute_test test_increments
execute_test test_root
execute_test test_nested