Commit graph

233 commits

Author SHA1 Message Date
446d66ea06
coverage.sh: fix typo 2020-03-22 14:07:28 +01:00
aa3d2875a8
coverage.sh: also compare permissions, ownership, symlink targets and mtimes 2020-03-22 14:07:00 +01:00
a91d7440cb
remove libgcc1 for libc6 >= 2.30-2
The buildd variant of debootstrap will install libgcc-s1 *and* libgcc1
even though the former provides the latter. Remove the latter manually.

Since apt does not consider libgcc1 necessary, we have to download it
explicitly for debootstrap.

See Debian bug #953861
2020-03-15 14:04:57 +01:00
73b46e1812
coverage.sh: add test that makes sure that TMPDIR is used and works in unshare mode 2020-03-07 23:34:32 +01:00
5107116384
coverage.sh: use regex to not rely on exact gcc version 2020-03-06 08:44:22 +01:00
a8fa48fbc7
coverage.sh: host architecture in --logfile output must depend on host 2020-01-24 10:12:29 +01:00
62159d124a
support deb822-style format apt sources 2020-01-22 23:30:28 +01:00
3aef4dcc67
coverage.sh: add test comparing variant=debootstrap tarball for mode=root with mode=unshare 2020-01-21 13:32:05 +01:00
64fedc530e
Restore deterministic tar with pax and xattr support
- all creating and extraction of tarballs respects extended attributes
 - extended attributes require pax format, so explicitly request the
   format
 - to make pax bit-by-bit reproducible, ctime, atime and PID have to be
   removed from the headers with:
   --pax-option=exthdr.name=%d/PaxHeaders/%f,delete=atime,delete=ctime
 - always pass --numeric-owner to tar
 - always pass --xattrs when creating a tar
 - always pass --xattrs --xattrs-include=* when extracting a tar
2020-01-21 13:24:49 +01:00
77c8bb7252
coverage.sh: fix typo in header message 2020-01-21 13:12:03 +01:00
1f59856858
make_mirro.sh: install gpg into qemu machine 2020-01-21 13:08:35 +01:00
8481068cd2
coverage.sh: write mmdebstrap.tdy into temporary file instead of current directory 2020-01-21 13:07:18 +01:00
98c8c573de
coverage.sh: test taridshift 2020-01-18 23:13:10 +01:00
7d152ec7e0
add sync-in and sync-out hooks 2020-01-16 10:38:14 +01:00
5e0f6d0ca8
coverage.sh: strip -in from upload-in and download-in 2020-01-16 10:30:21 +01:00
66957e6abd
coverage.sh: redirect grep output to /dev/null instead of using --quiet to prevent broken pipe 2020-01-10 12:07:03 +01:00
40c9f76d91
coverage.sh: check the full log to also prevent debug printfs to accidentally make it into a commit 2020-01-10 12:03:49 +01:00
2cb6438454
add --dry-run and --simulate 2020-01-10 11:44:15 +01:00
c36bfe25e7
reduce cover_db.img size, now that we don't run it for exec-ed processes anymore 2020-01-09 12:41:26 +01:00
f867384c20
coverage.sh: test with perlcritic 2020-01-09 08:39:40 +01:00
4ba82a41cf
format code with perltidy 2020-01-08 17:46:41 +01:00
4fed488c35
when re-execing itself, keep Devel::Cover options 2020-01-08 15:33:49 +01:00
f2ad2976ef
coverage.sh: remove some debugging output 2020-01-07 18:10:44 +01:00
caf8fd8283
coverage.sh: exit 1 instead of continuing after printing differences 2020-01-07 18:10:12 +01:00
161f8b0ec2
coverage.sh: bump cover_db.img size to 384MB 2020-01-07 18:08:20 +01:00
dbdf3f34c6
add support for generating squashfs images using tar2sqfs 2020-01-07 17:40:13 +01:00
51fab612ed
coverage.sh: cleanup shared/test.sh 2020-01-06 13:03:45 +01:00
8a0b003353
coverage.sh: cleanup dpkg config 2020-01-06 13:03:29 +01:00
b143e170e2
coverage.sh: keep track of executed and skipped tests 2020-01-06 13:02:27 +01:00
04e40eca47
coverage.sh: output messages on stderr 2020-01-06 12:56:40 +01:00
dc7663b3a8
coverage.sh: allow running tests on architectures other than amd64 with reduced functionality 2020-01-06 11:10:31 +01:00
4daae7e9be
coverage.sh: only patch /etc/shadow if necessary 2020-01-05 21:01:10 +01:00
46c9d4e058
coverage.sh: change busybox test to not be super sensitive about changes in unstable anymore 2020-01-05 20:58:20 +01:00
163da0a72d
coverage.sh: add safety measure to ensure certain tests are not run outside qemu 2020-01-04 01:24:17 +01:00
95e4a82937
coverage.sh: redirect to /dev/null instead of --quiet to avoid broken pipe 2020-01-04 01:14:01 +01:00
170344a611
coverage.sh: busybox sub-essential system now contains libcrypt1 2020-01-04 00:37:02 +01:00
75609a0b55
coverage.sh: make sure we have a gzip compressed file by checking the first three magic bytes 2020-01-04 00:36:21 +01:00
b3949f6f7a
coverage.sh: continue loop after finding a program to diff with 2020-01-04 00:35:11 +01:00
de85ad44b2
coverage.sh: reintroduce testing of debootstrap '-' variant 2020-01-04 00:34:09 +01:00
647e7e37f1
coverage.sh: test xattr support
When creating a tarball: --xattrs
When extracting a tarball: --xattrs --xattrs-include='*'
2020-01-03 16:02:38 +01:00
868081727e
add special hooks copy-in, copy-out, tar-in, tar-out, upload and download 2019-12-09 10:40:51 +01:00
e6d5d74d87
--keyring now overwrites the default apt keyring
- apt can only handle one directory and one file as keyring
 - the signed-by option is used to specify the keyrings for suites that
   are not known by apt
2019-12-03 10:16:43 +01:00
6227bb2580
coverage.sh: add test for non-empty target directory 2019-12-02 23:53:06 +01:00
d262d67877
Fix parallel xz compression... hopefully for the last time... 2019-12-02 21:17:45 +01:00
aad36777e8
add --man option and reduce output of --help option
Printing the full man page requires the perl-doc package. To avoid this
dependency, print the less verbose output containing only the synopsis
and the option list for the --help option and print the full output
(requiring perldoc) for the --man option.
2019-11-29 08:45:13 +01:00
3a1d5413e2
also remove /var/log/apt/eipp.log.xz 2019-11-29 07:48:44 +01:00
f548c57ef8
coverage.sh: increase cover_db.img size to 256M 2019-11-29 07:47:06 +01:00
a2cd0e9843
add --keyring option as a shorthand for --aptopt='Dir::Etc::Trusted... 2019-10-28 16:29:38 +01:00
6cac8e70e8
allow multiple --include options and use array instead of hash
Package order is important when calling apt. Consider this dependency
graph:

    A -> B -> C | D , E -> D | C

"apt install A E" it will install "A B C E"
"apt install E A" it will install "E D A B"
2019-10-28 15:35:36 +01:00
c5a96736ef
coverage.sh: check that the expected number of tests get executed 2019-10-28 14:50:56 +01:00
c403b2b238
coverage.sh: add test for removal of start-stop-daemon and policy-rc.d in hook 2019-10-28 14:31:46 +01:00
e0732140c0
make hooks work in chrootless mode 2019-10-28 14:27:37 +01:00
d36ba6b371
allow multiple --architecture options and separation by whitespace 2019-10-27 22:16:23 +01:00
22c90c2ca6
it's possible that apt is already downloaded at the time where we want to install it 2019-10-19 16:24:58 +02:00
78358eaf9a
improve --components parsing with comma and whitespace as separator 2019-10-19 08:10:36 +02:00
503faaccf8
coverage.sh: in addition to cmp, run diffoscope and base64 and xxd 2019-10-18 23:06:57 +02:00
6bbf3943d1
coverage.sh: don't run make_mirror.sh 2019-10-18 22:46:23 +02:00
dde777123e
coverage.sh: require binfmt support form chrootless installation of libmagic-mgc on armhf 2019-10-06 18:42:44 +02:00
3d8b072e3f
coverage.sh: allow to disable running tests that can fail because of m-a:same version skews 2019-10-05 07:23:25 +02:00
b40f1530a2
coverage.sh: typo, delete shared/doc-debian.tar.list 2019-09-29 10:25:20 +02:00
4b919bbcc8
coverage.sh: busybox-based sub-essential does not need libattr1 anymore 2019-09-29 10:24:51 +02:00
594c8bbaa0
coverage.sh: also test --force-check-gpg 2019-09-29 10:24:01 +02:00
a7a80e22c1
coverage.sh: also filter out changelog of Debian native packages 2019-09-28 20:57:33 +02:00
fba31a078a
coverage.sh: remove /tmp/debian-chroot before exiting 2019-09-27 23:08:18 +02:00
311b58c689
fix print_header output for test 'fail with unshare as root user' 2019-09-27 23:04:51 +02:00
36d36d85ab
coverage.sh: always run --help and --version tests as root 2019-09-27 08:29:17 +02:00
87c742eded
coverage.sh: switch several tests from mode=root to $defaultmode 2019-09-27 08:27:49 +02:00
d4646fd8b0
coverage.sh: add test for i386 on amd64 without qemu 2019-09-26 23:32:52 +02:00
70b33609ea
coverage.sh: add test for armhf without qemu support 2019-09-26 23:31:08 +02:00
39503bd0af
coverage.sh: add test for installing onto existing file 2019-09-26 23:29:55 +02:00
d5cdc5b9b9
coverage.sh: add test for installing into / 2019-09-26 23:28:27 +02:00
598d353def
coverage.sh: add test for missing /etc/resolv.conf and /etc/hostname 2019-09-26 23:26:47 +02:00
c8b9a2ed96
coverage.sh: add test for copy:// and file:// mirrors 2019-09-26 23:25:05 +02:00
46eb9cdc5d
coverage.sh: add test for path with quotes 2019-09-26 23:24:10 +02:00
8a2897d629
coverage.sh: add test for non-empty lost+found 2019-09-26 23:20:58 +02:00
4447769b50
when creating a tarball in chrootless mode, use root ownership 2019-09-04 13:50:25 +02:00
a921e32e6c
Do not unconditionally read standard input
mmdebstrap used to attempt reading stdin if it was not a tty. This leads
to unexpected behaviour when mmdebstrap is used through ssh without a
pseudo-terminal allocated like so:

    $ ssh remote mmdebstrap unstable /output/dir http://mirror

This will stall forever, waiting for data on standard input. Or
consider:

    $ ssh remote << END
    > somecommand
    > mmdebstrap unstable /output/dir http://mirror
    > othercommand
    END

This will make mmdebstrap read "othercommand" and everything that
follows as a sources.list entry. To prevent this unexpected behaviour,
the following ways to use mmdebstrap will not be supported anymore:

    $ mmdebstrap unstable /output/dir < sources.list
    $ mmdebstrap unstable /output/dir http://mirror < sources.list

Instead, one must now explicitly pass "-" if one wants mmdebstrap to
read from stdin:

    $ mmdebstrap unstable /output/dir - < sources.list
    $ mmdebstrap unstable /output/dir http://mirror - < sources.list
2019-08-28 00:53:04 +02:00
1219a65723
add /var/lib/dpkg/arch in chrootless mode when chroot architecture differs 2019-08-26 18:25:21 +02:00
77f2cbee5d
coverage.sh: filter out potential binNMU changelogs 2019-08-26 15:47:11 +02:00
d9e5603f6f
coverage.sh: instead of installing gcc-8-base:armhf, install libmagic-mgc:armhf
- is not part of the native installation set
 - does not have any dependencies
 - installs only few files
 - doesn't change its name regularly (like gcc-*-base)
2019-08-26 15:46:19 +02:00
2d2cdfbbc3
create /var/lib/dpkg/cmethopt for dselect (see #930788) 2019-08-21 14:57:54 +02:00
a425b948dd
updates for release of Debian buster 2019-07-24 21:29:14 +02:00
b2d5a45932
cleanup auxfiles *after* running apt-get update or otherwise it will be re-created 2019-04-23 13:28:55 +02:00
19fdb4914d
coverage.sh: auto generate package list for aspcud instead of hardcoding it 2019-03-27 11:44:45 +01:00
055af094ea
coverage.sh: add test auto-mode without unshare capabilities 2019-03-27 11:29:36 +01:00
ea8315a5f1
coverage.sh: allow setting chroot distribution with DEFAULT_DIST 2019-03-25 14:21:55 +01:00
6c39fe8b5a
coverage.sh: add test for aspcud external apt solver 2019-03-24 08:16:45 +01:00
f4ed753af5
coverage.sh: use pipe to diff instead of temporary file 2019-03-15 10:24:13 +01:00
b7f7f4e581
coverage.sh: fix total number of tests 2019-03-01 12:43:29 +01:00
920877fa2a
disable apt sandboxing if the chroot directory is not accessible by the _apt user 2019-02-28 11:54:03 +01:00
632b19eca3
coverage.sh: re-enable fakechroot testing as #915559 got fixed 2019-02-28 07:51:54 +01:00
d0f0283120
do not cleanup apt and dpkg lock files to not set bad precedence 2019-02-28 00:20:00 +01:00
0e49b70a0f
coverage.sh: /run/mount/utab is created inside qemu but not on gitlab CI -- weird... 2019-02-28 00:18:06 +01:00
c0ac77b01d
coverage.sh: stable default mirror: don't forget to remove chroot and only run test with qemu 2019-02-24 11:00:24 +01:00
48e34852a2
clean /var/lib/apt/lists/auxfiles so that apt older than 1.6 has no problem with the chroot 2019-02-23 13:22:44 +01:00
67343d0309
coverage.sh: adjust total number of tests 2019-02-23 08:58:08 +01:00
732eb2a1d2
coverage.sh: disable fakechroot because of https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=915559 2019-02-23 08:56:54 +01:00
5a618ea2f5
coverage.sh: add TODO item 2019-02-23 08:56:03 +01:00
a91a825e67
add --version option 2019-02-23 08:55:31 +01:00
26b1ff3fff
coverage.sh: fix print_header with defaultmode tests 2019-02-23 08:47:53 +01:00
93cf0544c6
coverage.sh: add 7 more tests 2019-02-23 08:46:32 +01:00
7126feff41
coverage.sh: increase cover_db.img size to 200M 2019-02-23 08:43:46 +01:00
1b8ad8400b
add --logfile option 2019-02-23 08:43:15 +01:00
0ced3cc3de
coverage.sh: add tests for --verbose, --debug and --quiet 2019-02-20 17:40:26 +01:00
1f967ed163
coverage.sh: don't be brief when diffing against debootstrap results 2019-02-20 17:37:53 +01:00
0b058c7db1
add --setup-hook, --essential-hook and rename --customize to --customize-hook 2019-02-20 13:32:49 +01:00
d72a582a8b
coverage.sh: work around bug #917773 2019-02-20 00:31:06 +01:00
89718d367e
test no-op options and print info message when they are used 2019-02-15 12:42:46 +01:00
2eed1262db
coverage.sh: create tarball as root with /tmp mounted nodev 2019-01-26 08:31:40 +01:00
316f909a1e
coverage.sh: test target directory with empty lost+found 2019-01-26 08:31:40 +01:00
9b3e2bce8d
coverage.sh: when adding foreign architecture, also install foreign package 2019-01-26 08:31:40 +01:00
e07b70c361
coverage.sh: perform default mirror test with stable so that we can also check if the security mirror gets added 2019-01-26 08:31:40 +01:00
a3afe24fc0
Instead of using gzip compression support, run compressor ourselves
- otherwise ./dev tar cannot be concatenated with the rest
 - test compressor early
 - better document the TARGET option
2019-01-24 12:32:46 +01:00
6f8bb8c977
since copy() is using syswrite(), we must flush the filehandle before calling it 2019-01-20 10:46:16 +01:00
9453c7e2a9
coverage.sh: add test for --customize 2019-01-13 13:36:42 +01:00
1c7e0c86f0
coverage.sh: mmdebstrap now creates /var/lib/dpkg/available 2019-01-13 10:14:25 +01:00
80aea48fa7
coverage.sh: testing is now also affected by #917386 and #917407 2019-01-13 10:13:41 +01:00
1e0b4cb3b0
now that fakechroot and proot are fixed, add support for for variants beyond essential and apt 2019-01-01 14:28:56 +01:00
b113771a81
make_mirror.sh: never leave the cache in an inconsistent state by atomically switching symlinks 2018-12-30 16:37:03 +01:00
b6e8c9dbb7
coverage.sh: skip comparison with debootstrap unstable because of #917386 and #917407 2018-12-28 07:26:24 +01:00
076d035f65
coverage.sh: check requirement for disk image and debootstrap tarballs before running 2018-12-28 07:19:05 +01:00
ef576ab389
use LC_ALL=C.UTF-8 instead of LC_ALL=C 2018-12-27 14:16:23 +01:00
97d273aaf6
disable merged usr 2018-12-07 00:17:10 +01:00
c8dbe5bd15
coverage.sh: account for differently ordered /etc/shells 2018-12-07 00:13:51 +01:00
94862ef03e
coverage.sh: make regex more precise and relax it for version numbers 2018-12-05 12:01:58 +01:00
2618a587a0
coverage.sh: allow running without qemu
On machines without kvm using qemu is not practical. Now, most tests can
be run without a container. Also add support for missing unshare, proot
and binfmt.
2018-12-05 10:33:03 +01:00
6634f4f49f
coverage.sh: fix status line 2018-12-05 08:27:57 +01:00
40e25ef653
coverage.sh: only run cover if coverage data exists
This is useful if ./coverage.sh is run with CMD=./mmdebstrap and thus
gathering coverage data is disabled.
2018-11-23 17:28:37 +01:00
13358fc039
coverage.sh: conditionally copy mmdebstrap to ./shared
- only copy if local copy is newer than the copy in ./shared
 - this enables the autopkgtest to place its own version in ./shared
   which will then not be overwritten
2018-11-23 17:27:40 +01:00
935f5b7a66
Instead of requiring root, use qemu
- unprivileged creation of rootfs using guestfish
 - allows full control over network, installed packages
 - merged test.sh into coverage.sh
2018-11-21 00:21:43 +01:00
bcb6b65b72
coverage.sh: add more tests 2018-11-02 17:24:46 +01:00
3c411012be
coverage.sh: print script progress 2018-10-24 02:37:45 +02:00
f3d227ae5f
add coverage.sh 2018-10-23 18:04:34 +02:00