4 TESTDIR
=$(readlink -f $(dirname $0))
7 configarchitecture
'amd64' 'i386'
9 buildsimplenativepackage
'testing' 'amd64,i386' '0.8.15' 'stable'
10 setupaptarchive
--no-update
12 changetocdrom
'Debian APT Testdisk 0.8.15'
14 # -de is not in the Release file, but picked up anyway for compatibility
15 cd rootdir
/media
/cdrom
-unmounted/dists
/stable
/main
/i18n
17 sed -e '/^Description-en:/ d' -e '/^ / d' -e '/^$/ d' Translation
-en > Translation
-de
18 echo 'Description-de: automatisch generiertes Testpaket testing=0.8.15/stable
19 Diese Pakete sind nur für das testen von APT gedacht,
20 sie erfüllen keinen Zweck auf einem normalen System…
22 compressfile Translation
-de
23 rm -f Translation
-en Translation
-de
28 rm -f rootdir
/tmp
/apt
-cdrom.log
29 test ! -e rootdir
/media
/cdrom
|| echo "CD-ROM is mounted, but shouldn't be!"
30 test -e rootdir
/media
/cdrom
-unmounted || echo "Unmounted CD-ROM doesn't exist, but it should!"
31 aptcdrom
"$@" -o quiet
=1 >rootdir
/tmp
/apt
-cdrom.log
2>&1 </dev
/null
32 sed -e '/gpgv\?: Signature made/ d' -e '/gpgv\?: Good signature/ d' -e '/^Identifying/ d' -e '/Reading / d' rootdir
/tmp
/apt
-cdrom.log
33 test ! -e rootdir
/media
/cdrom
|| echo "CD-ROM is mounted, but shouldn't be!"
34 test -e rootdir
/media
/cdrom
-unmounted || echo "Unmounted CD-ROM doesn't exist, but it should!"
37 CDROM_PRE
="Using CD-ROM mount point $(readlink -f ./rootdir/media)/cdrom/
40 Please insert a Disc in the drive and press enter
42 Scanning disc for index files..."
43 CDROM_POST
="This disc is called:
44 'Debian APT Testdisk 0.8.15'
45 Writing new source list
46 Source list entries for this disc are:
47 deb cdrom:[Debian APT Testdisk 0.8.15]/ stable main
48 deb-src cdrom:[Debian APT Testdisk 0.8.15]/ stable main
50 Repeat this process for the rest of the CDs in your set."
53 Found 2 package indexes, 1 source indexes, 1 translation indexes and 1 signatures
54 Found label 'Debian APT Testdisk 0.8.15'
55 $CDROM_POST" aptcdromlog add
57 testequal
"Using CD-ROM mount point $(readlink -f ./rootdir/media)/cdrom/
59 Stored label: Debian APT Testdisk 0.8.15
60 Unmounting CD-ROM..." aptcdromlog ident
62 # apt-setup uses these commands (expect the tr in the id) to find id and label
63 ident
="$(LC_ALL=C aptcdrom ident 2>&1 )"
64 CD_ID
="$(echo "$ident" | grep "^Identifying" | head -n1 | cut -d" " -f2 | tr --delete '[]')"
65 CD_LABEL
="$(echo "$ident" | grep "^Stored label:" | head -n1 | sed "s/^[^:]*: //")"
66 testequal
"CD::${CD_ID} \"${CD_LABEL}\";
67 CD::${CD_ID}::Label \"${CD_LABEL}\";" cat rootdir
/var
/lib
/apt
/cdroms.list
70 touch rootdir
/var
/lib
/apt
/extended_states
72 testequal
'Reading package lists...
73 Building dependency tree...
74 Reading state information...
75 The following NEW packages will be installed:
77 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
78 Inst testing (0.8.15 stable [amd64])
79 Conf testing (0.8.15 stable [amd64])' aptget
install testing
-s
81 testdpkgnotinstalled testing
82 testsuccess aptget
install testing
-y
83 testdpkginstalled testing
84 testsuccess aptget purge testing
-y
85 testdpkgnotinstalled testing
87 testequal
'Reading package lists...
88 Building dependency tree...
89 Reading state information...
90 The following NEW packages will be installed:
92 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
93 Inst testing:i386 (0.8.15 stable [i386])
94 Conf testing:i386 (0.8.15 stable [i386])' aptget
install testing
:i386
-s
96 testdpkgnotinstalled testing
:i386
97 testsuccess aptget
install testing
:i386
-y
98 testdpkginstalled testing
:i386
99 testsuccess aptget purge testing
:i386
-y
100 testdpkgnotinstalled testing
:i386
103 rm -f testing_0.8
.15_amd64.deb
104 testsuccess aptget download testing
105 testsuccess
test -s testing_0.8
.15_amd64.deb
106 rm -f testing_0.8
.15_amd64.deb
108 rm -f testing_0.8
.15.dsc
109 testsuccess aptget
source testing
--dsc-only -d
110 testsuccess
test -s testing_0.8
.15.dsc
111 rm -f testing_0.8
.15.dsc
116 # check Idempotence of apt-cdrom (and disabling of Translation dropping)
117 testequal
"$CDROM_PRE
118 Found 2 package indexes, 1 source indexes, 2 translation indexes and 1 signatures
119 $CDROM_POST" aptcdromlog add
-o APT
::CDROM
::DropTranslation
=0
121 # take Translations from previous runs as needed
122 testequal
"$CDROM_PRE
123 Found 2 package indexes, 1 source indexes, 2 translation indexes and 1 signatures
124 $CDROM_POST" aptcdromlog add
125 msgtest
'Test for the german description translation of' 'testing'
126 aptcache show testing
-o Acquire
::Languages
=de
| grep -q '^Description-de: ' && msgpass
|| msgfail
127 rm -rf rootdir
/var
/lib
/apt
/lists
128 mkdir -p rootdir
/var
/lib
/apt
/lists
/partial
129 testequal
"$CDROM_PRE
130 Found 2 package indexes, 1 source indexes, 1 translation indexes and 1 signatures
131 $CDROM_POST" aptcdromlog add
132 msgtest
'Test for the english description translation of' 'testing'
133 aptcache show testing
-o Acquire
::Languages
=en
| grep -q '^Description-en: ' && msgpass
|| msgfail
135 # ensure cdrom method isn't trying to mount the cdrom
136 mv rootdir
/media
/cdrom
-unmounted rootdir
/media
/cdrom
-ejected
137 # ensure an update doesn't mess with cdrom sources
138 testsuccess aptget update
139 testfileequal rootdir
/tmp
/testsuccess.output
'Reading package lists...'
140 mv rootdir
/media
/cdrom
-ejected rootdir
/media
/cdrom
-unmounted
143 # and again to check that it withstands the temptation even if it could mount
144 testsuccess aptget update
145 testfileequal rootdir
/tmp
/testsuccess.output
'Reading package lists...'
148 msgmsg
'Check that nothing touched our' 'CD-ROM'
149 for file in $(find rootdir/media/cdrom-unmounted/dists); do
150 testfilestats
"$file" '%U:%G:%a' '=' "${USER}:${USER}:555"