#2 Add CI tests using the standard test interface
Merged 6 years ago by raveit65. Opened 6 years ago by sturivny.
git://fedorapeople.org/~sturivny/dbus-python add-tests  into  master

Add CI tests using the standard test interface
Sergey Turivniy • 6 years ago  
tests/tests.yml
file added
+15
@@ -0,0 +1,15 @@

+ ---

+ # This first play always runs on the local staging system

+ - hosts: localhost

+   roles:

+   - role: standard-test-basic

+     tags:

+     - classic

+     tests:

+     - upstream-testset

+     required_packages:

+     - python3-dbus

+     - rpm-build    

+     - gcc 

+     - wget

+     - make

tests/upstream-testset/runtest.sh
file added
+55
@@ -0,0 +1,55 @@

+ #!/bin/bash -x

+ 

+ # Copyright (c) 2015 Red Hat, Inc. All rights reserved. This copyrighted material

+ # is made available to anyone wishing to use, modify, copy, or

+ # redistribute it subject to the terms and conditions of the GNU General

+ # Public License v.2.

+ #

+ # This program is distributed in the hope that it will be useful, but WITHOUT ANY

+ # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A

+ # PARTICULAR PURPOSE. See the GNU General Public License for more details.

+ #

+ # You should have received a copy of the GNU General Public License

+ # along with this program; if not, write to the Free Software

+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

+ #

+ # Author: Vladimir Benes <vbenes@redhat.com>

+ 

+ PKG=dbus-python

+ PKG_DIR=$2

+ if [ -z "$PKG_DIR" ]; then

+   PKG_DIR=$1

+ fi

+ 

+ RPMBUILD=$(rpm --eval '%{_topdir}')

+ LOG="/tmp/$TEST.log"

+ PKG_SRPM=$(rpm -q --qf '%{SOURCERPM}\n' python3-dbus | head -n1)

+ PKG_PATH=$(rpm -q --qf '%{VERSION}/%{RELEASE}\n' python3-dbus | head -n1)

+ PKG_BUILD_PATH=$(rpm -q --qf "$PKG_DIR-%{VERSION}\n" $PKG | head -n1)

+ 

+ echo "Downloading SRPM"

+ wget https://kojipkgs.fedoraproject.org/packages/$PKG/$PKG_PATH/src/$PKG_SRPM

+ rm -rf $RPMBUILD

+ rpm -ivf $PKG_SRPM

+ echo "Building dependencies"

+ dnf builddep -y $PKG_SRPM

+ echo "Rebuilding the package"

+ rpmbuild -bc $RPMBUILD/SPECS/$PKG.spec

+ echo "Running make check"

+ cd $RPMBUILD/BUILD/$PKG*

+ ./configure

+ make check | tee -a $LOG

+ rc=$?

+ RESULT=FAIL

+ 

+ if [ $rc -eq 0 ]; then

+   RESULT="PASS"

+ fi

+ 

+ if which rhts-report-result &> /dev/null; then

+    rhts-report-result $TEST $RESULT $LOG

+ fi

+ 

+ exit $rc

+ echo "Result is: $RESULT"

+ rm $LOG

no initial comment

Justification

Adds tests according to the CI wiki specifically the standard test interface in the spec.

The playbook includes Tier1 level test cases that have been tested in the following contexts and is passing reliably: Classic and Container. Test logs are stored in the artifacts directory.

The following steps are used to execute the tests using the standard test interface:


Test enveronment

Make sure you have installed packages from the spec

$ rpm -q ansible python2-dnf libselinux-python standard-test-roles
ansible-2.3.2.0-1.fc26.noarch
python2-dnf-2.6.3-11.fc26.noarch
libselinux-python-2.6-7.fc26.x86_64
standard-test-roles-2.4-1.fc26.noarch



Clone tests to you PC

$ git clone git://fedorapeople.org/~sturivny/dbus-python
$ cd dbus-python/



Run tests for Classic

All test should be run under the root

# tests/
# sudo ansible-playbook --tags=classic tests.yml

Snip of the example test run:

TASK [standard-test-basic : Copy tests to target] *******************************************************************************************************************************************************************
changed: [localhost]

TASK [standard-test-basic : Make artifacts directory] ***************************************************************************************************************************************************************
changed: [localhost]

TASK [standard-test-basic : Execute tests] **************************************************************************************************************************************************************************
changed: [localhost] => (item=upstream-testset)

TASK [standard-test-basic : Pull out the logs] **********************************************************************************************************************************************************************
changed: [localhost]

TASK [standard-test-basic : Check the results] **********************************************************************************************************************************************************************
changed: [localhost]

PLAY RECAP **********************************************************************************************************************************************************************************************************
localhost                  : ok=12   changed=6    unreachable=0    failed=0   



Notes

Tests will be enabled in CI, yet gating is currently disabled, so nothing will change. Tests will run on each dist-git commit, they are not triggered by koji builds and if you are using FMN, it should notify you of failures normally.

The RH QE maintainer contact in case you have questions: Vladimir Benes vbenes@redhat.com
The idea is that these tests become yours just as you're maintaining the package, there will, of course, be people around if you have questions or troubles.

Commit 777b14d fixes this pull-request

Pull-Request has been merged by raveit65

6 years ago

Pull-Request has been merged by raveit65

6 years ago