blob: b97fe3cd434903caca6a5089defde00a46e44c10 (
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
|
Describe 'Main toolchain'
export PATH=$PWD/src:$PATH
export CPT_ROOT=$PWD/tests
export CPT_PATH=$PWD/tests/repository
install_dummy() { CPT_HOOK='' ./src/cpt bi dummy-pkg ;}
remove_dummy() { rm -rf "${CPT_ROOT:?}/var" ;}
BeforeAll install_dummy
AfterAll remove_dummy
Describe 'cpt'
Describe '--version'
VERSION=$(grep VERSION config.rc | sed 's/.* //g')
It 'outputs cpt version'
When run script src/cpt --version
The stderr should eq "-> Carbs Packaging Tools $VERSION"
End
End
Describe '--help'
It 'outputs usage information'
When run script src/cpt --help
The line 1 of stderr should eq "-> Carbs Packaging Tool "
End
End
Describe 'prefix completion'
Describe 'single key expansion'
Parameters
a alternatives
b build
c checksum
d download
i install
l list
r remove
s search
u update
End
It "completes '$1' single key prefix to '$2'"
When run script src/cpt "$1" --help
The status should eq 0
The word 1 of line 1 should eq "usage:"
The word 2 of line 1 should eq "cpt-$2"
End
End
Describe 'shortcut expansion'
Parameters
bi "build install"
cbi "checksum build install"
End
It "expands the '$1' shortcut to '$2'"
When run script src/cpt "$1" --help
The status should be success
The word 2 of line 1 should eq "cpt-${2%% *}"
End
End
End
It 'fails when a given subcommand is not valid'
When run script src/cpt somerandomcommand
The stderr should eq "!> 'cpt somerandomcommand' is not a valid command "
The status should be failure
End
End
Describe 'cpt-list'
no_db_dir() {
# Return 0 if database directory is empty (or doesn't exist)
# shellcheck disable=2012
count=$(ls -1 "$CPT_ROOT/var/db/cpt/installed" 2>/dev/null | wc -l)
[ "$count" -eq 0 ]
}
Skip if "there are no installed packages" no_db_dir
It 'lists all packages when called without arguments'
When run script src/cpt-list
The lines of output should eq "$(ls -1 "$CPT_ROOT/var/db/cpt/installed" 2>/dev/null | wc -l)"
End
for firstpkg in "$CPT_ROOT/var/db/cpt/installed/"*; do firstpkg=${firstpkg##*/}; break; done
It 'only lists the packages given in the arguments'
When run script src/cpt-list "$firstpkg"
The word 1 of stdout should eq "$firstpkg"
End
It 'fails when the package supplied in the arguments does not exist'
When run script src/cpt-list somerandompackage
The stderr should eq "-> somerandompackage not installed"
The status should be failure
End
Parameters
"$firstpkg" success
somerandompackage failure
End
It "can print a $2 message with 'cpt-list --check PKG TRUE FALSE'"
When run script src/cpt-list --check "$1" success failure
The output should eq "$2"
End
End
End
|