PMS Test Suite ============== A GSoC 2011 project by Michał Górny. [Homepage]( http://www.gentoo.org/proj/en/qa/pms/pms-test-suite.xml ) Few words of introduction ------------------------- The PMS Test Suite projects aims to create a comprehensive, universal test suite for Gentoo Package Managers. It is supposed to create a set of test ebuilds, run them using a particular Package Manager (like portage) and check their results to determine whether the PM does comply to the [PMS][1]. [1]:http://www.gentoo.org/proj/en/qa/pms.xml D-Bus setup ----------- Right now, the standard test library requires the system-wide D-Bus daemon to be set up and running. The `setup.py` install script installs the necessary configuration file along with the Python modules but one needs to start or restart the daemon as required before running the test suite. A future version will most probably drop D-Bus dependency and replace it with a less painful IPC. Running tests using Portage --------------------------- The Portage backend is the only backend supporting running tests using a random, unconfigured directory. Thus, running the test suite is as simple as: pms-tester -R /tmp/temporary-repo-location This will cover all the necessary steps of setting up the repository, creating ebuilds, setting `PORTDIR_OVERLAY` and running the test suite. Please note that it doesn't remove the repository afterwards -- it is intended to be reusable. Running tests using other PMs ----------------------------- If the intent is to use another PM than Portage, one must first create an (empty) repository for test suite and add it to PMs repository list. The simplest way of doing that involves using the Portage backend once again: pms-tester -R /var/cache/pms-tests --create-repo-only One may also create and name the repository manually: umask 022 mkdir -p /var/cache/pms-tests/profiles echo 'pms-test-suite' > /var/cache/pms-tests/profiles/repo_name In both cases, it is necessary to add the repository to PMs config; for Portage that would be: echo 'PORTDIR_OVERLAY="${PORTDIR_OVERLAY} /var/cache/pms-tests' >> /etc/make.conf The newly-created repository will be then referenced by its name: pms-tester -p pkgcore If a different name was used, that would be: pms-tester -r repository-name -p pkgcore Getting nice HTML results ------------------------- By default, pms-tester simply runs all tests and prints status information and details on test failures. If you'd like to get a nice HTML output instead (like [the one published by me][1]), please use: pms-tester -o html -O myoutput.html This will, however, create output for a single PM only. In order to use multiple ones, just specify all of them: pms-tester -p paludis -p pkgcore -p portage -o html -O myoutput.html [1]:http://www.gentoo.org/proj/en/qa/pms/pms-test-suite-output.html