]>
git.saurik.com Git - apt.git/blob - test/integration/test-method-rred
4 TESTDIR
="$(readlink -f "$(dirname "$0")")"
8 configarchitecture 'i386'
10 echo 'Package: coolstuff
12 Description: collection of stuff
13 A lot, too much to iterate all, but at least this:
22 Description: collection of outdated stuff
23 A lot, but of no use nowadays, but at least this:
28 And a dog.' > Packages
33 echo -n '' > Packages.ed
35 echo "$3" > Packages.ed
38 cat Packages | runapt "${METHODSDIR}/rred
" "$@
"
40 testsuccessequal "$4" --nomsg rred -f Packages.ed
43 testrred 'Remove' 'first line' '1d' "$(tail -n +2 ./Packages)"
44 testrred 'Remove' 'empty line' '10d' "$(head -n 9 ./Packages)
45 $(tail -n 9 ./Packages)"
46 testrred 'Remove' 'line in a paragraph' '5d' "$(head -n 4 ./Packages)
47 $(tail -n 14 ./Packages)"
48 testrred 'Remove' 'last line' '19d' "$(head -n -1 ./Packages)"
49 testrred 'Remove' 'multiple single lines' '17d
50 7d' "$(sed -e '/^ - even more stuff$/ d' ./Packages)"
51 testrred 'Remove' 'first paragraph' '1,10d' "$(tail -n 9 ./Packages)"
52 testrred 'Remove' 'a few lines in the middle' '5,14d' "$(head -n 4 ./Packages)
53 $(tail -n 5 ./Packages)"
54 testrred 'Remove' 'second paragraph' '10,19d' "$(head -n 9 ./Packages)"
55 testrred 'Mass Remove' 'all stuff lines' '15,17d
60 1d' "$(sed '/stuff/ d' ./Packages)"
62 testrred 'Single line add' 'first line' '0a
64 .' "Format
: 3.0 (native
)
66 testrred 'Single line add' 'last line' '19a
70 testrred 'Single line add' 'middle' '9a
72 .' "$(head -n 9 ./Packages)
74 $(tail -n 10 ./Packages)"
76 testrred 'Multi line add' 'first line' '0a
79 .' "Format
: 3.0 (native
)
82 testrred 'Multi line add' 'last line' '19a
84 Homepage: https://debian.org
87 Homepage
: https
://debian.org
"
88 testrred 'Multi line add' 'middle' '9a
90 Homepage: https://debian.org
91 .' "$(head -n 9 ./Packages)
93 Homepage
: https
://debian.org
94 $(tail -n 10 ./Packages)"
96 testrred 'Single line change' 'first line' '1c
97 Package: supercoolstuff
98 .' "Package
: supercoolstuff
99 $(tail -n +2 ./Packages)"
100 testrred 'Single line change' 'in the middle' '9c
102 .' "$(head -n 8 ./Packages)
104 $(tail -n 10 ./Packages)"
105 testrred 'Single line change' 'an empty line' '10c
107 .' "$(head -n 9 ./Packages)
109 $(tail -n 9 ./Packages)"
110 testrred 'Single line change' 'a spacy line' '10c
112 .' "$(head -n 9 ./Packages)
114 $(tail -n 9 ./Packages)"
115 testrred 'Single line change' 'last line' '19c
117 .' "$(head -n -1 ./Packages)
120 testrred 'Multi line change' 'exchange' '5,7c
123 - even more good stuff
124 .' "$(head -n 4 ./Packages)
127 - even
more good stuff
128 $(tail -n 12 ./Packages)"
129 testrred 'Multi line change' 'less' '5,7c
132 .' "$(head -n 4 ./Packages)
135 $(tail -n 12 ./Packages)"
136 testrred 'Multi line change' 'more' '5,7c
139 - even more good stuff
141 .' "$(head -n 4 ./Packages)
144 - even
more good stuff
146 $(tail -n 12 ./Packages)"
149 msgtest 'Failure caused by' "$1"
150 echo "$2" > Packages.ed
152 cat Packages | runapt "${METHODSDIR}/rred
" "$@
"
154 testfailure --nomsg rred -f Packages.ed
157 failrred 'Bogus content' '<html>
160 # not a problem per-se, but we want our parser to be really strict
161 failrred 'Empty patch file' ''
162 failrred 'Empty line patch file' '
164 failrred 'Empty line before command' '
166 failrred 'Empty line after command' '1d
168 failrred 'Empty line between commands' '17d
171 failrred 'Empty spaces lines before command' '
173 failrred 'Empty spaces lines after command' '1d
175 failrred 'Empty spaces lines between commands' '17d
179 # the line before the first one can't be deleted/changed
180 failrred 'zero line delete' '0d'
181 failrred 'zero line change' '0c
182 Package: supercoolstuff
184 # and this makes no sense at all
185 failrred 'negative line delete' '-1d'
186 failrred 'negative line change' '-1c
187 Package: supercoolstuff
189 failrred 'negative line add' '-1a
190 Package: supercoolstuff
192 failrred 'Wrong order of commands' '7d
194 failrred 'End before start' '7,6d'