The libabigail-selfcheck project performs regression tests for the Libabigail project. It does so by using Libabigail to compare the ABI of Fedora packages against themselves. The result of such comparisons should be the empty set.
This project thus uses the fedabipkgdiff tool, especially with its --self-compare option.
selfcheck.py - Python script containing main logic
package_list.fedora25-critpath.json - The set of critpath packages of the Fedora 25 distribution. It has been edited from the generic critpath packages description that can be retrieved from https://admin.fedoraproject.org/pkgdb/api/critpath?format=json
playbook/setup.yaml - Ansible playbook to run selfcheck automatically. Performs following tasks:
To execute it, run:
$ selfcheck.py --fedabipkgdiff <path-to-fedabipkgdiff> \ --abipkgdiff <path-to-abipkgdiff> \ package-set-json-file > output-file.txt
Or, if the fedabipkgdiff and abipkgdiff programs can be found in the default $PATH environment variable, then just run:
$ selfcheck.py package-set-json-file > output-file.txt
To run selfcheck test on a clean system where libabigail is not installed, we will have to perform few tasks like installing libabigail's build dependencies, compiling libabigail after cloning source code, cloning libabigail-selfcheck repo and then running selfcheck.py. All these tasks has been automated in ansible playbook setup.yaml.
ansible-playbook -i "localhost," -c local playbook/setup.yaml -K
ansible-playbook -i $TARGET_HOST, playbook/setup.yaml -e 'ansible_ssh_user=$USERNAME ansible_ssh_pass=$PASSWORD' -K