Thursday, December 16, 2010

SBR600 Project 0.3 (AutoQA-Man Pager Checker)

Originally the codes of this test were written by Ivana Varekova (varekova@redhat.com) but not tested and wrapped for autoqa. I modified the codes and put them into one test and created other control and configuration files.
You can get the man_checker test http://matrix.senecac.on.ca/~jwpark2/man_checker.tgz) including "control, control.autoqa, man_checker, man_checker.py" files.
You can also find out addition information on http://zenit.senecac.on.ca/wiki/index.php/AutoQA.
This test has not been fully set but still being examined.

This test is able to check man pages whether the references in "See also" section are valid or whether they point to inexistent tools. The test would be run with post-koji-build hook.

For whom to want to work on this test, the autoqa project provides a basic framework for executing a series of tests and reporting results.

In order to verifiy and run the AutoQA tests, you need to install autoqa and autotest first.


1. Pre-requistes


First, install the autotest and autoqa packages. These packages provide a local test harness and the autoqa hooks, watchers and python libraries needed to verify a test is functioning properly. Be sure to setup the correct package repositories


1. Configure the AutoQA package repository.

# wget -P /etc/yum.repos.d http://repos.fedorapeople.org/repos/fedora-qa/autoqa/fedora-autoqa.repo

2. Finally, with yum repositories configured, use the yum command to install autotest and its dependencies.

# yum install autotest-server

3. Install autoQA

# yum install autoqa

4. configure Cron : On the server you will want to periodically run AutoQA watchers, which will execute corresponding tests. We have prepared a cron file for these purposes, you can install it by:

# cp /usr/share/autoqa/autoqa.cron /etc/cron.d/


2. Examine the watcher


Now we need to simulate running the hook's watcher on AutoQA server to see what commands would be run. My test uses post-koji-build hook, which announces every package built and tagged with dist-fX-updates-candidate tag in Koji. So I would run:


# /usr/share/autoqa/post-koji-build/watch-koji-builds.py --dry-run

No previous run - checking builds in the past 3 hours

autoqa post-koji-build --kojitag dist-f12-updates-candidate --arch x86_64 --arch i686 espeak-1.42.04-1.fc12

autoqa post-koji-build --kojitag dist-f11-updates-candidate --arch x86_64 kdemultimedia-4.3.4-1.fc11

autoqa post-koji-build --kojitag dist-f11-updates-candidate --arch x86_64 kdeplasma-addons-4.3.4-1.fc11

autoqa post-koji-build --kojitag dist-f12-updates-candidate --arch x86_64 --arch i686 cryptopp-5.6.1-0.1.svn479.fc12

autoqa post-koji-build --kojitag dist-f12-updates-candidate --arch x86_64 drupal-6.15-1.fc12

autoqa post-koji-build --kojitag dist-f12-updates-candidate --arch x86_64 --arch i686 seamonkey-2.0.1-1.fc12

... output trimmed ...


3. Run just your test


Now I will run my test for real. But I don't want to run all tests of that post-koji-build hook on it. I will modify the command to look like this:


# autoqa post-koji-build --kojitag dist-f13-updates-candidate --arch x86_64 --arch i686 espeak-1.42.04-1.fc13 --test man_checker

The output will look like

13:53:03 DEBUG| Persistent state variable __group_level now set to 1

13:53:03 INFO | START man_checker man_checker timestamp=129252 5583 localtime=Dec 16 13:53:03

13:53:03 DEBUG| Persistent state variable __group_level now set to 2

13:53:03 DEBUG| Crash handling system enabled

13:53:03 DEBUG| Running 'rpm -qa'

13:53:04 INFO | Test started. Number of iterations: 1

13:53:04 INFO | Executing iteration 1 of 1

13:53:04 INFO | Dropping caches between iterations

13:53:04 DEBUG| Running 'sync'

13:53:05 DEBUG| Running 'echo 3 > /proc/sys/vm/drop_caches'

13:53:05 INFO | ****************************************

13:53:05 INFO | * RESULT: CRASHED

13:53:05 INFO | * SUMMARY: man_checker: CRASHED; TypeError: run_once() takes exa ctly 2 non-keyword arguments (1 given)

13:53:05 INFO | * HIGHLIGHTS: 0 lines

13:53:05 INFO | * OUTPUTS: 6 lines

No comments:

Post a Comment