I am using a Debian repo (based on reprepro) for Wheezy and custom packages. I modify my custom packages from time to time and test them manually on different systems, e.g.:
- Test a) Installation of the new version of the Debian package
- Test b) Update of the Debian package on a system where an older version of the same Debian package already is installed
- Test c) Uninstalling the new version of the Debian package
Normally, I run these tests on tree different servers.
Since the number of custom Debian packages is growing continuously, the manual testing process consumes more and more of my time.
So I am looking for an existing test framework which automates stuff. Furthermore it would be great if this testing framework supports running these tests inside of containers/VMs (e.g. with snapshots, so we can start over and over again). Furthermore I'd expect a full report after a test is completed.
I know that I am not the only one on this planet looking for such a tool. However, using Google and the search feature on this site reveals no solution. I found "autotest", but I am not sure if this tool is the right one for me.
So - what do you use for automated testing of Debian package installation and updates?
Please note that I am not looking for a tool which tests the package building (e.g. Jenkins, Hudson).
I am sorry if this question is a duplicate of an already existing entry here on serverfault. If this is the case I would be happy if you could point me to the right page.
Edit: The debian project seems to use exatly what I am looking for:
- http://ci.debian.net/#package/abi-compliance-checker
- http://ci.debian.net/data/packages/unstable/amd64/a/abi-compliance-checker/20140703_120145.autopkgtest.log
Edit #2: It seems like debci is exactly what I am looking for (see links above). I will have a look at this tool and share my experience here. Nevertheless, I would be happy if you could share the tools you use for this particular purpose.
The tool you are looking for is piuparts, not debci.
debci is for running a package's test suite under "installed" conditions and hence also checks the installation. But it will not report a red "failure" upon installation failures, it will only report a yellow warning "temporary failure", e.g. when zsh became uninstallable after a BinNMU. See DEP 8 for a description of how such a test suite need to look like.
piuparts in comparison checks package installation, removal and upgrades for success, modified "conffiles" and leftover files. See the piuparts results of all official Debian packages at https://piuparts.debian.org/.
You though may want to run both, debci and piuparts on your packages, if at least one your package has a DEP-8-compliant test suite.