bunsen
indexes and stores a collection of DejaGNU test result files
in a Git repo. The Git repo generated by bunsen
contains an index in
JSON format to speed up querying and test result analysis. For test
result analysis, bunsen
includes a Python library and a collection
of analysis scripts.
When storing test result data, Git's de-duplication produces an
impressive compression factor. For example, a collection of 8758
testruns from https://gdb-buildbot.osci.io/results/ takes up 24GB when
the log files are individually compressed with xz
, but only 3.2GB
when the files are packed into a Git repo using `bunsen**.
The codebase is intended as a starting point towards automatic regression detection and analysis for free software projects whose testing setup generates a large volume of test results across different system configurations.
Analysis examples for the LPC/GNUTools 2021 talk: https://people.redhat.com/~smakarov/2021-lpc-talk/
Tutorial from the GNU Tools Cauldron 2019 talk: doc/2019-cauldron-tutorial.md
bunsen
requires Git, Python 3 and the following libraries:
$ pip3 install --user tqdm # see https://github.com/tqdm/tqdm
$ pip3 install --user GitPython # see https://github.com/gitpython-developers/GitPython
$ pip3 install --user python-dateutil # see https://github.com/dateutil/dateutil/
Or, more simply:
$ pip3 install --user -r requirements.txt
Python3 versions older than 3.4 may also require:
$ pip3 install --user pathlib # see https://docs.python.org/3/library/pathlib.html
Example setup for the server/bunsen-cgi.py
dashboard and server/bunsen-upload.py
upload scripts with lighttpd
:
$ cp bunsen-lighttpd.conf.example bunsen-lighttpd.conf
$ vim bunsen-lighttpd.conf # edit var.bunsen_root
$ vim .bunsen/config # add 'manifest', 'commit_module' options to section [bunsen-push];
# see server/bunsen-upload.py for details
$ lighttpd -D -f ./bunsen-lighttpd.conf
Example .bunsen/config
for a SystemTap Bunsen setup:
[core]
project=systemtap
[project "systemtap"]
source_repo=/opt/upstream-systemtap
gitweb_url=https://sourceware.org/git/?p=systemtap.git
[bunsen-upload]
manifest=sysinfo,systemtap.dmesg*,systemtap.sum*,systemtap.log*
commit_module=systemtap.commit_logs
Here, /opt/upstream-systemtap
is a Git checkout of the Sourceware SystemTap git repo.
bunsen
is now hosted on sourceware.org:
- git: http://www.sourceware.org/git/?p=bunsen.git;a=summary (+ GitHub repo kept as a mirror)
- bugzilla: https://sourceware.org/bugzilla/buglist.cgi?product=bunsen
- mailing list: [email protected]