From 2e39fac89a4f342ad685e7cf86c658cb27f74ef8 Mon Sep 17 00:00:00 2001 From: Merlin Mathesius Date: Tue, 3 Apr 2018 15:26:58 -0500 Subject: [PATCH 01/57] Sync with upstream release 52.1 (LTS series). Correct deprecated use of unversioned python. Remove obsolete CI test directory. --- .gitignore | 1 + avocado-selftest-fix-cmdline-check.patch | 15 +++++++++ python-avocado.spec | 43 ++++++++++++++++-------- sources | 2 +- test/help-usage-1/Makefile | 14 -------- test/help-usage-1/README.rst | 13 ------- test/help-usage-1/runtask.yml | 29 ---------------- test/help-usage-1/runtest.sh | 13 ------- 8 files changed, 46 insertions(+), 84 deletions(-) create mode 100644 avocado-selftest-fix-cmdline-check.patch delete mode 100644 test/help-usage-1/Makefile delete mode 100644 test/help-usage-1/README.rst delete mode 100644 test/help-usage-1/runtask.yml delete mode 100755 test/help-usage-1/runtest.sh diff --git a/.gitignore b/.gitignore index 5684048..c102fa6 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ /avocado-50.0.tar.gz /avocado-51.0.tar.gz /avocado-52.0.tar.gz +/avocado-52.1.tar.gz diff --git a/avocado-selftest-fix-cmdline-check.patch b/avocado-selftest-fix-cmdline-check.patch new file mode 100644 index 0000000..525a869 --- /dev/null +++ b/avocado-selftest-fix-cmdline-check.patch @@ -0,0 +1,15 @@ +diff -ru ../avocado-52.1.orig/selftests/functional/test_plugin_diff.py ./selftests/functional/test_plugin_diff.py +--- ../avocado-52.1.orig/selftests/functional/test_plugin_diff.py 2018-03-01 12:05:02.000000000 -0600 ++++ ./selftests/functional/test_plugin_diff.py 2018-03-13 16:50:33.662490323 -0500 +@@ -52,9 +52,9 @@ + result = self.run_and_check(cmd_line, expected_rc) + msg = "# COMMAND LINE" + self.assertIn(msg, result.stdout) +- msg = "-./scripts/avocado run" ++ msg = "-%s run" % AVOCADO + self.assertIn(msg, result.stdout) +- msg = "+./scripts/avocado run" ++ msg = "+%s run" % AVOCADO + self.assertIn(msg, result.stdout) + + def test_diff_nocmdline(self): diff --git a/python-avocado.spec b/python-avocado.spec index fc9c075..036169a 100644 --- a/python-avocado.spec +++ b/python-avocado.spec @@ -11,10 +11,10 @@ %global gittar %{srcname}-%{version}.tar.gz %else %if ! 0%{?commit:1} - %global commit bb62fe5a1fa93ea6573da46556928af5041c1b7d + %global commit 0ddd3c7b92f18c85157766e9e0ec810e6b3dd37e %endif %if ! 0%{?commit_date:1} - %global commit_date 20170626 + %global commit_date 20180301 %endif %global shortcommit %(c=%{commit};echo ${c:0:7}) %global gitrel .%{commit_date}git%{shortcommit} @@ -27,14 +27,14 @@ # enabled by default. # However, selftests need to be disabled when libvirt is not available. %global with_tests 1 -%if 0%{?rhel} +%if 0%{?rhel} && 0%{?rhel} <= 7 # libvirt is not available for all RHEL builder architectures %global with_tests 0 %endif Name: python-%{pkgname} -Version: 52.0 -Release: 3%{?gitrel}%{?dist} +Version: 52.1 +Release: 1%{?gitrel}%{?dist} Summary: Framework with tools and libraries for Automated Testing Group: Development/Tools # Found licenses: @@ -51,6 +51,7 @@ Source0: https://github.com/avocado-framework/%{srcname}/archive/%{version}.tar. Source0: https://github.com/avocado-framework/%{srcname}/archive/%{commit}.tar.gz#/%{gittar} %endif Patch0: avocado-selftest-doublefree-disable.patch +Patch1: avocado-selftest-fix-cmdline-check.patch BuildArch: noarch BuildRequires: fabric BuildRequires: pystache @@ -65,14 +66,14 @@ BuildRequires: python-resultsdb_api %if 0%{?with_tests} BuildRequires: libvirt-python BuildRequires: perl(TAP::Parser) -%if 0%{?rhel} +%if 0%{?rhel} && 0%{?rhel} <= 7 BuildRequires: python-yaml %else BuildRequires: python2-yaml %endif %endif -%if 0%{?rhel} +%if 0%{?rhel} && 0%{?rhel} <= 7 BuildRequires: python-psutil BuildRequires: python-requests BuildRequires: python-setuptools @@ -105,10 +106,7 @@ BuildRequires: procps-ng BuildRequires: python-crypto %endif -%if 0%{?fedora} >= 25 -BuildRequires: kmod -%endif -%if 0%{?rhel} >= 7 +%if 0%{?fedora} >= 25 || 0%{?rhel} >= 7 BuildRequires: kmod %endif @@ -128,7 +126,7 @@ Requires: pyliblzma Requires: pystache Requires: python2 -%if 0%{?rhel} +%if 0%{?rhel} && 0%{?rhel} <= 7 Requires: python-requests Requires: python-stevedore %else @@ -219,7 +217,7 @@ server. Summary: Avocado plugin to generate variants out of yaml files %{?python_provide:%python_provide python2-%{pkgname}-plugins-resultsdb} Requires: python2-%{pkgname} == %{version}-%{release} -%if 0%{?rhel} +%if 0%{?rhel} && 0%{?rhel} <= 7 Requires: python-yaml %else Requires: python2-yaml @@ -249,6 +247,7 @@ examples of how to write tests on your own. %setup -q -n %{srcname}-%{commit} %endif %patch0 -p1 +%patch1 -p1 # package plugins-runner-vm requires libvirt-python, but the RPM # version of libvirt-python does not publish the egg info and this # causes that dep to be attempted to be installed by pip @@ -296,6 +295,12 @@ popd pushd optional_plugins/varianter_yaml_to_mux %{__python2} setup.py install --root %{buildroot} --skip-build popd +%{__mv} %{buildroot}%{_bindir}/avocado %{buildroot}%{_bindir}/avocado-%{python2_version} +%{__ln_s} avocado-%{python2_version} %{buildroot}%{_bindir}/avocado-2 +%{__ln_s} avocado-%{python2_version} %{buildroot}%{_bindir}/avocado +%{__mv} %{buildroot}%{_bindir}/avocado-rest-client %{buildroot}%{_bindir}/avocado-rest-client-%{python2_version} +%{__ln_s} avocado-rest-client-%{python2_version} %{buildroot}%{_bindir}/avocado-rest-client-2 +%{__ln_s} avocado-rest-client-%{python2_version} %{buildroot}%{_bindir}/avocado-rest-client %{__mkdir_p} %{buildroot}%{_mandir}/man1 %{__install} -m 0644 man/avocado.1 %{buildroot}%{_mandir}/man1/avocado.1 %{__install} -m 0644 man/avocado-rest-client.1 %{buildroot}%{_mandir}/man1/avocado-rest-client.1 @@ -331,7 +336,9 @@ find %{buildroot}%{_docdir}/avocado -type f -name '*.py' -exec %{__chmod} -c -x # Package build environments have the least amount of resources # we have observed so far. Let's avoid tests that require too # much resources or are time sensitive. - AVOCADO_CHECK_LEVEL=0 selftests/run + # Also, use of unversioned python is deprecated, so force use of python2 as per + # https://fedoraproject.org/wiki/Changes/Avoid_usr_bin_python_in_RPM_Build + AVOCADO_CHECK_LEVEL=0 UNITTEST_AVOCADO_CMD="$HOME/.local/bin/avocado" %{__python2} selftests/run %endif @@ -355,7 +362,11 @@ find %{buildroot}%{_docdir}/avocado -type f -name '*.py' -exec %{__chmod} -c -x %{_sysconfdir}/avocado/scripts/job/post.d/README %{python2_sitelib}/avocado/ %{python2_sitelib}/avocado_framework-%{version}-py%{python2_version}.egg-info +%{_bindir}/avocado-%{python2_version} +%{_bindir}/avocado-2 %{_bindir}/avocado +%{_bindir}/avocado-rest-client-%{python2_version} +%{_bindir}/avocado-rest-client-2 %{_bindir}/avocado-rest-client %{_mandir}/man1/avocado.1.gz %{_mandir}/man1/avocado-rest-client.1.gz @@ -408,6 +419,10 @@ find %{buildroot}%{_docdir}/avocado -type f -name '*.py' -exec %{__chmod} -c -x %changelog +* Tue Apr 03 2018 Merlin Mathesius - 52.1-1 +- Sync with upstream release 52.1 (LTS series). +- Correct deprecated use of unversioned python. + * Wed Aug 09 2017 Merlin Mathesius - 52.0-3 - Fix FTBFS error by disabling selfcheck producing false failures - Update SPEC to use pkgname instead of srcname macro where appropriate diff --git a/sources b/sources index 13be916..54aeac2 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (avocado-52.0.tar.gz) = 291587c90b2774e3030595cb9ae3781e1bd151c9a3d21e899a64ba1da766387b40979700f4c6b1c373156f2eda4be1857c98b08cc32c5a712c8bd4f168da04cc +SHA512 (avocado-52.1.tar.gz) = fb97ea6056700f57f34e8e4ce0c27774c386d646aaffc7da2abb8d0a797cff4448934789ffaf81da1592fceae1bb464da2b5dde000730c4f417b03552a432c6c diff --git a/test/help-usage-1/Makefile b/test/help-usage-1/Makefile deleted file mode 100644 index d71e61f..0000000 --- a/test/help-usage-1/Makefile +++ /dev/null @@ -1,14 +0,0 @@ -.PHONY: all install download clean - -BUILT_FILES= - -FILES=runtest.sh Makefile - -run: $(FILES) build - ./runtest.sh - -build: $(BUILT_FILES) - chmod a+x ./runtest.sh - -clean: - rm -f *~ $(BUILT_FILES) diff --git a/test/help-usage-1/README.rst b/test/help-usage-1/README.rst deleted file mode 100644 index 1d25e34..0000000 --- a/test/help-usage-1/README.rst +++ /dev/null @@ -1,13 +0,0 @@ -help-usage-1 -============ - -This is an example task for `Taskotron `_ -that tests the basic functionality of 'avocado --help' to confirm it generates a usage message. - -Standalone you can run it like this:: - - $ make run - -Through taskotron runner you can run it like this:: - - $ runtask -i python-avocado-46.0-2.fc25 -t koji_build -a noarch runtask.yml diff --git a/test/help-usage-1/runtask.yml b/test/help-usage-1/runtask.yml deleted file mode 100644 index 1ff3857..0000000 --- a/test/help-usage-1/runtask.yml +++ /dev/null @@ -1,29 +0,0 @@ ---- -name: help-usage-1 -desc: "Tests the basic functionality of 'avocado --help' to confirm it generates a usage message." -maintainer: merlinm - -input: - args: - - koji_build - - arch - -environment: - rpm: - - make - -actions: - - name: download the build - koji: - action: download - koji_build: ${koji_build} - arch: $arch - target_dir: ${workdir}/rpms - - - name: install the build - shell: - - dnf install -y ${workdir}/rpms/*.rpm - - - name: run test - shell: - - make run diff --git a/test/help-usage-1/runtest.sh b/test/help-usage-1/runtest.sh deleted file mode 100755 index b2cb24b..0000000 --- a/test/help-usage-1/runtest.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh - -PACKAGE=python-avocado - -# Assume the test will pass. -result=PASS - -avocado --help | grep -q -i '^usage:' -if [ $? -ne 0 ]; then - result=FAIL -fi - -echo $result From 56cf4c46827524941171ef24554964d5998057bf Mon Sep 17 00:00:00 2001 From: Merlin Mathesius Date: Mon, 14 May 2018 14:10:36 -0500 Subject: [PATCH 02/57] correct python_provide argument typo for varianter-yaml-to-mux plugin --- python-avocado.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/python-avocado.spec b/python-avocado.spec index d80d9dd..5f4e594 100644 --- a/python-avocado.spec +++ b/python-avocado.spec @@ -34,7 +34,7 @@ Name: python-%{pkgname} Version: 52.1 -Release: 2%{?gitrel}%{?dist} +Release: 3%{?gitrel}%{?dist} Summary: Framework with tools and libraries for Automated Testing Group: Development/Tools # Found licenses: @@ -215,7 +215,7 @@ server. %package -n python2-%{pkgname}-plugins-varianter-yaml-to-mux Summary: Avocado plugin to generate variants out of yaml files -%{?python_provide:%python_provide python2-%{pkgname}-plugins-resultsdb} +%{?python_provide:%python_provide python2-%{pkgname}-plugins-varianter-yaml-to-mux} Requires: python2-%{pkgname} == %{version}-%{release} %if 0%{?rhel} && 0%{?rhel} <= 7 Requires: python-yaml @@ -419,6 +419,9 @@ find %{buildroot}%{_docdir}/avocado -type f -name '*.py' -exec %{__chmod} -c -x %changelog +* Mon May 14 2018 Merlin Mathesius - 52.1-3 +- correct python_provide argument typo for varianter-yaml-to-mux plugin + * Mon Apr 9 2018 Cleber Rosa - 52.1-2 - Added Fedora CI tests From 384b8eaf64dc83b42134e39f6bfb2d22e409aad2 Mon Sep 17 00:00:00 2001 From: Merlin Mathesius Date: Mon, 14 May 2018 17:09:04 -0500 Subject: [PATCH 03/57] Dependency fabric has been renamed to python2-fabric3 --- python-avocado.spec | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/python-avocado.spec b/python-avocado.spec index 5f4e594..6a185f0 100644 --- a/python-avocado.spec +++ b/python-avocado.spec @@ -34,7 +34,7 @@ Name: python-%{pkgname} Version: 52.1 -Release: 3%{?gitrel}%{?dist} +Release: 4%{?gitrel}%{?dist} Summary: Framework with tools and libraries for Automated Testing Group: Development/Tools # Found licenses: @@ -53,7 +53,6 @@ Source0: https://github.com/avocado-framework/%{srcname}/archive/%{commit}.tar.g Patch0: avocado-selftest-doublefree-disable.patch Patch1: avocado-selftest-fix-cmdline-check.patch BuildArch: noarch -BuildRequires: fabric BuildRequires: python2-pystache BuildRequires: python2-aexpect BuildRequires: python2-devel @@ -63,6 +62,12 @@ BuildRequires: python2-lxml BuildRequires: python2-mock BuildRequires: python2-resultsdb_api +%if 0%{?fedora} >= 29 +BuildRequires: python2-fabric3 +%else +BuildRequires: fabric +%endif + %if 0%{?with_tests} BuildRequires: python2-libvirt BuildRequires: perl(TAP::Parser) @@ -119,13 +124,18 @@ these days a framework) to perform automated testing. Summary: %{summary} License: GPLv2 and MIT %{?python_provide:%python_provide python2-%{pkgname}} -Requires: fabric Requires: gdb Requires: gdb-gdbserver Requires: pyliblzma Requires: python2-pystache Requires: python2 +%if 0%{?fedora} >= 29 +Requires: python2-fabric3 +%else +Requires: fabric +%endif + %if 0%{?rhel} && 0%{?rhel} <= 7 Requires: python-requests Requires: python-stevedore @@ -166,10 +176,14 @@ arbitrary filesystem location. Summary: Avocado Runner for Remote Execution %{?python_provide:%python_provide python2-%{pkgname}-plugins-runner-remote} Requires: python2-%{pkgname} == %{version}-%{release} -Requires: fabric %if 0%{?fedora} == 24 Requires: python-crypto %endif +%if 0%{?fedora} >= 29 +Requires: python2-fabric3 +%else +Requires: fabric +%endif %description -n python2-%{pkgname}-plugins-runner-remote Allows Avocado to run jobs on a remote machine, by means of an SSH @@ -252,6 +266,9 @@ examples of how to write tests on your own. # version of libvirt-python does not publish the egg info and this # causes that dep to be attempted to be installed by pip sed -e "s/'libvirt-python'//" -i optional_plugins/runner_vm/setup.py +%if 0%{?fedora} >= 29 +sed -e "s/'fabric'/'fabric3'/" -i optional_plugins/runner_remote/setup.py +%endif %build %{__python2} setup.py build @@ -419,6 +436,9 @@ find %{buildroot}%{_docdir}/avocado -type f -name '*.py' -exec %{__chmod} -c -x %changelog +* Mon May 14 2018 Merlin Mathesius - 52.1-4 +- Dependency fabric has been renamed to python2-fabric3 + * Mon May 14 2018 Merlin Mathesius - 52.1-3 - correct python_provide argument typo for varianter-yaml-to-mux plugin From 1087f35c47f4c5fcc7e4591d55000eee6d43a99c Mon Sep 17 00:00:00 2001 From: Merlin Mathesius Date: Tue, 5 Jun 2018 08:26:58 -0500 Subject: [PATCH 04/57] Conditionalize python2 dependencies for cross-release compatibility of SPEC --- python-avocado.spec | 38 ++++++++++++++++++++++++++++++++------ 1 file changed, 32 insertions(+), 6 deletions(-) diff --git a/python-avocado.spec b/python-avocado.spec index 6a185f0..ac80f02 100644 --- a/python-avocado.spec +++ b/python-avocado.spec @@ -34,7 +34,7 @@ Name: python-%{pkgname} Version: 52.1 -Release: 4%{?gitrel}%{?dist} +Release: 5%{?gitrel}%{?dist} Summary: Framework with tools and libraries for Automated Testing Group: Development/Tools # Found licenses: @@ -53,15 +53,21 @@ Source0: https://github.com/avocado-framework/%{srcname}/archive/%{commit}.tar.g Patch0: avocado-selftest-doublefree-disable.patch Patch1: avocado-selftest-fix-cmdline-check.patch BuildArch: noarch -BuildRequires: python2-pystache BuildRequires: python2-aexpect BuildRequires: python2-devel BuildRequires: python2-docutils -BuildRequires: python2-flexmock -BuildRequires: python2-lxml BuildRequires: python2-mock BuildRequires: python2-resultsdb_api +%if 0%{?fedora} > 27 || 0%{?rhel} > 7 +BuildRequires: python2-flexmock +BuildRequires: python2-lxml +BuildRequires: python2-pystache +%else +BuildRequires: python-flexmock +BuildRequires: python-lxml +BuildRequires: pystache +%endif %if 0%{?fedora} >= 29 BuildRequires: python2-fabric3 %else @@ -69,8 +75,12 @@ BuildRequires: fabric %endif %if 0%{?with_tests} -BuildRequires: python2-libvirt BuildRequires: perl(TAP::Parser) +%if 0%{?fedora} >= 27 || 0%{?rhel} >= 7 +BuildRequires: python2-libvirt +%else +BuildRequires: libvirt-python +%endif %if 0%{?rhel} && 0%{?rhel} <= 7 BuildRequires: python-yaml %else @@ -127,9 +137,13 @@ License: GPLv2 and MIT Requires: gdb Requires: gdb-gdbserver Requires: pyliblzma -Requires: python2-pystache Requires: python2 +%if 0%{?fedora} > 27 || 0%{?rhel} > 7 +Requires: python2-pystache +%else +Requires: pystache +%endif %if 0%{?fedora} >= 29 Requires: python2-fabric3 %else @@ -164,7 +178,12 @@ these days a framework) to perform automated testing. Summary: Avocado HTML report plugin %{?python_provide:%python_provide python2-%{pkgname}-plugins-output-html} Requires: python2-%{pkgname} == %{version}-%{release} + +%if 0%{?fedora} > 27 || 0%{?rhel} > 7 Requires: python2-pystache +%else +Requires: pystache +%endif %description -n python2-%{pkgname}-plugins-output-html Adds to avocado the ability to generate an HTML report at every job results @@ -195,7 +214,11 @@ Summary: Avocado Runner for libvirt VM Execution %{?python_provide:%python_provide python2-%{pkgname}-plugins-runner-vm} Requires: python2-%{pkgname} == %{version}-%{release} Requires: python2-%{pkgname}-plugins-runner-remote == %{version}-%{release} +%if 0%{?fedora} >= 27 || 0%{?rhel} >= 7 Requires: python2-libvirt +%else +Requires: libvirt-python +%endif %description -n python2-%{pkgname}-plugins-runner-vm Allows Avocado to run jobs on a libvirt based VM, by means of @@ -436,6 +459,9 @@ find %{buildroot}%{_docdir}/avocado -type f -name '*.py' -exec %{__chmod} -c -x %changelog +* Mon Jun 04 2018 Merlin Mathesius - 52.1-5 +- Conditionalize python2 dependencies for cross-release compatibility of SPEC + * Mon May 14 2018 Merlin Mathesius - 52.1-4 - Dependency fabric has been renamed to python2-fabric3 From ed6d05362ffc99755fc47535a0cf528cb83ace5a Mon Sep 17 00:00:00 2001 From: Merlin Mathesius Date: Fri, 8 Jun 2018 09:32:13 -0500 Subject: [PATCH 05/57] Correct libvirt dependency for EPEL7/RHEL7 --- python-avocado.spec | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/python-avocado.spec b/python-avocado.spec index ac80f02..142eca5 100644 --- a/python-avocado.spec +++ b/python-avocado.spec @@ -34,7 +34,7 @@ Name: python-%{pkgname} Version: 52.1 -Release: 5%{?gitrel}%{?dist} +Release: 6%{?gitrel}%{?dist} Summary: Framework with tools and libraries for Automated Testing Group: Development/Tools # Found licenses: @@ -76,7 +76,7 @@ BuildRequires: fabric %if 0%{?with_tests} BuildRequires: perl(TAP::Parser) -%if 0%{?fedora} >= 27 || 0%{?rhel} >= 7 +%if 0%{?fedora} >= 27 || 0%{?rhel} > 7 BuildRequires: python2-libvirt %else BuildRequires: libvirt-python @@ -214,7 +214,7 @@ Summary: Avocado Runner for libvirt VM Execution %{?python_provide:%python_provide python2-%{pkgname}-plugins-runner-vm} Requires: python2-%{pkgname} == %{version}-%{release} Requires: python2-%{pkgname}-plugins-runner-remote == %{version}-%{release} -%if 0%{?fedora} >= 27 || 0%{?rhel} >= 7 +%if 0%{?fedora} >= 27 || 0%{?rhel} > 7 Requires: python2-libvirt %else Requires: libvirt-python @@ -459,6 +459,9 @@ find %{buildroot}%{_docdir}/avocado -type f -name '*.py' -exec %{__chmod} -c -x %changelog +* Fri Jun 08 2018 Merlin Mathesius - 52.1-6 +- Correct libvirt dependency for EPEL7/RHEL7 + * Mon Jun 04 2018 Merlin Mathesius - 52.1-5 - Conditionalize python2 dependencies for cross-release compatibility of SPEC From c4a8d327c4be07983d94eeb8c56046632137daa6 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 13 Jul 2018 23:32:38 +0000 Subject: [PATCH 06/57] - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- python-avocado.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/python-avocado.spec b/python-avocado.spec index 142eca5..77d9036 100644 --- a/python-avocado.spec +++ b/python-avocado.spec @@ -34,7 +34,7 @@ Name: python-%{pkgname} Version: 52.1 -Release: 6%{?gitrel}%{?dist} +Release: 7%{?gitrel}%{?dist} Summary: Framework with tools and libraries for Automated Testing Group: Development/Tools # Found licenses: @@ -459,6 +459,9 @@ find %{buildroot}%{_docdir}/avocado -type f -name '*.py' -exec %{__chmod} -c -x %changelog +* Fri Jul 13 2018 Fedora Release Engineering - 52.1-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + * Fri Jun 08 2018 Merlin Mathesius - 52.1-6 - Correct libvirt dependency for EPEL7/RHEL7 From 87dc683a36d0862340d3af99b78fa189a1aba424 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Sat, 21 Jul 2018 23:17:41 +0200 Subject: [PATCH 07/57] Fix rst2man reference and python shebangs Also remove obsolete Group tag. --- python-avocado.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/python-avocado.spec b/python-avocado.spec index 77d9036..648ef0d 100644 --- a/python-avocado.spec +++ b/python-avocado.spec @@ -36,7 +36,7 @@ Name: python-%{pkgname} Version: 52.1 Release: 7%{?gitrel}%{?dist} Summary: Framework with tools and libraries for Automated Testing -Group: Development/Tools + # Found licenses: # avocado/utils/external/gdbmi_parser.py: MIT # avocado/utils/external/spark.py: MIT @@ -55,9 +55,10 @@ Patch1: avocado-selftest-fix-cmdline-check.patch BuildArch: noarch BuildRequires: python2-aexpect BuildRequires: python2-devel -BuildRequires: python2-docutils BuildRequires: python2-mock BuildRequires: python2-resultsdb_api +BuildRequires: /usr/bin/rst2man +BuildRequires: grep, sed %if 0%{?fedora} > 27 || 0%{?rhel} > 7 BuildRequires: python2-flexmock @@ -293,6 +294,8 @@ sed -e "s/'libvirt-python'//" -i optional_plugins/runner_vm/setup.py sed -e "s/'fabric'/'fabric3'/" -i optional_plugins/runner_remote/setup.py %endif +grep -r -l '/usr/bin/env python' . | xargs sed -i 's|/usr/bin/env python|%__python2|' + %build %{__python2} setup.py build pushd optional_plugins/html From 48c501c45fdf1792adc511eb5d0a6fe15a6abe52 Mon Sep 17 00:00:00 2001 From: Merlin Mathesius Date: Wed, 16 Jan 2019 15:53:54 -0600 Subject: [PATCH 08/57] Non-modular package is obsoleted by avocado:stable --- .gitignore | 9 - avocado-selftest-doublefree-disable.patch | 11 - avocado-selftest-fix-cmdline-check.patch | 15 - dead.package | 1 + python-avocado.spec | 540 ---------------------- sources | 1 - tests/gdbtest.py | 399 ---------------- tests/gdbtest.py.data/return99.c | 47 -- tests/gdbtest.py.data/segfault.c | 9 - tests/tests.yml | 29 -- 10 files changed, 1 insertion(+), 1060 deletions(-) delete mode 100644 .gitignore delete mode 100644 avocado-selftest-doublefree-disable.patch delete mode 100644 avocado-selftest-fix-cmdline-check.patch create mode 100644 dead.package delete mode 100644 python-avocado.spec delete mode 100644 sources delete mode 100755 tests/gdbtest.py delete mode 100644 tests/gdbtest.py.data/return99.c delete mode 100644 tests/gdbtest.py.data/segfault.c delete mode 100644 tests/tests.yml diff --git a/.gitignore b/.gitignore deleted file mode 100644 index c102fa6..0000000 --- a/.gitignore +++ /dev/null @@ -1,9 +0,0 @@ -/avocado-43.0.tar.gz -/avocado-46.0.tar.gz -/avocado-47.0.tar.gz -/avocado-48.0.tar.gz -/avocado-49.0.tar.gz -/avocado-50.0.tar.gz -/avocado-51.0.tar.gz -/avocado-52.0.tar.gz -/avocado-52.1.tar.gz diff --git a/avocado-selftest-doublefree-disable.patch b/avocado-selftest-doublefree-disable.patch deleted file mode 100644 index 075de2b..0000000 --- a/avocado-selftest-doublefree-disable.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -r -u avocado-52.0.orig/selftests/functional/test_output.py avocado-52.0/selftests/functional/test_output.py ---- avocado-52.0.orig/selftests/functional/test_output.py 2017-06-26 19:26:48.000000000 -0500 -+++ avocado-52.0/selftests/functional/test_output.py 2017-08-09 07:40:41.636928188 -0500 -@@ -67,6 +67,7 @@ - def setUp(self): - self.tmpdir = tempfile.mkdtemp(prefix='avocado_' + __name__) - -+ @unittest.skip("Test is producing a false failure due to platform/compiler changes") - @unittest.skipIf(missing_binary('cc'), - "C compiler is required by the underlying doublefree.py test") - def test_output_doublefree(self): diff --git a/avocado-selftest-fix-cmdline-check.patch b/avocado-selftest-fix-cmdline-check.patch deleted file mode 100644 index 525a869..0000000 --- a/avocado-selftest-fix-cmdline-check.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff -ru ../avocado-52.1.orig/selftests/functional/test_plugin_diff.py ./selftests/functional/test_plugin_diff.py ---- ../avocado-52.1.orig/selftests/functional/test_plugin_diff.py 2018-03-01 12:05:02.000000000 -0600 -+++ ./selftests/functional/test_plugin_diff.py 2018-03-13 16:50:33.662490323 -0500 -@@ -52,9 +52,9 @@ - result = self.run_and_check(cmd_line, expected_rc) - msg = "# COMMAND LINE" - self.assertIn(msg, result.stdout) -- msg = "-./scripts/avocado run" -+ msg = "-%s run" % AVOCADO - self.assertIn(msg, result.stdout) -- msg = "+./scripts/avocado run" -+ msg = "+%s run" % AVOCADO - self.assertIn(msg, result.stdout) - - def test_diff_nocmdline(self): diff --git a/dead.package b/dead.package new file mode 100644 index 0000000..6867f63 --- /dev/null +++ b/dead.package @@ -0,0 +1 @@ +Non-modular package is obsoleted by avocado:stable diff --git a/python-avocado.spec b/python-avocado.spec deleted file mode 100644 index 648ef0d..0000000 --- a/python-avocado.spec +++ /dev/null @@ -1,540 +0,0 @@ -%global srcname avocado -%global pkgname avocado - -# Conditional for release vs. snapshot builds. Set to 1 for release build. -%if ! 0%{?rel_build:1} - %global rel_build 1 -%endif - -# Settings used for build from snapshots. -%if 0%{?rel_build} - %global gittar %{srcname}-%{version}.tar.gz -%else - %if ! 0%{?commit:1} - %global commit 0ddd3c7b92f18c85157766e9e0ec810e6b3dd37e - %endif - %if ! 0%{?commit_date:1} - %global commit_date 20180301 - %endif - %global shortcommit %(c=%{commit};echo ${c:0:7}) - %global gitrel .%{commit_date}git%{shortcommit} - %global gittar %{srcname}-%{shortcommit}.tar.gz -%endif - -# Selftests are provided but may need to be skipped because many of -# the functional tests are time and resource sensitive and can -# cause race conditions and random build failures. They are -# enabled by default. -# However, selftests need to be disabled when libvirt is not available. -%global with_tests 1 -%if 0%{?rhel} && 0%{?rhel} <= 7 - # libvirt is not available for all RHEL builder architectures - %global with_tests 0 -%endif - -Name: python-%{pkgname} -Version: 52.1 -Release: 7%{?gitrel}%{?dist} -Summary: Framework with tools and libraries for Automated Testing - -# Found licenses: -# avocado/utils/external/gdbmi_parser.py: MIT -# avocado/utils/external/spark.py: MIT -# optional_plugins/html/avocado_result_html/resources/static/css/*: MIT -# optional_plugins/html/avocado_result_html/resources/static/js/*: MIT -# Other files: GPLv2 and GPLv2+ -License: GPLv2 and MIT -URL: http://avocado-framework.github.io/ -%if 0%{?rel_build} -Source0: https://github.com/avocado-framework/%{srcname}/archive/%{version}.tar.gz#/%{gittar} -%else -Source0: https://github.com/avocado-framework/%{srcname}/archive/%{commit}.tar.gz#/%{gittar} -%endif -Patch0: avocado-selftest-doublefree-disable.patch -Patch1: avocado-selftest-fix-cmdline-check.patch -BuildArch: noarch -BuildRequires: python2-aexpect -BuildRequires: python2-devel -BuildRequires: python2-mock -BuildRequires: python2-resultsdb_api -BuildRequires: /usr/bin/rst2man -BuildRequires: grep, sed - -%if 0%{?fedora} > 27 || 0%{?rhel} > 7 -BuildRequires: python2-flexmock -BuildRequires: python2-lxml -BuildRequires: python2-pystache -%else -BuildRequires: python-flexmock -BuildRequires: python-lxml -BuildRequires: pystache -%endif -%if 0%{?fedora} >= 29 -BuildRequires: python2-fabric3 -%else -BuildRequires: fabric -%endif - -%if 0%{?with_tests} -BuildRequires: perl(TAP::Parser) -%if 0%{?fedora} >= 27 || 0%{?rhel} > 7 -BuildRequires: python2-libvirt -%else -BuildRequires: libvirt-python -%endif -%if 0%{?rhel} && 0%{?rhel} <= 7 -BuildRequires: python-yaml -%else -BuildRequires: python2-yaml -%endif -%endif - -%if 0%{?rhel} && 0%{?rhel} <= 7 -BuildRequires: python-psutil -BuildRequires: python-requests -BuildRequires: python-setuptools -BuildRequires: python-sphinx -BuildRequires: python-stevedore -%else -BuildRequires: python2-psutil -BuildRequires: python2-requests -BuildRequires: python2-setuptools -BuildRequires: python2-sphinx -BuildRequires: python2-stevedore -%endif - -%if 0%{?el6} -BuildRequires: procps -BuildRequires: python-argparse -BuildRequires: python-importlib -BuildRequires: python-logutils -BuildRequires: python-unittest2 -%else -BuildRequires: procps-ng -%endif - -# For some strange reason, fabric on Fedora 24 does not require the -# python-crypto package, but the fabric code always imports it. Newer -# fabric versions, such from Fedora 25 do conditional imports (try: -# from Crypto import Random; except: Random = None) and thus do not -# need this requirement. -%if 0%{?fedora} == 24 -BuildRequires: python-crypto -%endif - -%if 0%{?fedora} >= 25 || 0%{?rhel} >= 7 -BuildRequires: kmod -%endif - -%description -Avocado is a set of tools and libraries (what people call -these days a framework) to perform automated testing. - - -%package -n python2-%{pkgname} -Summary: %{summary} -License: GPLv2 and MIT -%{?python_provide:%python_provide python2-%{pkgname}} -Requires: gdb -Requires: gdb-gdbserver -Requires: pyliblzma -Requires: python2 - -%if 0%{?fedora} > 27 || 0%{?rhel} > 7 -Requires: python2-pystache -%else -Requires: pystache -%endif -%if 0%{?fedora} >= 29 -Requires: python2-fabric3 -%else -Requires: fabric -%endif - -%if 0%{?rhel} && 0%{?rhel} <= 7 -Requires: python-requests -Requires: python-stevedore -%else -Requires: python2-requests -Requires: python2-stevedore -%endif - -%if 0%{?el6} -Requires: procps -Requires: python-argparse -Requires: python-importlib -Requires: python-logutils -Requires: python-unittest2 -%else -Requires: procps-ng -%endif - - -%description -n python2-%{pkgname} -Avocado is a set of tools and libraries (what people call -these days a framework) to perform automated testing. - - -%package -n python2-%{pkgname}-plugins-output-html -Summary: Avocado HTML report plugin -%{?python_provide:%python_provide python2-%{pkgname}-plugins-output-html} -Requires: python2-%{pkgname} == %{version}-%{release} - -%if 0%{?fedora} > 27 || 0%{?rhel} > 7 -Requires: python2-pystache -%else -Requires: pystache -%endif - -%description -n python2-%{pkgname}-plugins-output-html -Adds to avocado the ability to generate an HTML report at every job results -directory. It also gives the user the ability to write a report on an -arbitrary filesystem location. - - -%package -n python2-%{pkgname}-plugins-runner-remote -Summary: Avocado Runner for Remote Execution -%{?python_provide:%python_provide python2-%{pkgname}-plugins-runner-remote} -Requires: python2-%{pkgname} == %{version}-%{release} -%if 0%{?fedora} == 24 -Requires: python-crypto -%endif -%if 0%{?fedora} >= 29 -Requires: python2-fabric3 -%else -Requires: fabric -%endif - -%description -n python2-%{pkgname}-plugins-runner-remote -Allows Avocado to run jobs on a remote machine, by means of an SSH -connection. Avocado must be previously installed on the remote machine. - - -%package -n python2-%{pkgname}-plugins-runner-vm -Summary: Avocado Runner for libvirt VM Execution -%{?python_provide:%python_provide python2-%{pkgname}-plugins-runner-vm} -Requires: python2-%{pkgname} == %{version}-%{release} -Requires: python2-%{pkgname}-plugins-runner-remote == %{version}-%{release} -%if 0%{?fedora} >= 27 || 0%{?rhel} > 7 -Requires: python2-libvirt -%else -Requires: libvirt-python -%endif - -%description -n python2-%{pkgname}-plugins-runner-vm -Allows Avocado to run jobs on a libvirt based VM, by means of -interaction with a libvirt daemon and an SSH connection to the VM -itself. Avocado must be previously installed on the VM. - - -%package -n python2-%{pkgname}-plugins-runner-docker -Summary: Avocado Runner for Execution on Docker Containers -%{?python_provide:%python_provide python2-%{pkgname}-plugins-runner-docker} -Requires: python2-%{pkgname} == %{version}-%{release} -Requires: python2-%{pkgname}-plugins-runner-remote == %{version}-%{release} -Requires: python2-aexpect - -%description -n python2-%{pkgname}-plugins-runner-docker -Allows Avocado to run jobs on a Docker container by interacting with a -Docker daemon and attaching to the container itself. Avocado must -be previously installed on the container. - - -%package -n python2-%{pkgname}-plugins-resultsdb -Summary: Avocado plugin to propagate job results to ResultsDB -%{?python_provide:%python_provide python2-%{pkgname}-plugins-resultsdb} -Requires: python2-%{pkgname} == %{version}-%{release} -Requires: python2-resultsdb_api - -%description -n python2-%{pkgname}-plugins-resultsdb -Allows Avocado to send job results directly to a ResultsDB -server. - - -%package -n python2-%{pkgname}-plugins-varianter-yaml-to-mux -Summary: Avocado plugin to generate variants out of yaml files -%{?python_provide:%python_provide python2-%{pkgname}-plugins-varianter-yaml-to-mux} -Requires: python2-%{pkgname} == %{version}-%{release} -%if 0%{?rhel} && 0%{?rhel} <= 7 -Requires: python-yaml -%else -Requires: python2-yaml -%endif - -%description -n python2-%{pkgname}-plugins-varianter-yaml-to-mux -Can be used to produce multiple test variants with test parameters -defined in a yaml file(s). - - -%package -n python-%{pkgname}-examples -Summary: Avocado Test Framework Example Tests -License: GPLv2 -# documentation does not require main package, but needs to be in lock-step if present -Conflicts: python-%{pkgname} < %{version}-%{release}, python-%{pkgname} > %{version}-%{release} - -%description -n python-%{pkgname}-examples -The set of example tests present in the upstream tree of the Avocado framework. -Some of them are used as functional tests of the framework, others serve as -examples of how to write tests on your own. - - -%prep -%if 0%{?rel_build} -%setup -q -n %{srcname}-%{version} -%else -%setup -q -n %{srcname}-%{commit} -%endif -%patch0 -p1 -%patch1 -p1 -# package plugins-runner-vm requires libvirt-python, but the RPM -# version of libvirt-python does not publish the egg info and this -# causes that dep to be attempted to be installed by pip -sed -e "s/'libvirt-python'//" -i optional_plugins/runner_vm/setup.py -%if 0%{?fedora} >= 29 -sed -e "s/'fabric'/'fabric3'/" -i optional_plugins/runner_remote/setup.py -%endif - -grep -r -l '/usr/bin/env python' . | xargs sed -i 's|/usr/bin/env python|%__python2|' - -%build -%{__python2} setup.py build -pushd optional_plugins/html - %{__python2} setup.py build -popd -pushd optional_plugins/runner_remote - %{__python2} setup.py build -popd -pushd optional_plugins/runner_vm - %{__python2} setup.py build -popd -pushd optional_plugins/runner_docker - %{__python2} setup.py build -popd -pushd optional_plugins/resultsdb - %{__python2} setup.py build -popd -pushd optional_plugins/varianter_yaml_to_mux - %{__python2} setup.py build -popd -%{__make} man - -%install -%{__python2} setup.py install --root %{buildroot} --skip-build -pushd optional_plugins/html - %{__python2} setup.py install --root %{buildroot} --skip-build -popd -pushd optional_plugins/runner_remote - %{__python2} setup.py install --root %{buildroot} --skip-build -popd -pushd optional_plugins/runner_vm - %{__python2} setup.py install --root %{buildroot} --skip-build -popd -pushd optional_plugins/runner_docker - %{__python2} setup.py install --root %{buildroot} --skip-build -popd -pushd optional_plugins/resultsdb - %{__python2} setup.py install --root %{buildroot} --skip-build -popd -pushd optional_plugins/varianter_yaml_to_mux - %{__python2} setup.py install --root %{buildroot} --skip-build -popd -%{__mv} %{buildroot}%{_bindir}/avocado %{buildroot}%{_bindir}/avocado-%{python2_version} -%{__ln_s} avocado-%{python2_version} %{buildroot}%{_bindir}/avocado-2 -%{__ln_s} avocado-%{python2_version} %{buildroot}%{_bindir}/avocado -%{__mv} %{buildroot}%{_bindir}/avocado-rest-client %{buildroot}%{_bindir}/avocado-rest-client-%{python2_version} -%{__ln_s} avocado-rest-client-%{python2_version} %{buildroot}%{_bindir}/avocado-rest-client-2 -%{__ln_s} avocado-rest-client-%{python2_version} %{buildroot}%{_bindir}/avocado-rest-client -%{__mkdir_p} %{buildroot}%{_mandir}/man1 -%{__install} -m 0644 man/avocado.1 %{buildroot}%{_mandir}/man1/avocado.1 -%{__install} -m 0644 man/avocado-rest-client.1 %{buildroot}%{_mandir}/man1/avocado-rest-client.1 -%{__install} -d -m 0755 %{buildroot}%{_sharedstatedir}/avocado/data -# relocate examples to documentation directory -%{__mkdir_p} %{buildroot}%{_docdir}/avocado -%{__mv} %{buildroot}%{_datadir}/avocado/tests %{buildroot}%{_docdir}/avocado/tests -%{__mv} %{buildroot}%{_datadir}/avocado/wrappers %{buildroot}%{_docdir}/avocado/wrappers -find %{buildroot}%{_docdir}/avocado -type f -name '*.py' -exec %{__chmod} -c -x {} ';' - - -%check -%if 0%{?with_tests} - %{__python2} setup.py develop --user - pushd optional_plugins/html - %{__python2} setup.py develop --user - popd - pushd optional_plugins/runner_remote - %{__python2} setup.py develop --user - popd - pushd optional_plugins/runner_vm - %{__python2} setup.py develop --user - popd - pushd optional_plugins/runner_docker - %{__python2} setup.py develop --user - popd - pushd optional_plugins/resultsdb - %{__python2} setup.py develop --user - popd - pushd optional_plugins/varianter_yaml_to_mux - %{__python2} setup.py develop --user - popd - # Package build environments have the least amount of resources - # we have observed so far. Let's avoid tests that require too - # much resources or are time sensitive. - # Also, use of unversioned python is deprecated, so force use of python2 as per - # https://fedoraproject.org/wiki/Changes/Avoid_usr_bin_python_in_RPM_Build - AVOCADO_CHECK_LEVEL=0 UNITTEST_AVOCADO_CMD="$HOME/.local/bin/avocado" %{__python2} selftests/run -%endif - - -%files -n python2-%{pkgname} -%license LICENSE -%doc README.rst -%dir %{_sysconfdir}/avocado -%dir %{_sysconfdir}/avocado/conf.d -%dir %{_sysconfdir}/avocado/sysinfo -%dir %{_sysconfdir}/avocado/scripts -%dir %{_sysconfdir}/avocado/scripts/job -%dir %{_sysconfdir}/avocado/scripts/job/pre.d -%dir %{_sysconfdir}/avocado/scripts/job/post.d -%config(noreplace) %{_sysconfdir}/avocado/avocado.conf -%config(noreplace) %{_sysconfdir}/avocado/conf.d/gdb.conf -%config(noreplace) %{_sysconfdir}/avocado/sysinfo/commands -%config(noreplace) %{_sysconfdir}/avocado/sysinfo/files -%config(noreplace) %{_sysconfdir}/avocado/sysinfo/profilers -%{_sysconfdir}/avocado/conf.d/README -%{_sysconfdir}/avocado/scripts/job/pre.d/README -%{_sysconfdir}/avocado/scripts/job/post.d/README -%{python2_sitelib}/avocado/ -%{python2_sitelib}/avocado_framework-%{version}-py%{python2_version}.egg-info -%{_bindir}/avocado-%{python2_version} -%{_bindir}/avocado-2 -%{_bindir}/avocado -%{_bindir}/avocado-rest-client-%{python2_version} -%{_bindir}/avocado-rest-client-2 -%{_bindir}/avocado-rest-client -%{_mandir}/man1/avocado.1.gz -%{_mandir}/man1/avocado-rest-client.1.gz -%dir %{_sharedstatedir}/avocado -%dir %{_docdir}/avocado -%{_docdir}/avocado/avocado.rst -%{_docdir}/avocado/avocado-rest-client.rst -%dir %{_libexecdir}/avocado -%{_libexecdir}/avocado/avocado-bash-utils -%{_libexecdir}/avocado/avocado_debug -%{_libexecdir}/avocado/avocado_error -%{_libexecdir}/avocado/avocado_info -%{_libexecdir}/avocado/avocado_warn - - -%files -n python2-%{pkgname}-plugins-output-html -%{python2_sitelib}/avocado_result_html/ -%{python2_sitelib}/avocado_framework_plugin_result_html-%{version}-py%{python2_version}.egg-info - - -%files -n python2-%{pkgname}-plugins-runner-remote -%{python2_sitelib}/avocado_runner_remote/ -%{python2_sitelib}/avocado_framework_plugin_runner_remote-%{version}-py%{python2_version}.egg-info - - -%files -n python2-%{pkgname}-plugins-runner-vm -%{python2_sitelib}/avocado_runner_vm/ -%{python2_sitelib}/avocado_framework_plugin_runner_vm-%{version}-py%{python2_version}.egg-info - - -%files -n python2-%{pkgname}-plugins-runner-docker -%{python2_sitelib}/avocado_runner_docker/ -%{python2_sitelib}/avocado_framework_plugin_runner_docker-%{version}-py%{python2_version}.egg-info - - -%files -n python2-%{pkgname}-plugins-resultsdb -%{python2_sitelib}/avocado_resultsdb/ -%{python2_sitelib}/avocado_framework_plugin_resultsdb-%{version}-py%{python2_version}.egg-info - - -%files -n python2-%{pkgname}-plugins-varianter-yaml-to-mux -%{python2_sitelib}/avocado_varianter_yaml_to_mux/ -%{python2_sitelib}/avocado_framework_plugin_varianter_yaml_to_mux-%{version}-py%{python2_version}.egg-info - - -%files -n python-%{pkgname}-examples -%dir %{_docdir}/avocado -%{_docdir}/avocado/tests -%{_docdir}/avocado/wrappers - - -%changelog -* Fri Jul 13 2018 Fedora Release Engineering - 52.1-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* Fri Jun 08 2018 Merlin Mathesius - 52.1-6 -- Correct libvirt dependency for EPEL7/RHEL7 - -* Mon Jun 04 2018 Merlin Mathesius - 52.1-5 -- Conditionalize python2 dependencies for cross-release compatibility of SPEC - -* Mon May 14 2018 Merlin Mathesius - 52.1-4 -- Dependency fabric has been renamed to python2-fabric3 - -* Mon May 14 2018 Merlin Mathesius - 52.1-3 -- correct python_provide argument typo for varianter-yaml-to-mux plugin - -* Mon Apr 9 2018 Cleber Rosa - 52.1-2 -- Added Fedora CI tests - -* Tue Apr 03 2018 Merlin Mathesius - 52.1-1 -- Sync with upstream release 52.1 (LTS series). -- Correct deprecated use of unversioned python. - -* Mon Mar 26 2018 Iryna Shcherbina - 52.0-5 -- Update Python 2 dependency declarations to new packaging standards - (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3) - -* Fri Feb 09 2018 Fedora Release Engineering - 52.0-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - -* Wed Aug 09 2017 Merlin Mathesius - 52.0-3 -- Fix FTBFS error by disabling selfcheck producing false failures -- Update SPEC to use pkgname instead of srcname macro where appropriate - -* Thu Jul 27 2017 Fedora Release Engineering - 52.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild - -* Thu Jun 29 2017 Merlin Mathesius - 52.0-1 -- Sync with upstream release 52.0. (BZ#1465409) - -* Wed Jun 14 2017 Merlin Mathesius - 51.0-1 -- Sync with upstream release 51.0. (BZ#1460837) -- Disable selftests when libvirt may not be available. - -* Wed May 17 2017 Merlin Mathesius - 50.0-1 -- Sync with upstream release 50.0. (BZ#1431413) -- Be explicit about selftest level run on check. - -* Tue Apr 25 2017 Merlin Mathesius - 49.0-1 -- Sync with upstream release 49.0. (BZ#1431413) - -* Tue Apr 18 2017 Merlin Mathesius - 48.0-1 -- Sync with upstream release 48.0. (BZ#1431413) -- Allow rel_build macro to be defined outside of the SPEC file. - -* Mon Mar 27 2017 Merlin Mathesius - 47.0-1 -- Sync with upstream release 47.0. -- Enable self-tests during build. -- Add example test to be run by Taskotron. - -* Mon Feb 27 2017 Merlin Mathesius - 46.0-2 -- Incorporate upstream SPEC file changes to split plugins into subpackages. -- Remove obsolete CC-BY-SA license, which went away with the halflings font. - -* Tue Feb 14 2017 Merlin Mathesius - 46.0-1 -- Sync with upstream release 46.0. -- Remove halflings license since font was removed from upstream. -- SPEC updates to easily switch between release and snapshot builds. - -* Sat Feb 11 2017 Fedora Release Engineering - 43.0-8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Tue Jan 10 2017 Merlin Mathesius - 43.0-7 -- SPEC updates to build and install for EPEL. - -* Mon Nov 21 2016 Merlin Mathesius - 43.0-6 -- Initial packaging for Fedora. diff --git a/sources b/sources deleted file mode 100644 index 54aeac2..0000000 --- a/sources +++ /dev/null @@ -1 +0,0 @@ -SHA512 (avocado-52.1.tar.gz) = fb97ea6056700f57f34e8e4ce0c27774c386d646aaffc7da2abb8d0a797cff4448934789ffaf81da1592fceae1bb464da2b5dde000730c4f417b03552a432c6c diff --git a/tests/gdbtest.py b/tests/gdbtest.py deleted file mode 100755 index d814fa5..0000000 --- a/tests/gdbtest.py +++ /dev/null @@ -1,399 +0,0 @@ -#!/usr/bin/env python - -import os - -from six.moves import xrange as range - -from avocado import Test -from avocado import main -from avocado.utils import gdb -from avocado.utils import genio -from avocado.utils import process - - -class GdbTest(Test): - - """ - Execute the gdb test - - :avocado: tags=requires_c_compiler - """ - - VALID_CMDS = ["-list-target-features", - "-break-info", - "-break-list", - "-thread-info", - "-stack-info-frame", - "-stack-info-depth"] - - INVALID_CMDS = ["-foobar", - "-magic8ball", - "-find-me-the-bug", - "-auto-debug-it"] - - def setUp(self): - return99_source_path = os.path.join(self.datadir, 'return99.c') - segfault_source_path = os.path.join(self.datadir, 'segfault.c') - self.return99_binary_path = os.path.join(self.outputdir, 'return99') - process.system('gcc -O0 -g %s -o %s' % (return99_source_path, - self.return99_binary_path)) - self.segfault_binary_path = os.path.join(self.outputdir, 'segfault') - process.system('gcc -O0 -g %s -o %s' % (segfault_source_path, - self.segfault_binary_path)) - - @staticmethod - def is_process_alive(process): - """ - Checks if a process is still alive - - :param process: a :class:`subprocess.POpen` instance - :type process: :class:`subprocess.POpen` - :returns: True or False - :rtype: bool - """ - return process.poll() is None - - def test_start_exit(self): - """ - Tests execution of multiple GDB instances without any blocking or race - """ - self.log.info("Testing execution of multiple GDB instances") - process_count = 10 - gdb_instances = [] - for i in range(0, process_count): - gdb_instances.append(gdb.GDB()) - - for i in range(0, process_count): - self.assertEqual(gdb_instances[i].exit(), 0) - - def test_existing_commands_raw(self): - """ - Tests the GDB response to commands that exist and to those that do not - """ - g = gdb.GDB() - self.log.info("Testing existing (valid) GDB commands using raw commands") - for cmd in self.VALID_CMDS: - info_cmd = "-info-gdb-mi-command %s" % cmd[1:] - r = g.cmd(info_cmd) - self.assertEqual(r.result.result.command.exists, 'true') - - self.log.info("Testing non-existing (invalid) GDB commands using raw " - "commands") - for cmd in self.INVALID_CMDS: - info_cmd = "-info-gdb-mi-command %s" % cmd[1:] - r = g.cmd(info_cmd) - self.assertEqual(r.result.result.command.exists, 'false') - - def test_existing_commands(self): - g = gdb.GDB() - - self.log.info("Testing existing (valid) GDB commands using utility " - "methods") - for cmd in self.VALID_CMDS: - self.assertTrue(g.cmd_exists(cmd)) - g.cmd(cmd) - - self.log.info("Testing non-existing (invalid) GDB commands using " - "utility methods") - for cmd in self.INVALID_CMDS: - self.assertFalse(g.cmd_exists(cmd)) - - def test_load_set_breakpoint_run_exit_raw(self): - """ - Test a common GDB cycle using raw commands: load, set break, run, exit - """ - self.log.info("Testing that GDB loads a file and sets a breakpoint") - g = gdb.GDB() - - file_cmd = "-file-exec-and-symbols %s" % self.return99_binary_path - r = g.cmd(file_cmd) - self.assertEqual(r.result.class_, 'done') - - break_cmd = "-break-insert 5" - r = g.cmd(break_cmd) - self.assertEqual(r.result.class_, 'done') - self.assertEqual(r.result.result.bkpt.number, '1') - self.assertEqual(r.result.result.bkpt.enabled, 'y') - - break_del_cmd = "-break-delete 1" - r = g.cmd(break_del_cmd) - self.assertEqual(r.result.class_, 'done') - - run_cmd = "-exec-run" - r = g.cmd(run_cmd) - self.assertEqual(r.result.class_, 'running') - - g.cmd("-gdb-exit") - self.assertEqual(g.process.wait(), 0) - - def test_load_set_breakpoint_run_exit(self): - """ - Test a common GDB cycle: load, set break, delete break, run, exit - """ - self.log.info("Testing a common GDB cycle") - g = gdb.GDB() - g.set_file(self.return99_binary_path) - g.set_break("5") - g.del_break(1) - g.run() - g.exit() - - def test_generate_core(self): - """ - Load a file that will cause a segfault and produce a core dump - """ - self.log.info("Testing that a core dump will be generated") - - g = gdb.GDB() - file_cmd = "-file-exec-and-symbols %s" % self.segfault_binary_path - r = g.cmd(file_cmd) - self.assertEqual(r.result.class_, 'done') - - run_cmd = "-exec-run" - r = g.cmd(run_cmd) - self.assertEqual(r.result.class_, 'running') - - other_messages = g.read_until_break() - core_path = None - for msg in other_messages: - parsed_msg = gdb.parse_mi(msg) - if (hasattr(parsed_msg, 'class_') and - (parsed_msg.class_ == 'stopped') and - (parsed_msg.result.signal_name == 'SIGSEGV')): - core_path = "%s.core" % self.segfault_binary_path - gcore_cmd = 'gcore %s' % core_path - gcore_cmd = gdb.encode_mi_cli(gcore_cmd) - r = g.cmd(gcore_cmd) - self.assertEqual(r.result.class_, 'done') - - self.assertTrue(os.path.exists(core_path)) - g.exit() - - def test_set_multiple_break(self): - """ - Tests that multiple breakpoints do not interfere with each other - """ - self.log.info("Testing setting multiple breakpoints") - g = gdb.GDB() - g.set_file(self.return99_binary_path) - g.set_break('empty') - g.set_break('7') - g.exit() - - def test_disconnect_raw(self): - """ - Connect/disconnect repeatedly from a remote debugger using raw commands - """ - self.log.info("Testing connecting and disconnecting repeatedly using " - "raw commands") - s = gdb.GDBServer() - g = gdb.GDB() - - # Do 100 cycle of target (kind of connects) and disconnects - for _ in range(0, 100): - cmd = '-target-select extended-remote :%s' % s.port - r = g.cmd(cmd) - self.assertEqual(r.result.class_, 'connected') - r = g.cmd('-target-disconnect') - self.assertEqual(r.result.class_, 'done') - - # manual server shutdown - cmd = '-target-select extended-remote :%s' % s.port - r = g.cmd(cmd) - self.assertEqual(r.result.class_, 'connected') - r = g.cli_cmd('monitor exit') - self.assertEqual(r.result.class_, 'done') - - g.exit() - s.exit() - - def test_disconnect(self): - """ - Connect/disconnect repeatedly from a remote debugger using utilities - """ - self.log.info("Testing connecting and disconnecting repeatedly") - s = gdb.GDBServer() - g = gdb.GDB() - - for _ in range(0, 100): - r = g.connect(s.port) - self.assertEqual(r.result.class_, 'connected') - r = g.disconnect() - self.assertEqual(r.result.class_, 'done') - - g.exit() - s.exit() - - def test_remote_exec(self): - """ - Tests execution on a remote target - """ - self.log.info("Testing execution on a remote target") - hit_breakpoint = False - - s = gdb.GDBServer() - g = gdb.GDB() - - cmd = '-file-exec-and-symbols %s' % self.return99_binary_path - r = g.cmd(cmd) - self.assertEqual(r.result.class_, 'done') - - cmd = 'set remote exec-file %s' % self.return99_binary_path - r = g.cmd(cmd) - self.assertEqual(r.result.class_, 'done') - - cmd = "-break-insert %s" % 'main' - r = g.cmd(cmd) - self.assertEqual(r.result.class_, 'done') - - r = g.cmd('-exec-run') - - other_messages = g.read_until_break() - for msg in other_messages: - parsed_msg = gdb.parse_mi(msg) - if (hasattr(parsed_msg, 'class_') and - parsed_msg.class_ == 'stopped' and - parsed_msg.result.reason == 'breakpoint-hit'): - hit_breakpoint = True - - self.assertTrue(hit_breakpoint) - g.exit() - s.exit() - - def test_stream_messages(self): - """ - Tests if the expected response appears in the result stream messages - """ - self.log.info("Testing that messages appears in the result stream") - g = gdb.GDB() - r = g.cmd("-gdb-version") - self.assertIn("GNU GPL version", r.get_stream_messages_text()) - - def test_connect_multiple_clients(self): - """ - Tests two or more connections to the same server raise an exception - """ - self.log.info("Testing that multiple clients cannot connect at once") - s = gdb.GDBServer() - c1 = gdb.GDB() - c1.connect(s.port) - c2 = gdb.GDB() - self.assertRaises(ValueError, c2.connect, s.port) - s.exit() - - def test_server_exit(self): - """ - Tests that the server is shutdown by using a monitor exit command - """ - self.log.info("Testing that a single server exits cleanly") - s = gdb.GDBServer() - s.exit() - self.assertFalse(self.is_process_alive(s.process)) - - def test_multiple_servers(self): - """ - Tests multiple server instances without any blocking or race condition - """ - self.log.info("Testing execution of multiple GDB server instances") - process_count = 10 - server_instances = [] - for i in range(0, process_count): - s = gdb.GDBServer() - c = gdb.GDB() - c.connect(s.port) - c.cmd('show-version') - c.disconnect() - server_instances.append(s) - - for i in range(0, process_count): - self.assertTrue(self.is_process_alive(server_instances[i].process)) - server_instances[i].exit() - self.assertFalse(self.is_process_alive(server_instances[i].process)) - - def test_interactive(self): - """ - Tests avocado's GDB plugin features - - If GDB command line options are given, `--gdb-run-bin=return99` for - this particular test, the test will stop at binary main() function. - """ - self.log.info('Testing GDB interactivity') - process.run(self.return99_binary_path, ignore_status=True) - - def test_interactive_args(self): - """ - Tests avocado's GDB plugin features with an executable and args - - If GDB command line options are given, `--gdb-run-bin=return99` for - this particular test, the test will stop at binary main() function. - - This test uses `process.run()` without an `ignore_status` parameter - """ - self.log.info('Testing GDB interactivity with arguments') - result = process.run("%s 0" % self.return99_binary_path) - self.assertEqual(result.exit_status, 0) - - def test_exit_status(self): - """ - Tests avocado's GDB plugin features - - If GDB command line options are given, `--gdb-run-bin=return99` for - this particular test, the test will stop at binary main() function. - """ - self.log.info('Testing process exit statuses') - for arg, exp in [(-1, 255), (8, 8)]: - self.log.info('Expecting exit status "%s"', exp) - cmd = "%s %s" % (self.return99_binary_path, arg) - result = process.run(cmd, ignore_status=True) - self.assertEqual(result.exit_status, exp) - - def test_server_stderr(self): - self.log.info('Testing server stderr collection') - s = gdb.GDBServer() - s.exit() - self.assertTrue(os.path.exists(s.stderr_path)) - - stderr_lines = genio.read_all_lines(s.stderr_path) - listening_line = "Listening on port %s" % s.port - self.assertIn(listening_line, stderr_lines) - - def test_server_stdout(self): - self.log.info('Testing server stdout/stderr collection') - s = gdb.GDBServer() - c = gdb.GDB() - c.connect(s.port) - c.set_file(self.return99_binary_path) - c.run() - s.exit() - - self.assertTrue(os.path.exists(s.stdout_path)) - self.assertTrue(os.path.exists(s.stderr_path)) - - stdout_lines = genio.read_all_lines(s.stdout_path) - self.assertIn("return 99", stdout_lines) - - def test_interactive_stdout(self): - """ - Tests avocado's GDB plugin features - - If GDB command line options are given, `--gdb-run-bin=return99` for - this particular test, the test will stop at binary main() function. - """ - self.log.info('Testing GDB interactivity') - result = process.run(self.return99_binary_path, ignore_status=True) - self.assertIn("return 99\n", result.stdout) - - def test_remote(self): - """ - Tests GDBRemote interaction with a GDBServer - """ - s = gdb.GDBServer() - r = gdb.GDBRemote('127.0.0.1', s.port) - r.connect() - r.cmd("qSupported") - r.cmd("qfThreadInfo") - s.exit() - - -if __name__ == '__main__': - main() diff --git a/tests/gdbtest.py.data/return99.c b/tests/gdbtest.py.data/return99.c deleted file mode 100644 index bf14935..0000000 --- a/tests/gdbtest.py.data/return99.c +++ /dev/null @@ -1,47 +0,0 @@ -#include -#include - -void empty() -{ -} - -void write_stdout() -{ - fprintf(stdout, "testing output to stdout\n"); -} - -void write_stderr() -{ - fprintf(stderr, "testing output to stderr\n"); -} - -int forkme() -{ - int pid; - - pid = fork(); - if (pid != 0) - pid = fork(); - if (pid != 0) - pid = fork(); - - return pid; -} - -int main(int argc, char *argv[]) -{ - int exit_status = 99; - - if (argc > 1) - exit_status = atoi(argv[1]); - - empty(); - write_stdout(); - write_stderr(); - - if (forkme()) { - fprintf(stdout, "return %i\n", exit_status); - } - - return exit_status; -} diff --git a/tests/gdbtest.py.data/segfault.c b/tests/gdbtest.py.data/segfault.c deleted file mode 100644 index a685f86..0000000 --- a/tests/gdbtest.py.data/segfault.c +++ /dev/null @@ -1,9 +0,0 @@ -#include - -int main() -{ - int *p = NULL; - *p = 0xdead; - - return 0; -} diff --git a/tests/tests.yml b/tests/tests.yml deleted file mode 100644 index be4a031..0000000 --- a/tests/tests.yml +++ /dev/null @@ -1,29 +0,0 @@ -- hosts: localhost - roles: - - role: standard-test-avocado - tests: - - gdbtest.py:GdbTest.test_start_exit - - gdbtest.py:GdbTest.test_existing_commands - - gdbtest.py:GdbTest.test_existing_commands_raw - - gdbtest.py:GdbTest.test_load_set_breakpoint_run_exit_raw - - gdbtest.py:GdbTest.test_load_set_breakpoint_run_exit - - gdbtest.py:GdbTest.test_generate_core - - gdbtest.py:GdbTest.test_set_multiple_break - - gdbtest.py:GdbTest.test_disconnect_raw - - gdbtest.py:GdbTest.test_disconnect - - gdbtest.py:GdbTest.test_remote_exec - - gdbtest.py:GdbTest.test_stream_messages - - gdbtest.py:GdbTest.test_connect_multiple_clients - - gdbtest.py:GdbTest.test_server_exit - - gdbtest.py:GdbTest.test_server_stdout - - gdbtest.py:GdbTest.test_server_stderr - - gdbtest.py:GdbTest.test_multiple_servers - - gdbtest.py:GdbTest.test_interactive - - gdbtest.py:GdbTest.test_interactive_args - - gdbtest.py:GdbTest.test_exit_status - - gdbtest.py:GdbTest.test_interactive_stdout - - gdbtest.py:GdbTest.test_remote - required_packages: - - gcc - - gdb - - gdb-gdbserver From dd1a190a670bd71c4a219e546df6c6de14254c10 Mon Sep 17 00:00:00 2001 From: Cleber Rosa Date: Tue, 17 Nov 2020 13:42:13 -0500 Subject: [PATCH 09/57] Sync with upstream release 83.0. Signed-off-by: Cleber Rosa --- .gitignore | 1 + python-avocado.spec | 62 ++++++++------------------------------------- sources | 2 +- 3 files changed, 12 insertions(+), 53 deletions(-) diff --git a/.gitignore b/.gitignore index bf17c05..9911759 100644 --- a/.gitignore +++ b/.gitignore @@ -28,3 +28,4 @@ /avocado-79.0.tar.gz /avocado-80.0.tar.gz /avocado-82.0.tar.gz +/avocado-83.0.tar.gz diff --git a/python-avocado.spec b/python-avocado.spec index d8ed3a8..a128bbc 100644 --- a/python-avocado.spec +++ b/python-avocado.spec @@ -12,10 +12,10 @@ %global gittar %{srcname}-%{version}.tar.gz %else %if ! 0%{?commit:1} - %global commit e97540793998c4f24a16000465dd7fdd213bf2b9 + %global commit 4e0580a36a6c4089c96c9928905c1d9ae5e4f3be %endif %if ! 0%{?commit_date:1} - %global commit_date 20200911 + %global commit_date 20201116 %endif %global shortcommit %(c=%{commit};echo ${c:0:9}) %global gitrel .%{commit_date}git%{shortcommit} @@ -37,7 +37,7 @@ %endif Name: python-%{pkgname} -Version: 82.0 +Version: 83.0 Release: 1%{?gitrel}%{?dist} Summary: Framework with tools and libraries for Automated Testing Group: Development/Tools @@ -107,9 +107,6 @@ popd pushd optional_plugins/varianter_yaml_to_mux %py3_build popd -pushd optional_plugins/loader_yaml - %py3_build -popd pushd optional_plugins/golang %py3_build popd @@ -122,9 +119,6 @@ popd pushd optional_plugins/result_upload %py3_build popd -pushd optional_plugins/glib - %py3_build -popd %{__make} man %install @@ -160,9 +154,6 @@ popd pushd optional_plugins/varianter_yaml_to_mux %py3_install popd -pushd optional_plugins/loader_yaml - %py3_install -popd pushd optional_plugins/golang %py3_install popd @@ -175,9 +166,6 @@ popd pushd optional_plugins/result_upload %py3_install popd -pushd optional_plugins/glib - %py3_install -popd # cleanup plugin test cruft %{__rm} -rf %{buildroot}%{python3_sitelib}/tests %{__mkdir} -p %{buildroot}%{_sysconfdir}/avocado @@ -201,7 +189,6 @@ popd %{__cp} -r examples/varianter_pict %{buildroot}%{_docdir}/avocado/varianter_pict %{__cp} -r examples/wrappers %{buildroot}%{_docdir}/avocado/wrappers %{__cp} -r examples/yaml_to_mux %{buildroot}%{_docdir}/avocado/yaml_to_mux -%{__cp} -r examples/yaml_to_mux_loader %{buildroot}%{_docdir}/avocado/yaml_to_mux_loader find %{buildroot}%{_docdir}/avocado -type f -name '*.py' -exec %{__chmod} -c -x {} ';' @@ -220,9 +207,6 @@ find %{buildroot}%{_docdir}/avocado -type f -name '*.py' -exec %{__chmod} -c -x pushd optional_plugins/varianter_yaml_to_mux %{__python3} setup.py develop --user popd - pushd optional_plugins/loader_yaml - %{__python3} setup.py develop --user - popd pushd optional_plugins/golang %{__python3} setup.py develop --user popd @@ -235,9 +219,6 @@ find %{buildroot}%{_docdir}/avocado -type f -name '*.py' -exec %{__chmod} -c -x pushd optional_plugins/result_upload %{__python3} setup.py develop --user popd - pushd optional_plugins/glib - %{__python3} setup.py develop --user - popd # LANG: to make the results predictable, we pin the language # that is used during test execution. # AVOCADO_CHECK_LEVEL: package build environments have the least @@ -373,20 +354,6 @@ defined in a yaml file(s). %{python3_sitelib}/avocado_framework_plugin_varianter_yaml_to_mux-%{version}-py%{python3_version}.egg-info -%package -n python3-%{pkgname}-plugins-loader-yaml -Summary: Avocado plugin that loads tests from YAML files -%{?python_provide:%python_provide python3-%{pkgname}-plugins-loader-yaml} -Requires: python3-%{pkgname}-plugins-varianter-yaml-to-mux == %{version}-%{release} - -%description -n python3-%{pkgname}-plugins-loader-yaml -Can be used to produce a test suite from definitions in a YAML file, -similar to the one used in the yaml_to_mux varianter plugin. - -%files -n python3-%{pkgname}-plugins-loader-yaml -%{python3_sitelib}/avocado_loader_yaml/ -%{python3_sitelib}/avocado_framework_plugin_loader_yaml-%{version}-py%{python3_version}.egg-info - - %package -n python3-%{pkgname}-plugins-golang Summary: Avocado plugin for execution of golang tests %{?python_provide:%python_provide python3-%{pkgname}-plugins-golang} @@ -400,7 +367,7 @@ also run them. %files -n python3-%{pkgname}-plugins-golang %{python3_sitelib}/avocado_golang/ %{python3_sitelib}/avocado_framework_plugin_golang-%{version}-py%{python3_version}.egg-info - +%{_bindir}/avocado-runner-golang %package -n python3-%{pkgname}-plugins-varianter-pict Summary: Varianter with combinatorial capabilities by PICT @@ -445,20 +412,6 @@ a dedicated sever. %{python3_sitelib}/avocado_framework_plugin_result_upload-%{version}-py%{python3_version}.egg-info -%package -n python3-%{pkgname}-plugins-glib -Summary: Avocado plugin for execution of GLib Test Framework tests -%{?python_provide:%python_provide python3-%{pkgname}-plugins-glib} -Requires: python3-%{pkgname} == %{version}-%{release} - -%description -n python3-%{pkgname}-plugins-glib -This optional plugin is intended to list and run tests written in the -GLib Test Framework. - -%files -n python3-%{pkgname}-plugins-glib -%{python3_sitelib}/avocado_glib/ -%{python3_sitelib}/avocado_framework_plugin_glib-%{version}-py%{python3_version}.egg-info - - %package -n python-%{pkgname}-examples Summary: Avocado Test Framework Example Tests License: GPLv2 @@ -479,7 +432,6 @@ examples of how to write tests on your own. %{_docdir}/avocado/varianter_pict %{_docdir}/avocado/wrappers %{_docdir}/avocado/yaml_to_mux -%{_docdir}/avocado/yaml_to_mux_loader %package -n python-%{pkgname}-bash @@ -500,6 +452,12 @@ Again Shell code (and possibly other similar shells). %changelog +* Tue Nov 17 2020 Cleber Rosa - 83.0-1 +- Sync with upstream release 83.0. +- Added avocado-runner-golang script to golang package +- Removed glib plugin +- Removed yaml to mux loader plugin + * Mon Sep 14 2020 Cleber Rosa - 82.0-1 - Sync with upstream release 82.0. - Removed python libvirt depedency as the vm runner has been removed diff --git a/sources b/sources index 4721c3f..1b40424 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (avocado-82.0.tar.gz) = 099ab131b2b941602550e71507e4ca517d5d2cd5152b255edace0473c9de93aac8163a61689414b5b58f9211f58981c3c30c1c3ca8a191283f609722ce07f173 +SHA512 (avocado-83.0.tar.gz) = 9b43508ecf37b1db7b6b97080317f7849c2658638b13f1f3554f7a57c550c03295a0b818167daa78e7730beec585a39cef09a21361f21ed42c059d4ef7d1913a From 34b61b19ca77945bce7e3623c145d112ab9ec881 Mon Sep 17 00:00:00 2001 From: Cleber Rosa Date: Tue, 9 Feb 2021 19:45:50 -0500 Subject: [PATCH 10/57] Sync with upstream release 84.0. Signed-off-by: Cleber Rosa --- .gitignore | 1 + python-avocado.spec | 15 ++++++++++----- sources | 2 +- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index 9911759..6827791 100644 --- a/.gitignore +++ b/.gitignore @@ -29,3 +29,4 @@ /avocado-80.0.tar.gz /avocado-82.0.tar.gz /avocado-83.0.tar.gz +/avocado-84.0.tar.gz diff --git a/python-avocado.spec b/python-avocado.spec index a128bbc..fc223c9 100644 --- a/python-avocado.spec +++ b/python-avocado.spec @@ -12,10 +12,10 @@ %global gittar %{srcname}-%{version}.tar.gz %else %if ! 0%{?commit:1} - %global commit 4e0580a36a6c4089c96c9928905c1d9ae5e4f3be + %global commit c01f71fcc05826a08ea1b28b47930722b3363df4 %endif %if ! 0%{?commit_date:1} - %global commit_date 20201116 + %global commit_date 20201221 %endif %global shortcommit %(c=%{commit};echo ${c:0:9}) %global gitrel .%{commit_date}git%{shortcommit} @@ -37,7 +37,7 @@ %endif Name: python-%{pkgname} -Version: 83.0 +Version: 84.0 Release: 1%{?gitrel}%{?dist} Summary: Framework with tools and libraries for Automated Testing Group: Development/Tools @@ -90,7 +90,7 @@ these days a framework) to perform automated testing. %prep %setup -q -n %{srcname}-%{gitref} -%if (0%{?fedora} && 0%{?fedora} < 29) || 0%{?rhel} +%if 0%{?rhel} sed -e "s/'PyYAML>=4.2b2'/'PyYAML>=3.12'/" -i optional_plugins/varianter_yaml_to_mux/setup.py %endif @@ -225,7 +225,7 @@ find %{buildroot}%{_docdir}/avocado -type f -name '*.py' -exec %{__chmod} -c -x # amount of resources we have observed so far. Let's avoid tests that # require too much resources or are time sensitive USER_BASE=`%{__python3} -m site --user-base` - PATH=$USER_BASE/bin:$PATH LANG=en_US.UTF-8 AVOCADO_CHECK_LEVEL=0 %{__python3} selftests/run + PATH=$USER_BASE/bin:$PATH LANG=en_US.UTF-8 AVOCADO_CHECK_LEVEL=0 %{__python3} selftests/check.py --disable-static-checks --disable-plugin-checks=robot %endif @@ -452,6 +452,11 @@ Again Shell code (and possibly other similar shells). %changelog +* Wed Feb 10 2021 Cleber Rosa - 84.0-1 +- Sync with upstream release 84.0. +- Drop old Fedora conditionals +- Use selftests/check.py job instead of more limited selftests/run + * Tue Nov 17 2020 Cleber Rosa - 83.0-1 - Sync with upstream release 83.0. - Added avocado-runner-golang script to golang package diff --git a/sources b/sources index 1b40424..b0380d8 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (avocado-83.0.tar.gz) = 9b43508ecf37b1db7b6b97080317f7849c2658638b13f1f3554f7a57c550c03295a0b818167daa78e7730beec585a39cef09a21361f21ed42c059d4ef7d1913a +SHA512 (avocado-84.0.tar.gz) = 8ff8d5f976c2f3f48c70acb5d157b3a4ed27c56e99e9689213ae54d64fb2e37083ee156b3d55cd75b4766a0c75c27541770550860a25893223749ef8b340cdd1 From bf1deffff491f830a61f922277a655d646a6b0cb Mon Sep 17 00:00:00 2001 From: Cleber Rosa Date: Tue, 9 Feb 2021 20:28:44 -0500 Subject: [PATCH 11/57] Sync with upstream release 85.0. Signed-off-by: Cleber Rosa --- .gitignore | 1 + python-avocado.spec | 9 ++++++--- sources | 2 +- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 6827791..9508ef3 100644 --- a/.gitignore +++ b/.gitignore @@ -30,3 +30,4 @@ /avocado-82.0.tar.gz /avocado-83.0.tar.gz /avocado-84.0.tar.gz +/avocado-85.0.tar.gz diff --git a/python-avocado.spec b/python-avocado.spec index fc223c9..09f976e 100644 --- a/python-avocado.spec +++ b/python-avocado.spec @@ -12,10 +12,10 @@ %global gittar %{srcname}-%{version}.tar.gz %else %if ! 0%{?commit:1} - %global commit c01f71fcc05826a08ea1b28b47930722b3363df4 + %global commit 954ff938991894a73171463d329b6bfa748c6652 %endif %if ! 0%{?commit_date:1} - %global commit_date 20201221 + %global commit_date 20210209 %endif %global shortcommit %(c=%{commit};echo ${c:0:9}) %global gitrel .%{commit_date}git%{shortcommit} @@ -37,7 +37,7 @@ %endif Name: python-%{pkgname} -Version: 84.0 +Version: 85.0 Release: 1%{?gitrel}%{?dist} Summary: Framework with tools and libraries for Automated Testing Group: Development/Tools @@ -452,6 +452,9 @@ Again Shell code (and possibly other similar shells). %changelog +* Wed Feb 10 2021 Cleber Rosa - 85.0-1 +- Sync with upstream release 85.0. + * Wed Feb 10 2021 Cleber Rosa - 84.0-1 - Sync with upstream release 84.0. - Drop old Fedora conditionals diff --git a/sources b/sources index b0380d8..e464bb2 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (avocado-84.0.tar.gz) = 8ff8d5f976c2f3f48c70acb5d157b3a4ed27c56e99e9689213ae54d64fb2e37083ee156b3d55cd75b4766a0c75c27541770550860a25893223749ef8b340cdd1 +SHA512 (avocado-85.0.tar.gz) = 16134248fa5300cc861419f1c371cd7e2c00c25b6275c288185d04e4290bde44b6d687d05ca4e224cb910e48de1fb39195e9f2e3a08900d5f33d5cd227ed6f1f From 144400fc2b6496d8dc703419f6196bd0df38953d Mon Sep 17 00:00:00 2001 From: Merlin Mathesius Date: Fri, 19 Feb 2021 09:45:25 -0600 Subject: [PATCH 12/57] Fix up BuildRequires: add 'make', drop obsolete packages Adjust PATH to make sure self-tests find internal modules Signed-off-by: Merlin Mathesius --- python-avocado.spec | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/python-avocado.spec b/python-avocado.spec index d8ed3a8..ec2d07d 100644 --- a/python-avocado.spec +++ b/python-avocado.spec @@ -38,7 +38,7 @@ Name: python-%{pkgname} Version: 82.0 -Release: 1%{?gitrel}%{?dist} +Release: 2%{?gitrel}%{?dist} Summary: Framework with tools and libraries for Automated Testing Group: Development/Tools # Found licenses: @@ -51,16 +51,14 @@ Source0: https://github.com/avocado-framework/%{srcname}/archive/%{gitref}.tar.g BuildArch: noarch BuildRequires: kmod +BuildRequires: make BuildRequires: procps-ng BuildRequires: python3-devel BuildRequires: python3-docutils BuildRequires: python3-jinja2 BuildRequires: python3-lxml -BuildRequires: python3-mock BuildRequires: python3-psutil BuildRequires: python3-setuptools -BuildRequires: python3-six -BuildRequires: python3-sphinx %if 0%{?fedora} BuildRequires: python3-pycdlib %endif @@ -244,7 +242,7 @@ find %{buildroot}%{_docdir}/avocado -type f -name '*.py' -exec %{__chmod} -c -x # amount of resources we have observed so far. Let's avoid tests that # require too much resources or are time sensitive USER_BASE=`%{__python3} -m site --user-base` - PATH=$USER_BASE/bin:$PATH LANG=en_US.UTF-8 AVOCADO_CHECK_LEVEL=0 %{__python3} selftests/run + PATH=$USER_BASE/bin:$HOME/bin:$PATH LANG=en_US.UTF-8 AVOCADO_CHECK_LEVEL=0 %{__python3} selftests/run %endif @@ -500,6 +498,10 @@ Again Shell code (and possibly other similar shells). %changelog +* Thu Feb 19 2021 Merlin Mathesius - 82.0-2 +- Fix up BuildRequires: add 'make', drop obsolete packages +- Adjust PATH to make sure self-tests find internal modules + * Mon Sep 14 2020 Cleber Rosa - 82.0-1 - Sync with upstream release 82.0. - Removed python libvirt depedency as the vm runner has been removed From ad5c2de8e61892772f22b809ad9a67f4f7982344 Mon Sep 17 00:00:00 2001 From: Cleber Rosa Date: Mon, 15 Mar 2021 21:48:00 -0400 Subject: [PATCH 13/57] Sync with upstream release 86.0. Signed-off-by: Cleber Rosa --- .gitignore | 1 + python-avocado.spec | 12 ++++++++---- sources | 2 +- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index 9508ef3..24f2a1a 100644 --- a/.gitignore +++ b/.gitignore @@ -31,3 +31,4 @@ /avocado-83.0.tar.gz /avocado-84.0.tar.gz /avocado-85.0.tar.gz +/avocado-86.0.tar.gz diff --git a/python-avocado.spec b/python-avocado.spec index 09f976e..81325a0 100644 --- a/python-avocado.spec +++ b/python-avocado.spec @@ -12,10 +12,10 @@ %global gittar %{srcname}-%{version}.tar.gz %else %if ! 0%{?commit:1} - %global commit 954ff938991894a73171463d329b6bfa748c6652 + %global commit 84ee92d6638ad947722c9130eae0102b3677426d %endif %if ! 0%{?commit_date:1} - %global commit_date 20210209 + %global commit_date 20210315 %endif %global shortcommit %(c=%{commit};echo ${c:0:9}) %global gitrel .%{commit_date}git%{shortcommit} @@ -37,7 +37,7 @@ %endif Name: python-%{pkgname} -Version: 85.0 +Version: 86.0 Release: 1%{?gitrel}%{?dist} Summary: Framework with tools and libraries for Automated Testing Group: Development/Tools @@ -119,7 +119,7 @@ popd pushd optional_plugins/result_upload %py3_build popd -%{__make} man +rst2man man/avocado.rst man/avocado.1 %install %py3_install @@ -452,6 +452,10 @@ Again Shell code (and possibly other similar shells). %changelog +* Tue Mar 16 2021 Cleber Rosa - 86.0-1 +- Sync with upstream release 86.0. +- Do not depend on make to build man page + * Wed Feb 10 2021 Cleber Rosa - 85.0-1 - Sync with upstream release 85.0. diff --git a/sources b/sources index e464bb2..878334d 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (avocado-85.0.tar.gz) = 16134248fa5300cc861419f1c371cd7e2c00c25b6275c288185d04e4290bde44b6d687d05ca4e224cb910e48de1fb39195e9f2e3a08900d5f33d5cd227ed6f1f +SHA512 (avocado-86.0.tar.gz) = 85c2a6987de3658bfff9a46ce1d7214e1ac2c6017f6cfe9b1bb6dc36161efd08836f336f6df4a3baa89d73394aa2cc3fa3af2814b5156b3e2d6635b1c73ef40a From eef3dc2740654446cc66fd8d49bb2f750ef5d9e6 Mon Sep 17 00:00:00 2001 From: Merlin Mathesius Date: Thu, 18 Mar 2021 16:51:26 -0500 Subject: [PATCH 14/57] Spec file cleanup following package review. Signed-off-by: Merlin Mathesius --- python-avocado.spec | 290 ++++++++++++++++++++------------------------ 1 file changed, 131 insertions(+), 159 deletions(-) diff --git a/python-avocado.spec b/python-avocado.spec index ec2d07d..394dec3 100644 --- a/python-avocado.spec +++ b/python-avocado.spec @@ -1,6 +1,3 @@ -%global srcname avocado -%global pkgname avocado - # Conditional for release vs. snapshot builds. Set to 1 for release build. %if ! 0%{?rel_build:1} %global rel_build 1 @@ -9,7 +6,7 @@ # Settings used for build from snapshots. %if 0%{?rel_build} %global gitref %{version} - %global gittar %{srcname}-%{version}.tar.gz + %global gittar avocado-%{version}.tar.gz %else %if ! 0%{?commit:1} %global commit e97540793998c4f24a16000465dd7fdd213bf2b9 @@ -20,7 +17,7 @@ %global shortcommit %(c=%{commit};echo ${c:0:9}) %global gitrel .%{commit_date}git%{shortcommit} %global gitref %{commit} - %global gittar %{srcname}-%{shortcommit}.tar.gz + %global gittar avocado-%{shortcommit}.tar.gz %endif # Selftests are provided but may need to be skipped because many of @@ -29,25 +26,28 @@ # enabled by default. %global with_tests 1 -# resultsdb is only available for Fedora -%if 0%{?fedora} +# resultsdb is not available for RHEL +%if ! 0%{?rhel} %global with_resultsdb 1 %else %global with_resultsdb 0 %endif -Name: python-%{pkgname} +Name: python-avocado Version: 82.0 Release: 2%{?gitrel}%{?dist} Summary: Framework with tools and libraries for Automated Testing -Group: Development/Tools # Found licenses: +# avocado/core/tapparser.py: MIT # avocado/utils/external/gdbmi_parser.py: MIT # avocado/utils/external/spark.py: MIT +# optional_plugins/html/avocado_result_html/templates/bootstrap.min.css: MIT +# optional_plugins/html/avocado_result_html/templates/bootstrap.min.js: MIT +# selftests/.data/jenkins-junit.xsd: MIT # Other files: GPLv2 and GPLv2+ -License: GPLv2 and MIT -URL: http://avocado-framework.github.io/ -Source0: https://github.com/avocado-framework/%{srcname}/archive/%{gitref}.tar.gz#/%{gittar} +License: GPLv2+ and GPLv2 and MIT +URL: https://avocado-framework.github.io/ +Source0: https://github.com/avocado-framework/avocado/archive/%{gitref}/%{gittar} BuildArch: noarch BuildRequires: kmod @@ -59,23 +59,19 @@ BuildRequires: python3-jinja2 BuildRequires: python3-lxml BuildRequires: python3-psutil BuildRequires: python3-setuptools -%if 0%{?fedora} -BuildRequires: python3-pycdlib -%endif %if %{with_resultsdb} BuildRequires: python3-resultsdb_api +BuildRequires: python3-pycdlib %endif %if 0%{?with_tests} BuildRequires: genisoimage BuildRequires: libcdio BuildRequires: psmisc -%if 0%{?fedora} +%if ! 0%{?rhel} BuildRequires: perl-Test-Harness %endif -%if 0%{?fedora} >= 30 || 0%{?rhel} BuildRequires: glibc-all-langpacks -%endif BuildRequires: python3-netifaces BuildRequires: python3-yaml %endif @@ -87,21 +83,23 @@ these days a framework) to perform automated testing. %prep -%setup -q -n %{srcname}-%{gitref} -%if (0%{?fedora} && 0%{?fedora} < 29) || 0%{?rhel} +%setup -q -n avocado-%{gitref} +%if 0%{?rhel} sed -e "s/'PyYAML>=4.2b2'/'PyYAML>=3.12'/" -i optional_plugins/varianter_yaml_to_mux/setup.py %endif +# drop unnecessary install requirement +sed -e "s/'markupsafe<2.0.0', //" -i optional_plugins/html/setup.py %build %py3_build pushd optional_plugins/html %py3_build popd -pushd optional_plugins/resultsdb %if %{with_resultsdb} +pushd optional_plugins/resultsdb %py3_build -%endif popd +%endif pushd optional_plugins/varianter_yaml_to_mux %py3_build popd @@ -123,7 +121,7 @@ popd pushd optional_plugins/glib %py3_build popd -%{__make} man +%make_build man %install %py3_install @@ -138,23 +136,26 @@ for exe in \ avocado-runner-tap \ avocado-software-manager do - %{__mv} %{buildroot}%{_bindir}/$exe %{buildroot}%{_bindir}/$exe-%{python3_version} - %{__ln_s} $exe-%{python3_version} %{buildroot}%{_bindir}/$exe-3 - %{__ln_s} $exe-%{python3_version} %{buildroot}%{_bindir}/$exe + mv %{buildroot}%{_bindir}/$exe %{buildroot}%{_bindir}/$exe-%{python3_version} + ln -s $exe-%{python3_version} %{buildroot}%{_bindir}/$exe-3 + ln -s $exe-%{python3_version} %{buildroot}%{_bindir}/$exe done # configuration is held at /etc/avocado only and part of the # python-avocado-common package -%{__rm} -rf %{buildroot}%{python3_sitelib}/avocado/etc +rm -rf %{buildroot}%{python3_sitelib}/avocado/etc # ditto for libexec files -%{__rm} -rf %{buildroot}%{python3_sitelib}/avocado/libexec +rm -rf %{buildroot}%{python3_sitelib}/avocado/libexec +# adjust permissions for file containing shebang line needed for +# spawning tasks in podman containers +chmod -c +x %{buildroot}%{python3_sitelib}/avocado/core/nrunner.py pushd optional_plugins/html %py3_install popd -pushd optional_plugins/resultsdb %if %{with_resultsdb} +pushd optional_plugins/resultsdb %py3_install -%endif popd +%endif pushd optional_plugins/varianter_yaml_to_mux %py3_install popd @@ -177,97 +178,65 @@ pushd optional_plugins/glib %py3_install popd # cleanup plugin test cruft -%{__rm} -rf %{buildroot}%{python3_sitelib}/tests -%{__mkdir} -p %{buildroot}%{_sysconfdir}/avocado -%{__cp} -r avocado/etc/avocado/scripts %{buildroot}%{_sysconfdir}/avocado/scripts -%{__cp} -r avocado/etc/avocado/sysinfo %{buildroot}%{_sysconfdir}/avocado/sysinfo -%{__mkdir} -p %{buildroot}%{_libexecdir}/avocado -%{__cp} avocado/libexec/avocado-bash-utils %{buildroot}%{_libexecdir}/avocado/avocado-bash-utils -%{__cp} avocado/libexec/avocado_debug %{buildroot}%{_libexecdir}/avocado/avocado_debug -%{__cp} avocado/libexec/avocado_error %{buildroot}%{_libexecdir}/avocado/avocado_error -%{__cp} avocado/libexec/avocado_info %{buildroot}%{_libexecdir}/avocado/avocado_info -%{__cp} avocado/libexec/avocado_warn %{buildroot}%{_libexecdir}/avocado/avocado_warn -%{__mkdir_p} %{buildroot}%{_mandir}/man1 -%{__install} -m 0644 man/avocado.1 %{buildroot}%{_mandir}/man1/avocado.1 -%{__install} -d -m 0755 %{buildroot}%{_sharedstatedir}/avocado/data +rm -rf %{buildroot}%{python3_sitelib}/tests +mkdir -p %{buildroot}%{_sysconfdir}/avocado +cp -r avocado/etc/avocado/scripts %{buildroot}%{_sysconfdir}/avocado/scripts +cp -r avocado/etc/avocado/sysinfo %{buildroot}%{_sysconfdir}/avocado/sysinfo +mkdir -p %{buildroot}%{_libexecdir}/avocado +cp avocado/libexec/avocado-bash-utils %{buildroot}%{_libexecdir}/avocado/avocado-bash-utils +cp avocado/libexec/avocado_debug %{buildroot}%{_libexecdir}/avocado/avocado_debug +cp avocado/libexec/avocado_error %{buildroot}%{_libexecdir}/avocado/avocado_error +cp avocado/libexec/avocado_info %{buildroot}%{_libexecdir}/avocado/avocado_info +cp avocado/libexec/avocado_warn %{buildroot}%{_libexecdir}/avocado/avocado_warn +mkdir -p %{buildroot}%{_mandir}/man1 +install -m 0644 man/avocado.1 %{buildroot}%{_mandir}/man1/avocado.1 +mkdir -p %{buildroot}%{_pkgdocdir} +install -m 0644 README.rst %{buildroot}%{_pkgdocdir} +install -d -m 0755 %{buildroot}%{_sharedstatedir}/avocado/data # place examples in documentation directory -%{__install} -d -m 0755 %{buildroot}%{_docdir}/avocado -%{__cp} -r examples/gdb-prerun-scripts %{buildroot}%{_docdir}/avocado/gdb-prerun-scripts -%{__cp} -r examples/plugins %{buildroot}%{_docdir}/avocado/plugins -%{__cp} -r examples/tests %{buildroot}%{_docdir}/avocado/tests -%{__cp} -r examples/varianter_cit %{buildroot}%{_docdir}/avocado/varianter_cit -%{__cp} -r examples/varianter_pict %{buildroot}%{_docdir}/avocado/varianter_pict -%{__cp} -r examples/wrappers %{buildroot}%{_docdir}/avocado/wrappers -%{__cp} -r examples/yaml_to_mux %{buildroot}%{_docdir}/avocado/yaml_to_mux -%{__cp} -r examples/yaml_to_mux_loader %{buildroot}%{_docdir}/avocado/yaml_to_mux_loader -find %{buildroot}%{_docdir}/avocado -type f -name '*.py' -exec %{__chmod} -c -x {} ';' +install -d -m 0755 %{buildroot}%{_docdir}/avocado +cp -r examples/gdb-prerun-scripts %{buildroot}%{_docdir}/avocado/gdb-prerun-scripts +cp -r examples/plugins %{buildroot}%{_docdir}/avocado/plugins +cp -r examples/tests %{buildroot}%{_docdir}/avocado/tests +cp -r examples/varianter_cit %{buildroot}%{_docdir}/avocado/varianter_cit +cp -r examples/varianter_pict %{buildroot}%{_docdir}/avocado/varianter_pict +cp -r examples/wrappers %{buildroot}%{_docdir}/avocado/wrappers +cp -r examples/yaml_to_mux %{buildroot}%{_docdir}/avocado/yaml_to_mux +cp -r examples/yaml_to_mux_loader %{buildroot}%{_docdir}/avocado/yaml_to_mux_loader +find %{buildroot}%{_docdir}/avocado -type f -name '*.py' -exec chmod -c -x {} ';' -%check %if 0%{?with_tests} - %{__python3} setup.py develop --user - pushd optional_plugins/html - %{__python3} setup.py develop --user - popd - %if %{with_resultsdb} - pushd optional_plugins/resultsdb - %{__python3} setup.py develop --user - popd - %endif - # with_resultsdb - pushd optional_plugins/varianter_yaml_to_mux - %{__python3} setup.py develop --user - popd - pushd optional_plugins/loader_yaml - %{__python3} setup.py develop --user - popd - pushd optional_plugins/golang - %{__python3} setup.py develop --user - popd - pushd optional_plugins/varianter_pict - %{__python3} setup.py develop --user - popd - pushd optional_plugins/varianter_cit - %{__python3} setup.py develop --user - popd - pushd optional_plugins/result_upload - %{__python3} setup.py develop --user - popd - pushd optional_plugins/glib - %{__python3} setup.py develop --user - popd +%check # LANG: to make the results predictable, we pin the language # that is used during test execution. # AVOCADO_CHECK_LEVEL: package build environments have the least # amount of resources we have observed so far. Let's avoid tests that # require too much resources or are time sensitive - USER_BASE=`%{__python3} -m site --user-base` - PATH=$USER_BASE/bin:$HOME/bin:$PATH LANG=en_US.UTF-8 AVOCADO_CHECK_LEVEL=0 %{__python3} selftests/run + PATH=%{buildroot}%{_bindir}:%{buildroot}%{_libexecdir}/avocado:$PATH PYTHONPATH=%{buildroot}%{python3_sitelib}:. \ + LANG=en_US.UTF-8 \ + AVOCADO_CHECK_LEVEL=0 \ + %{python3} selftests/run %endif -%package -n python3-%{pkgname} +%package -n python3-avocado Summary: %{summary} -License: GPLv2 and MIT -%{?python_provide:%python_provide python3-%{pkgname}} -Requires: python-%{pkgname}-common == %{version}-%{release} +Requires: python-avocado-common == %{version}-%{release} Requires: gdb Requires: gdb-gdbserver Requires: procps-ng -Requires: python3 -Requires: python3-setuptools -Requires: python3-six -%if 0%{?fedora} +%if ! 0%{?rhel} Requires: python3-pycdlib %endif -%description -n python3-%{pkgname} +%description -n python3-avocado Avocado is a set of tools and libraries (what people call these days a framework) to perform automated testing. -%files -n python3-%{pkgname} +%files -n python3-avocado %license LICENSE -%doc README.rst +%{_pkgdocdir}/README.rst %{python3_sitelib}/avocado/ %{python3_sitelib}/avocado_framework-%{version}-py%{python3_version}.egg-info %{_bindir}/avocado-%{python3_version} @@ -299,13 +268,15 @@ these days a framework) to perform automated testing. %{_bindir}/avocado-software-manager -%package -n python-%{pkgname}-common +%package -n python-avocado-common Summary: Avocado common files +License: GPLv2+ -%description -n python-%{pkgname}-common +%description -n python-avocado-common Common files (such as configuration) for the Avocado Testing Framework. -%files -n python-%{pkgname}-common +%files -n python-avocado-common +%license LICENSE %{_mandir}/man1/avocado.1.gz %dir %{_docdir}/avocado %dir %{_sharedstatedir}/avocado @@ -322,153 +293,151 @@ Common files (such as configuration) for the Avocado Testing Framework. %{_sysconfdir}/avocado/scripts/job/post.d/README -%package -n python3-%{pkgname}-plugins-output-html +%package -n python3-avocado-plugins-output-html Summary: Avocado HTML report plugin -%{?python_provide:%python_provide python3-%{pkgname}-plugins-output-html} -Requires: python3-%{pkgname} == %{version}-%{release} -Requires: python3-jinja2 +License: GPLv2+ and MIT +Requires: python3-avocado == %{version}-%{release} -%description -n python3-%{pkgname}-plugins-output-html +%description -n python3-avocado-plugins-output-html Adds to avocado the ability to generate an HTML report at every job results directory. It also gives the user the ability to write a report on an arbitrary filesystem location. -%files -n python3-%{pkgname}-plugins-output-html +%files -n python3-avocado-plugins-output-html %{python3_sitelib}/avocado_result_html/ %{python3_sitelib}/avocado_framework_plugin_result_html-%{version}-py%{python3_version}.egg-info %if %{with_resultsdb} -%package -n python3-%{pkgname}-plugins-resultsdb +%package -n python3-avocado-plugins-resultsdb Summary: Avocado plugin to propagate job results to ResultsDB -%{?python_provide:%python_provide python3-%{pkgname}-plugins-resultsdb} -Requires: python3-%{pkgname} == %{version}-%{release} -Requires: python3-resultsdb_api +License: GPLv2+ +Requires: python3-avocado == %{version}-%{release} -%description -n python3-%{pkgname}-plugins-resultsdb +%description -n python3-avocado-plugins-resultsdb Allows Avocado to send job results directly to a ResultsDB server. -%files -n python3-%{pkgname}-plugins-resultsdb +%files -n python3-avocado-plugins-resultsdb %{python3_sitelib}/avocado_resultsdb/ %{python3_sitelib}/avocado_framework_plugin_resultsdb-%{version}-py%{python3_version}.egg-info %endif # with_resultsdb -%package -n python3-%{pkgname}-plugins-varianter-yaml-to-mux +%package -n python3-avocado-plugins-varianter-yaml-to-mux Summary: Avocado plugin to generate variants out of yaml files -%{?python_provide:%python_provide python3-%{pkgname}-plugins-varianter-yaml-to-mux} -Requires: python3-%{pkgname} == %{version}-%{release} -Requires: python3-yaml +License: GPLv2+ +Requires: python3-avocado == %{version}-%{release} -%description -n python3-%{pkgname}-plugins-varianter-yaml-to-mux +%description -n python3-avocado-plugins-varianter-yaml-to-mux Can be used to produce multiple test variants with test parameters defined in a yaml file(s). -%files -n python3-%{pkgname}-plugins-varianter-yaml-to-mux +%files -n python3-avocado-plugins-varianter-yaml-to-mux %{python3_sitelib}/avocado_varianter_yaml_to_mux/ %{python3_sitelib}/avocado_framework_plugin_varianter_yaml_to_mux-%{version}-py%{python3_version}.egg-info -%package -n python3-%{pkgname}-plugins-loader-yaml +%package -n python3-avocado-plugins-loader-yaml Summary: Avocado plugin that loads tests from YAML files -%{?python_provide:%python_provide python3-%{pkgname}-plugins-loader-yaml} -Requires: python3-%{pkgname}-plugins-varianter-yaml-to-mux == %{version}-%{release} +License: GPLv2+ +Requires: python3-avocado-plugins-varianter-yaml-to-mux == %{version}-%{release} -%description -n python3-%{pkgname}-plugins-loader-yaml +%description -n python3-avocado-plugins-loader-yaml Can be used to produce a test suite from definitions in a YAML file, similar to the one used in the yaml_to_mux varianter plugin. -%files -n python3-%{pkgname}-plugins-loader-yaml +%files -n python3-avocado-plugins-loader-yaml %{python3_sitelib}/avocado_loader_yaml/ %{python3_sitelib}/avocado_framework_plugin_loader_yaml-%{version}-py%{python3_version}.egg-info -%package -n python3-%{pkgname}-plugins-golang +%package -n python3-avocado-plugins-golang Summary: Avocado plugin for execution of golang tests -%{?python_provide:%python_provide python3-%{pkgname}-plugins-golang} -Requires: python3-%{pkgname} == %{version}-%{release} +License: GPLv2+ +Requires: python3-avocado == %{version}-%{release} Requires: golang -%description -n python3-%{pkgname}-plugins-golang +%description -n python3-avocado-plugins-golang Allows Avocado to list golang tests, and if golang is installed, also run them. -%files -n python3-%{pkgname}-plugins-golang +%files -n python3-avocado-plugins-golang %{python3_sitelib}/avocado_golang/ %{python3_sitelib}/avocado_framework_plugin_golang-%{version}-py%{python3_version}.egg-info -%package -n python3-%{pkgname}-plugins-varianter-pict +%package -n python3-avocado-plugins-varianter-pict Summary: Varianter with combinatorial capabilities by PICT -%{?python_provide:%python_provide python3-%{pkgname}-plugins-varianter-pict} -Requires: python3-%{pkgname} == %{version}-%{release} +License: GPLv2+ +Requires: python3-avocado == %{version}-%{release} -%description -n python3-%{pkgname}-plugins-varianter-pict +%description -n python3-avocado-plugins-varianter-pict This plugin uses a third-party tool to provide variants created by Pair-Wise algorithms, also known as Combinatorial Independent Testing. -%files -n python3-%{pkgname}-plugins-varianter-pict +%files -n python3-avocado-plugins-varianter-pict %{python3_sitelib}/avocado_varianter_pict/ %{python3_sitelib}/avocado_framework_plugin_varianter_pict-%{version}-py%{python3_version}.egg-info -%package -n python3-%{pkgname}-plugins-varianter-cit +%package -n python3-avocado-plugins-varianter-cit Summary: Varianter with Combinatorial Independent Testing capabilities -%{?python_provide:%python_provide python3-%{pkgname}-plugins-varianter-cit} -Requires: python3-%{pkgname} == %{version}-%{release} +License: GPLv2+ +Requires: python3-avocado == %{version}-%{release} -%description -n python3-%{pkgname}-plugins-varianter-cit +%description -n python3-avocado-plugins-varianter-cit A varianter plugin that generates variants using Combinatorial Independent Testing (AKA Pair-Wise) algorithm developed in collaboration with CVUT Prague. -%files -n python3-%{pkgname}-plugins-varianter-cit +%files -n python3-avocado-plugins-varianter-cit %{python3_sitelib}/avocado_varianter_cit/ %{python3_sitelib}/avocado_framework_plugin_varianter_cit-%{version}-py%{python3_version}.egg-info -%package -n python3-%{pkgname}-plugins-result-upload +%package -n python3-avocado-plugins-result-upload Summary: Avocado plugin propagate job results to a remote host -%{?python_provide:%python_provide python3-%{pkgname}-plugins-result-upload} -Requires: python3-%{pkgname} == %{version}-%{release} +License: GPLv2+ +Requires: python3-avocado == %{version}-%{release} -%description -n python3-%{pkgname}-plugins-result-upload +%description -n python3-avocado-plugins-result-upload This optional plugin is intended to upload the Avocado Job results to a dedicated sever. -%files -n python3-%{pkgname}-plugins-result-upload +%files -n python3-avocado-plugins-result-upload %{python3_sitelib}/avocado_result_upload/ %{python3_sitelib}/avocado_framework_plugin_result_upload-%{version}-py%{python3_version}.egg-info -%package -n python3-%{pkgname}-plugins-glib +%package -n python3-avocado-plugins-glib Summary: Avocado plugin for execution of GLib Test Framework tests -%{?python_provide:%python_provide python3-%{pkgname}-plugins-glib} -Requires: python3-%{pkgname} == %{version}-%{release} +License: GPLv2+ +Requires: python3-avocado == %{version}-%{release} -%description -n python3-%{pkgname}-plugins-glib +%description -n python3-avocado-plugins-glib This optional plugin is intended to list and run tests written in the GLib Test Framework. -%files -n python3-%{pkgname}-plugins-glib +%files -n python3-avocado-plugins-glib %{python3_sitelib}/avocado_glib/ %{python3_sitelib}/avocado_framework_plugin_glib-%{version}-py%{python3_version}.egg-info -%package -n python-%{pkgname}-examples +%package -n python-avocado-examples Summary: Avocado Test Framework Example Tests -License: GPLv2 +License: GPLv2+ # documentation does not require main package, but needs to be in lock-step if present -Conflicts: python3-%{pkgname} < %{version}-%{release}, python3-%{pkgname} > %{version}-%{release} +Conflicts: python3-avocado < %{version}-%{release}, python3-avocado > %{version}-%{release} -%description -n python-%{pkgname}-examples +%description -n python-avocado-examples The set of example tests present in the upstream tree of the Avocado framework. Some of them are used as functional tests of the framework, others serve as examples of how to write tests on your own. -%files -n python-%{pkgname}-examples +%files -n python-avocado-examples +%license LICENSE %dir %{_docdir}/avocado %{_docdir}/avocado/gdb-prerun-scripts %{_docdir}/avocado/plugins @@ -480,15 +449,17 @@ examples of how to write tests on your own. %{_docdir}/avocado/yaml_to_mux_loader -%package -n python-%{pkgname}-bash +%package -n python-avocado-bash Summary: Avocado Test Framework Bash Utilities -Requires: python-%{pkgname}-common == %{version}-%{release} +License: GPLv2+ and GPLv2 +Requires: python-avocado-common == %{version}-%{release} -%description -n python-%{pkgname}-bash +%description -n python-avocado-bash A small set of utilities to interact with Avocado from the Bourne Again Shell code (and possibly other similar shells). -%files -n python-%{pkgname}-bash +%files -n python-avocado-bash +%license LICENSE %dir %{_libexecdir}/avocado %{_libexecdir}/avocado/avocado-bash-utils %{_libexecdir}/avocado/avocado_debug @@ -498,9 +469,10 @@ Again Shell code (and possibly other similar shells). %changelog -* Thu Feb 19 2021 Merlin Mathesius - 82.0-2 +* Thu Mar 18 2021 Merlin Mathesius - 82.0-2 - Fix up BuildRequires: add 'make', drop obsolete packages - Adjust PATH to make sure self-tests find internal modules +- Spec file cleanup following package review. * Mon Sep 14 2020 Cleber Rosa - 82.0-1 - Sync with upstream release 82.0. From 471c4169f044962e3adff0a31818d7169311f847 Mon Sep 17 00:00:00 2001 From: Cleber Rosa Date: Tue, 13 Apr 2021 23:56:22 -0400 Subject: [PATCH 15/57] Sync with upstream release 87.0. Signed-off-by: Cleber Rosa --- .gitignore | 1 + python-avocado.spec | 9 ++++++--- sources | 2 +- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 24f2a1a..4070858 100644 --- a/.gitignore +++ b/.gitignore @@ -32,3 +32,4 @@ /avocado-84.0.tar.gz /avocado-85.0.tar.gz /avocado-86.0.tar.gz +/avocado-87.0.tar.gz diff --git a/python-avocado.spec b/python-avocado.spec index 81325a0..b2114fd 100644 --- a/python-avocado.spec +++ b/python-avocado.spec @@ -12,10 +12,10 @@ %global gittar %{srcname}-%{version}.tar.gz %else %if ! 0%{?commit:1} - %global commit 84ee92d6638ad947722c9130eae0102b3677426d + %global commit 56d1df84fe9a88978c5b7fe538539887d81bf137 %endif %if ! 0%{?commit_date:1} - %global commit_date 20210315 + %global commit_date 20210413 %endif %global shortcommit %(c=%{commit};echo ${c:0:9}) %global gitrel .%{commit_date}git%{shortcommit} @@ -37,7 +37,7 @@ %endif Name: python-%{pkgname} -Version: 86.0 +Version: 87.0 Release: 1%{?gitrel}%{?dist} Summary: Framework with tools and libraries for Automated Testing Group: Development/Tools @@ -452,6 +452,9 @@ Again Shell code (and possibly other similar shells). %changelog +* Wed Apr 14 2021 Cleber Rosa - 87.0-1 +- Sync with upstream release 87.0. + * Tue Mar 16 2021 Cleber Rosa - 86.0-1 - Sync with upstream release 86.0. - Do not depend on make to build man page diff --git a/sources b/sources index 878334d..d05de58 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (avocado-86.0.tar.gz) = 85c2a6987de3658bfff9a46ce1d7214e1ac2c6017f6cfe9b1bb6dc36161efd08836f336f6df4a3baa89d73394aa2cc3fa3af2814b5156b3e2d6635b1c73ef40a +SHA512 (avocado-87.0.tar.gz) = ac1db5a242e4128cf8f10c1998ed21b6f274c4ec8131f8028ca51db64278774eb5a24c02b0bb4d2325196d3378d3f752aad8b2877ab75f29c4ad1ec89c14ef0a From d8dea0a273ea3e565e34fc16d79f44736efcd9f4 Mon Sep 17 00:00:00 2001 From: Cleber Rosa Date: Tue, 18 May 2021 00:17:54 -0400 Subject: [PATCH 16/57] Sync with upstream release 88.1. Signed-off-by: Cleber Rosa --- .gitignore | 1 + python-avocado.spec | 14 +++++++++++--- sources | 2 +- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 4070858..e7329a0 100644 --- a/.gitignore +++ b/.gitignore @@ -33,3 +33,4 @@ /avocado-85.0.tar.gz /avocado-86.0.tar.gz /avocado-87.0.tar.gz +/avocado-88.1.tar.gz diff --git a/python-avocado.spec b/python-avocado.spec index b2114fd..7eeb7c6 100644 --- a/python-avocado.spec +++ b/python-avocado.spec @@ -12,10 +12,10 @@ %global gittar %{srcname}-%{version}.tar.gz %else %if ! 0%{?commit:1} - %global commit 56d1df84fe9a88978c5b7fe538539887d81bf137 + %global commit 1fba8042a8a4a83f5342138786240f676e58074d %endif %if ! 0%{?commit_date:1} - %global commit_date 20210413 + %global commit_date 20210517 %endif %global shortcommit %(c=%{commit};echo ${c:0:9}) %global gitrel .%{commit_date}git%{shortcommit} @@ -37,7 +37,7 @@ %endif Name: python-%{pkgname} -Version: 87.0 +Version: 88.1 Release: 1%{?gitrel}%{?dist} Summary: Framework with tools and libraries for Automated Testing Group: Development/Tools @@ -132,6 +132,7 @@ for exe in \ avocado-runner-python-unittest \ avocado-runner-avocado-instrumented \ avocado-runner-tap \ + avocado-runner-requirement-package \ avocado-software-manager do %{__mv} %{buildroot}%{_bindir}/$exe %{buildroot}%{_bindir}/$exe-%{python3_version} @@ -277,6 +278,9 @@ these days a framework) to perform automated testing. %{_bindir}/avocado-runner-tap-%{python3_version} %{_bindir}/avocado-runner-tap-3 %{_bindir}/avocado-runner-tap +%{_bindir}/avocado-runner-requirement-package-%{python3_version} +%{_bindir}/avocado-runner-requirement-package-3 +%{_bindir}/avocado-runner-requirement-package %{_bindir}/avocado-software-manager-%{python3_version} %{_bindir}/avocado-software-manager-3 %{_bindir}/avocado-software-manager @@ -452,6 +456,10 @@ Again Shell code (and possibly other similar shells). %changelog +* Tue May 18 2021 Cleber Rosa - 88.1-1 +- Sync with upstream release 88.1. +- Included avocado-runner-requirement-package executables + * Wed Apr 14 2021 Cleber Rosa - 87.0-1 - Sync with upstream release 87.0. diff --git a/sources b/sources index d05de58..909fb7d 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (avocado-87.0.tar.gz) = ac1db5a242e4128cf8f10c1998ed21b6f274c4ec8131f8028ca51db64278774eb5a24c02b0bb4d2325196d3378d3f752aad8b2877ab75f29c4ad1ec89c14ef0a +SHA512 (avocado-88.1.tar.gz) = 657151d1fd87e1b64ed8cde0c4f991cd4932a200611856e822f9ebc3ab89103de87bc301afc29c7441490b9da0e201711c92f4a3b0787eea46c5f6b51a81c074 From f846228dfaedfbd3e088480a60463a9a9189dc1d Mon Sep 17 00:00:00 2001 From: Merlin Mathesius Date: Tue, 25 May 2021 11:49:20 -0500 Subject: [PATCH 17/57] Eliminate build dependency on make. Additional minor SPEC cleanup. Signed-off-by: Merlin Mathesius --- python-avocado.spec | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/python-avocado.spec b/python-avocado.spec index 394dec3..b05f121 100644 --- a/python-avocado.spec +++ b/python-avocado.spec @@ -51,7 +51,6 @@ Source0: https://github.com/avocado-framework/avocado/archive/%{gitref}/%{gittar BuildArch: noarch BuildRequires: kmod -BuildRequires: make BuildRequires: procps-ng BuildRequires: python3-devel BuildRequires: python3-docutils @@ -121,7 +120,7 @@ popd pushd optional_plugins/glib %py3_build popd -%make_build man +rst2man man/avocado.rst man/avocado.1 %install %py3_install @@ -213,7 +212,8 @@ find %{buildroot}%{_docdir}/avocado -type f -name '*.py' -exec chmod -c -x {} '; # AVOCADO_CHECK_LEVEL: package build environments have the least # amount of resources we have observed so far. Let's avoid tests that # require too much resources or are time sensitive - PATH=%{buildroot}%{_bindir}:%{buildroot}%{_libexecdir}/avocado:$PATH PYTHONPATH=%{buildroot}%{python3_sitelib}:. \ + PATH=%{buildroot}%{_bindir}:%{buildroot}%{_libexecdir}/avocado:$PATH \ + PYTHONPATH=%{buildroot}%{python3_sitelib}:. \ LANG=en_US.UTF-8 \ AVOCADO_CHECK_LEVEL=0 \ %{python3} selftests/run @@ -470,7 +470,8 @@ Again Shell code (and possibly other similar shells). %changelog * Thu Mar 18 2021 Merlin Mathesius - 82.0-2 -- Fix up BuildRequires: add 'make', drop obsolete packages +- Drop obsolete packages from BuildRequires +- Generate man page directly using 'rst2man' rather than requiring 'make' - Adjust PATH to make sure self-tests find internal modules - Spec file cleanup following package review. From 6a0c9445924c9115fcbf44dc09f710e021b56cea Mon Sep 17 00:00:00 2001 From: Cleber Rosa Date: Tue, 22 Jun 2021 13:54:45 -0400 Subject: [PATCH 18/57] Sync with upstream release 89.0 Signed-off-by: Cleber Rosa --- .gitignore | 1 + python-avocado.spec | 18 +++++++++++++++--- sources | 2 +- 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index e7329a0..68e83ee 100644 --- a/.gitignore +++ b/.gitignore @@ -34,3 +34,4 @@ /avocado-86.0.tar.gz /avocado-87.0.tar.gz /avocado-88.1.tar.gz +/avocado-89.0.tar.gz diff --git a/python-avocado.spec b/python-avocado.spec index 7eeb7c6..7f22ac8 100644 --- a/python-avocado.spec +++ b/python-avocado.spec @@ -12,10 +12,10 @@ %global gittar %{srcname}-%{version}.tar.gz %else %if ! 0%{?commit:1} - %global commit 1fba8042a8a4a83f5342138786240f676e58074d + %global commit 5c5e83340a6041cf470186c48be9d50cb07f9486 %endif %if ! 0%{?commit_date:1} - %global commit_date 20210517 + %global commit_date 20210621 %endif %global shortcommit %(c=%{commit};echo ${c:0:9}) %global gitrel .%{commit_date}git%{shortcommit} @@ -37,7 +37,7 @@ %endif Name: python-%{pkgname} -Version: 88.1 +Version: 89.0 Release: 1%{?gitrel}%{?dist} Summary: Framework with tools and libraries for Automated Testing Group: Development/Tools @@ -127,11 +127,13 @@ for exe in \ avocado \ avocado-runner \ avocado-runner-noop \ + avocado-runner-dry-run \ avocado-runner-exec \ avocado-runner-exec-test \ avocado-runner-python-unittest \ avocado-runner-avocado-instrumented \ avocado-runner-tap \ + avocado-runner-requirement-asset \ avocado-runner-requirement-package \ avocado-software-manager do @@ -263,6 +265,9 @@ these days a framework) to perform automated testing. %{_bindir}/avocado-runner-noop-%{python3_version} %{_bindir}/avocado-runner-noop-3 %{_bindir}/avocado-runner-noop +%{_bindir}/avocado-runner-dry-run-%{python3_version} +%{_bindir}/avocado-runner-dry-run-3 +%{_bindir}/avocado-runner-dry-run %{_bindir}/avocado-runner-exec-%{python3_version} %{_bindir}/avocado-runner-exec-3 %{_bindir}/avocado-runner-exec @@ -278,6 +283,9 @@ these days a framework) to perform automated testing. %{_bindir}/avocado-runner-tap-%{python3_version} %{_bindir}/avocado-runner-tap-3 %{_bindir}/avocado-runner-tap +%{_bindir}/avocado-runner-requirement-asset-%{python3_version} +%{_bindir}/avocado-runner-requirement-asset-3 +%{_bindir}/avocado-runner-requirement-asset %{_bindir}/avocado-runner-requirement-package-%{python3_version} %{_bindir}/avocado-runner-requirement-package-3 %{_bindir}/avocado-runner-requirement-package @@ -456,6 +464,10 @@ Again Shell code (and possibly other similar shells). %changelog +* Tue Jun 22 2021 Cleber Rosa - 89.0-1 +- Sync with upstream release 89.0. +- Packaged avocado-runner-dry-run and avocado-runner-requirement-asset + * Tue May 18 2021 Cleber Rosa - 88.1-1 - Sync with upstream release 88.1. - Included avocado-runner-requirement-package executables diff --git a/sources b/sources index 909fb7d..8a82bb6 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (avocado-88.1.tar.gz) = 657151d1fd87e1b64ed8cde0c4f991cd4932a200611856e822f9ebc3ab89103de87bc301afc29c7441490b9da0e201711c92f4a3b0787eea46c5f6b51a81c074 +SHA512 (avocado-89.0.tar.gz) = 37b7545da4c7b2a5fd073de0212bce66ea2a93e45e513f10769b2ee305071e9c5cd8fa54cfd81209d1c62a9c0a9da069890808a701344ecd06515622b87baec3 From 21ebe30b86182bb0aca016aea2c8b0e2605ac063 Mon Sep 17 00:00:00 2001 From: Merlin Mathesius Date: Thu, 1 Jul 2021 15:45:39 -0500 Subject: [PATCH 19/57] Spec file cleanup identified during package review to bring back non-modular version of package. Signed-off-by: Merlin Mathesius --- avocado-89.0-passtest-path-fix.patch | 24 +++ python-avocado.spec | 269 +++++++++++++-------------- 2 files changed, 149 insertions(+), 144 deletions(-) create mode 100644 avocado-89.0-passtest-path-fix.patch diff --git a/avocado-89.0-passtest-path-fix.patch b/avocado-89.0-passtest-path-fix.patch new file mode 100644 index 0000000..7af4756 --- /dev/null +++ b/avocado-89.0-passtest-path-fix.patch @@ -0,0 +1,24 @@ +From 8e2d7da5868ca2ae1c66c24a3e5c2957daffc7d7 Mon Sep 17 00:00:00 2001 +From: Merlin Mathesius +Date: Thu, 1 Jul 2021 15:04:14 -0500 +Subject: [PATCH] Specify the complete relative path to passtest.py in + HtmlResultTest.test_output_compatible_setup_2 so it finds the script to run. + +Signed-off-by: Merlin Mathesius +--- + optional_plugins/html/tests/test_html_result.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/optional_plugins/html/tests/test_html_result.py b/optional_plugins/html/tests/test_html_result.py +index b123a669aa..e074d3bc3a 100644 +--- a/optional_plugins/html/tests/test_html_result.py ++++ b/optional_plugins/html/tests/test_html_result.py +@@ -53,7 +53,7 @@ def test_output_compatible_setup_2(self): + tmpfile3 = os.path.join(tmpdir, "result.html") + cmd_line = ('avocado run --job-results-dir %s --disable-sysinfo ' + '--xunit %s --json %s --html %s --tap-include-logs ' +- 'passtest.py' % (self.tmpdir.name, tmpfile, tmpfile2, tmpfile3)) ++ 'examples/tests/passtest.py' % (self.tmpdir.name, tmpfile, tmpfile2, tmpfile3)) + result = process.run(cmd_line, ignore_status=True) + output = result.stdout + result.stderr + expected_rc = exit_codes.AVOCADO_ALL_OK diff --git a/python-avocado.spec b/python-avocado.spec index 7f22ac8..86ea66d 100644 --- a/python-avocado.spec +++ b/python-avocado.spec @@ -1,6 +1,3 @@ -%global srcname avocado -%global pkgname avocado - # Conditional for release vs. snapshot builds. Set to 1 for release build. %if ! 0%{?rel_build:1} %global rel_build 1 @@ -9,7 +6,7 @@ # Settings used for build from snapshots. %if 0%{?rel_build} %global gitref %{version} - %global gittar %{srcname}-%{version}.tar.gz + %global gittar avocado-%{version}.tar.gz %else %if ! 0%{?commit:1} %global commit 5c5e83340a6041cf470186c48be9d50cb07f9486 @@ -20,7 +17,7 @@ %global shortcommit %(c=%{commit};echo ${c:0:9}) %global gitrel .%{commit_date}git%{shortcommit} %global gitref %{commit} - %global gittar %{srcname}-%{shortcommit}.tar.gz + %global gittar avocado-%{shortcommit}.tar.gz %endif # Selftests are provided but may need to be skipped because many of @@ -29,25 +26,30 @@ # enabled by default. %global with_tests 1 -# resultsdb is only available for Fedora -%if 0%{?fedora} +# resultsdb is not available for RHEL +%if ! 0%{?rhel} %global with_resultsdb 1 %else %global with_resultsdb 0 %endif -Name: python-%{pkgname} +Name: python-avocado Version: 89.0 -Release: 1%{?gitrel}%{?dist} +Release: 2%{?gitrel}%{?dist} Summary: Framework with tools and libraries for Automated Testing -Group: Development/Tools # Found licenses: +# avocado/core/tapparser.py: MIT # avocado/utils/external/gdbmi_parser.py: MIT # avocado/utils/external/spark.py: MIT +# optional_plugins/html/avocado_result_html/templates/bootstrap.min.css: MIT +# optional_plugins/html/avocado_result_html/templates/bootstrap.min.js: MIT +# selftests/.data/jenkins-junit.xsd: MIT # Other files: GPLv2 and GPLv2+ -License: GPLv2 and MIT -URL: http://avocado-framework.github.io/ -Source0: https://github.com/avocado-framework/%{srcname}/archive/%{gitref}.tar.gz#/%{gittar} +License: GPLv2+ and GPLv2 and MIT +URL: https://avocado-framework.github.io/ +Source0: https://github.com/avocado-framework/avocado/archive/%{gitref}/%{gittar} +# Patch from https://github.com/avocado-framework/avocado/pull/4759 +Patch0: avocado-89.0-passtest-path-fix.patch BuildArch: noarch BuildRequires: kmod @@ -56,28 +58,21 @@ BuildRequires: python3-devel BuildRequires: python3-docutils BuildRequires: python3-jinja2 BuildRequires: python3-lxml -BuildRequires: python3-mock BuildRequires: python3-psutil BuildRequires: python3-setuptools -BuildRequires: python3-six -BuildRequires: python3-sphinx -%if 0%{?fedora} -BuildRequires: python3-pycdlib -%endif %if %{with_resultsdb} BuildRequires: python3-resultsdb_api +BuildRequires: python3-pycdlib %endif %if 0%{?with_tests} BuildRequires: genisoimage BuildRequires: libcdio BuildRequires: psmisc -%if 0%{?fedora} +%if ! 0%{?rhel} BuildRequires: perl-Test-Harness %endif -%if 0%{?fedora} >= 30 || 0%{?rhel} BuildRequires: glibc-all-langpacks -%endif BuildRequires: python3-netifaces BuildRequires: python3-yaml %endif @@ -89,7 +84,8 @@ these days a framework) to perform automated testing. %prep -%setup -q -n %{srcname}-%{gitref} +%setup -q -n avocado-%{gitref} +%patch0 -p 1 %if 0%{?rhel} sed -e "s/'PyYAML>=4.2b2'/'PyYAML>=3.12'/" -i optional_plugins/varianter_yaml_to_mux/setup.py %endif @@ -99,11 +95,11 @@ sed -e "s/'PyYAML>=4.2b2'/'PyYAML>=3.12'/" -i optional_plugins/varianter_yaml_to pushd optional_plugins/html %py3_build popd -pushd optional_plugins/resultsdb %if %{with_resultsdb} +pushd optional_plugins/resultsdb %py3_build -%endif popd +%endif pushd optional_plugins/varianter_yaml_to_mux %py3_build popd @@ -137,23 +133,26 @@ for exe in \ avocado-runner-requirement-package \ avocado-software-manager do - %{__mv} %{buildroot}%{_bindir}/$exe %{buildroot}%{_bindir}/$exe-%{python3_version} - %{__ln_s} $exe-%{python3_version} %{buildroot}%{_bindir}/$exe-3 - %{__ln_s} $exe-%{python3_version} %{buildroot}%{_bindir}/$exe + mv %{buildroot}%{_bindir}/$exe %{buildroot}%{_bindir}/$exe-%{python3_version} + ln -s $exe-%{python3_version} %{buildroot}%{_bindir}/$exe-3 + ln -s $exe-%{python3_version} %{buildroot}%{_bindir}/$exe done # configuration is held at /etc/avocado only and part of the # python-avocado-common package -%{__rm} -rf %{buildroot}%{python3_sitelib}/avocado/etc +rm -rf %{buildroot}%{python3_sitelib}/avocado/etc # ditto for libexec files -%{__rm} -rf %{buildroot}%{python3_sitelib}/avocado/libexec +rm -rf %{buildroot}%{python3_sitelib}/avocado/libexec +# adjust permissions for file containing shebang line needed for +# spawning tasks in podman containers +chmod -c +x %{buildroot}%{python3_sitelib}/avocado/core/nrunner.py pushd optional_plugins/html %py3_install popd -pushd optional_plugins/resultsdb %if %{with_resultsdb} +pushd optional_plugins/resultsdb %py3_install -%endif popd +%endif pushd optional_plugins/varianter_yaml_to_mux %py3_install popd @@ -170,90 +169,65 @@ pushd optional_plugins/result_upload %py3_install popd # cleanup plugin test cruft -%{__rm} -rf %{buildroot}%{python3_sitelib}/tests -%{__mkdir} -p %{buildroot}%{_sysconfdir}/avocado -%{__cp} -r avocado/etc/avocado/scripts %{buildroot}%{_sysconfdir}/avocado/scripts -%{__cp} -r avocado/etc/avocado/sysinfo %{buildroot}%{_sysconfdir}/avocado/sysinfo -%{__mkdir} -p %{buildroot}%{_libexecdir}/avocado -%{__cp} avocado/libexec/avocado-bash-utils %{buildroot}%{_libexecdir}/avocado/avocado-bash-utils -%{__cp} avocado/libexec/avocado_debug %{buildroot}%{_libexecdir}/avocado/avocado_debug -%{__cp} avocado/libexec/avocado_error %{buildroot}%{_libexecdir}/avocado/avocado_error -%{__cp} avocado/libexec/avocado_info %{buildroot}%{_libexecdir}/avocado/avocado_info -%{__cp} avocado/libexec/avocado_warn %{buildroot}%{_libexecdir}/avocado/avocado_warn -%{__mkdir_p} %{buildroot}%{_mandir}/man1 -%{__install} -m 0644 man/avocado.1 %{buildroot}%{_mandir}/man1/avocado.1 -%{__install} -d -m 0755 %{buildroot}%{_sharedstatedir}/avocado/data +rm -rf %{buildroot}%{python3_sitelib}/tests +mkdir -p %{buildroot}%{_sysconfdir}/avocado +cp -r avocado/etc/avocado/scripts %{buildroot}%{_sysconfdir}/avocado/scripts +cp -r avocado/etc/avocado/sysinfo %{buildroot}%{_sysconfdir}/avocado/sysinfo +mkdir -p %{buildroot}%{_libexecdir}/avocado +cp avocado/libexec/avocado-bash-utils %{buildroot}%{_libexecdir}/avocado/avocado-bash-utils +cp avocado/libexec/avocado_debug %{buildroot}%{_libexecdir}/avocado/avocado_debug +cp avocado/libexec/avocado_error %{buildroot}%{_libexecdir}/avocado/avocado_error +cp avocado/libexec/avocado_info %{buildroot}%{_libexecdir}/avocado/avocado_info +cp avocado/libexec/avocado_warn %{buildroot}%{_libexecdir}/avocado/avocado_warn +mkdir -p %{buildroot}%{_mandir}/man1 +install -m 0644 man/avocado.1 %{buildroot}%{_mandir}/man1/avocado.1 +mkdir -p %{buildroot}%{_pkgdocdir} +install -m 0644 README.rst %{buildroot}%{_pkgdocdir} +install -d -m 0755 %{buildroot}%{_sharedstatedir}/avocado/data # place examples in documentation directory -%{__install} -d -m 0755 %{buildroot}%{_docdir}/avocado -%{__cp} -r examples/gdb-prerun-scripts %{buildroot}%{_docdir}/avocado/gdb-prerun-scripts -%{__cp} -r examples/plugins %{buildroot}%{_docdir}/avocado/plugins -%{__cp} -r examples/tests %{buildroot}%{_docdir}/avocado/tests -%{__cp} -r examples/varianter_cit %{buildroot}%{_docdir}/avocado/varianter_cit -%{__cp} -r examples/varianter_pict %{buildroot}%{_docdir}/avocado/varianter_pict -%{__cp} -r examples/wrappers %{buildroot}%{_docdir}/avocado/wrappers -%{__cp} -r examples/yaml_to_mux %{buildroot}%{_docdir}/avocado/yaml_to_mux -find %{buildroot}%{_docdir}/avocado -type f -name '*.py' -exec %{__chmod} -c -x {} ';' +install -d -m 0755 %{buildroot}%{_docdir}/avocado +cp -r examples/gdb-prerun-scripts %{buildroot}%{_docdir}/avocado/gdb-prerun-scripts +cp -r examples/plugins %{buildroot}%{_docdir}/avocado/plugins +cp -r examples/tests %{buildroot}%{_docdir}/avocado/tests +cp -r examples/varianter_cit %{buildroot}%{_docdir}/avocado/varianter_cit +cp -r examples/varianter_pict %{buildroot}%{_docdir}/avocado/varianter_pict +cp -r examples/wrappers %{buildroot}%{_docdir}/avocado/wrappers +cp -r examples/yaml_to_mux %{buildroot}%{_docdir}/avocado/yaml_to_mux +find %{buildroot}%{_docdir}/avocado -type f -name '*.py' -exec chmod -c -x {} ';' -%check %if 0%{?with_tests} - %{__python3} setup.py develop --user - pushd optional_plugins/html - %{__python3} setup.py develop --user - popd - %if %{with_resultsdb} - pushd optional_plugins/resultsdb - %{__python3} setup.py develop --user - popd - %endif - # with_resultsdb - pushd optional_plugins/varianter_yaml_to_mux - %{__python3} setup.py develop --user - popd - pushd optional_plugins/golang - %{__python3} setup.py develop --user - popd - pushd optional_plugins/varianter_pict - %{__python3} setup.py develop --user - popd - pushd optional_plugins/varianter_cit - %{__python3} setup.py develop --user - popd - pushd optional_plugins/result_upload - %{__python3} setup.py develop --user - popd +%check # LANG: to make the results predictable, we pin the language # that is used during test execution. # AVOCADO_CHECK_LEVEL: package build environments have the least # amount of resources we have observed so far. Let's avoid tests that # require too much resources or are time sensitive - USER_BASE=`%{__python3} -m site --user-base` - PATH=$USER_BASE/bin:$PATH LANG=en_US.UTF-8 AVOCADO_CHECK_LEVEL=0 %{__python3} selftests/check.py --disable-static-checks --disable-plugin-checks=robot + PATH=%{buildroot}%{_bindir}:%{buildroot}%{_libexecdir}/avocado:$PATH \ + PYTHONPATH=%{buildroot}%{python3_sitelib}:. \ + LANG=en_US.UTF-8 \ + AVOCADO_CHECK_LEVEL=0 \ + %{python3} selftests/check.py --disable-static-checks --disable-plugin-checks=robot %endif -%package -n python3-%{pkgname} +%package -n python3-avocado Summary: %{summary} -License: GPLv2 and MIT -%{?python_provide:%python_provide python3-%{pkgname}} -Requires: python-%{pkgname}-common == %{version}-%{release} +Requires: python-avocado-common == %{version}-%{release} Requires: gdb Requires: gdb-gdbserver Requires: procps-ng -Requires: python3 -Requires: python3-setuptools -Requires: python3-six -%if 0%{?fedora} +%if ! 0%{?rhel} Requires: python3-pycdlib %endif -%description -n python3-%{pkgname} +%description -n python3-avocado Avocado is a set of tools and libraries (what people call these days a framework) to perform automated testing. -%files -n python3-%{pkgname} +%files -n python3-avocado %license LICENSE -%doc README.rst +%{_pkgdocdir}/README.rst %{python3_sitelib}/avocado/ %{python3_sitelib}/avocado_framework-%{version}-py%{python3_version}.egg-info %{_bindir}/avocado-%{python3_version} @@ -294,13 +268,15 @@ these days a framework) to perform automated testing. %{_bindir}/avocado-software-manager -%package -n python-%{pkgname}-common +%package -n python-avocado-common Summary: Avocado common files +License: GPLv2+ -%description -n python-%{pkgname}-common +%description -n python-avocado-common Common files (such as configuration) for the Avocado Testing Framework. -%files -n python-%{pkgname}-common +%files -n python-avocado-common +%license LICENSE %{_mandir}/man1/avocado.1.gz %dir %{_docdir}/avocado %dir %{_sharedstatedir}/avocado @@ -317,125 +293,124 @@ Common files (such as configuration) for the Avocado Testing Framework. %{_sysconfdir}/avocado/scripts/job/post.d/README -%package -n python3-%{pkgname}-plugins-output-html +%package -n python3-avocado-plugins-output-html Summary: Avocado HTML report plugin -%{?python_provide:%python_provide python3-%{pkgname}-plugins-output-html} -Requires: python3-%{pkgname} == %{version}-%{release} -Requires: python3-jinja2 +License: GPLv2+ and MIT +Requires: python3-avocado == %{version}-%{release} -%description -n python3-%{pkgname}-plugins-output-html +%description -n python3-avocado-plugins-output-html Adds to avocado the ability to generate an HTML report at every job results directory. It also gives the user the ability to write a report on an arbitrary filesystem location. -%files -n python3-%{pkgname}-plugins-output-html +%files -n python3-avocado-plugins-output-html %{python3_sitelib}/avocado_result_html/ %{python3_sitelib}/avocado_framework_plugin_result_html-%{version}-py%{python3_version}.egg-info %if %{with_resultsdb} -%package -n python3-%{pkgname}-plugins-resultsdb +%package -n python3-avocado-plugins-resultsdb Summary: Avocado plugin to propagate job results to ResultsDB -%{?python_provide:%python_provide python3-%{pkgname}-plugins-resultsdb} -Requires: python3-%{pkgname} == %{version}-%{release} -Requires: python3-resultsdb_api +License: GPLv2+ +Requires: python3-avocado == %{version}-%{release} -%description -n python3-%{pkgname}-plugins-resultsdb +%description -n python3-avocado-plugins-resultsdb Allows Avocado to send job results directly to a ResultsDB server. -%files -n python3-%{pkgname}-plugins-resultsdb +%files -n python3-avocado-plugins-resultsdb %{python3_sitelib}/avocado_resultsdb/ %{python3_sitelib}/avocado_framework_plugin_resultsdb-%{version}-py%{python3_version}.egg-info %endif # with_resultsdb -%package -n python3-%{pkgname}-plugins-varianter-yaml-to-mux +%package -n python3-avocado-plugins-varianter-yaml-to-mux Summary: Avocado plugin to generate variants out of yaml files -%{?python_provide:%python_provide python3-%{pkgname}-plugins-varianter-yaml-to-mux} -Requires: python3-%{pkgname} == %{version}-%{release} -Requires: python3-yaml +License: GPLv2+ +Requires: python3-avocado == %{version}-%{release} -%description -n python3-%{pkgname}-plugins-varianter-yaml-to-mux +%description -n python3-avocado-plugins-varianter-yaml-to-mux Can be used to produce multiple test variants with test parameters defined in a yaml file(s). -%files -n python3-%{pkgname}-plugins-varianter-yaml-to-mux +%files -n python3-avocado-plugins-varianter-yaml-to-mux %{python3_sitelib}/avocado_varianter_yaml_to_mux/ %{python3_sitelib}/avocado_framework_plugin_varianter_yaml_to_mux-%{version}-py%{python3_version}.egg-info -%package -n python3-%{pkgname}-plugins-golang +%package -n python3-avocado-plugins-golang Summary: Avocado plugin for execution of golang tests -%{?python_provide:%python_provide python3-%{pkgname}-plugins-golang} -Requires: python3-%{pkgname} == %{version}-%{release} +License: GPLv2+ +Requires: python3-avocado == %{version}-%{release} Requires: golang -%description -n python3-%{pkgname}-plugins-golang +%description -n python3-avocado-plugins-golang Allows Avocado to list golang tests, and if golang is installed, also run them. -%files -n python3-%{pkgname}-plugins-golang +%files -n python3-avocado-plugins-golang %{python3_sitelib}/avocado_golang/ %{python3_sitelib}/avocado_framework_plugin_golang-%{version}-py%{python3_version}.egg-info %{_bindir}/avocado-runner-golang -%package -n python3-%{pkgname}-plugins-varianter-pict -Summary: Varianter with combinatorial capabilities by PICT -%{?python_provide:%python_provide python3-%{pkgname}-plugins-varianter-pict} -Requires: python3-%{pkgname} == %{version}-%{release} -%description -n python3-%{pkgname}-plugins-varianter-pict +%package -n python3-avocado-plugins-varianter-pict +Summary: Varianter with combinatorial capabilities by PICT +License: GPLv2+ +Requires: python3-avocado == %{version}-%{release} + +%description -n python3-avocado-plugins-varianter-pict This plugin uses a third-party tool to provide variants created by Pair-Wise algorithms, also known as Combinatorial Independent Testing. -%files -n python3-%{pkgname}-plugins-varianter-pict +%files -n python3-avocado-plugins-varianter-pict %{python3_sitelib}/avocado_varianter_pict/ %{python3_sitelib}/avocado_framework_plugin_varianter_pict-%{version}-py%{python3_version}.egg-info -%package -n python3-%{pkgname}-plugins-varianter-cit +%package -n python3-avocado-plugins-varianter-cit Summary: Varianter with Combinatorial Independent Testing capabilities -%{?python_provide:%python_provide python3-%{pkgname}-plugins-varianter-cit} -Requires: python3-%{pkgname} == %{version}-%{release} +License: GPLv2+ +Requires: python3-avocado == %{version}-%{release} -%description -n python3-%{pkgname}-plugins-varianter-cit +%description -n python3-avocado-plugins-varianter-cit A varianter plugin that generates variants using Combinatorial Independent Testing (AKA Pair-Wise) algorithm developed in collaboration with CVUT Prague. -%files -n python3-%{pkgname}-plugins-varianter-cit +%files -n python3-avocado-plugins-varianter-cit %{python3_sitelib}/avocado_varianter_cit/ %{python3_sitelib}/avocado_framework_plugin_varianter_cit-%{version}-py%{python3_version}.egg-info -%package -n python3-%{pkgname}-plugins-result-upload +%package -n python3-avocado-plugins-result-upload Summary: Avocado plugin propagate job results to a remote host -%{?python_provide:%python_provide python3-%{pkgname}-plugins-result-upload} -Requires: python3-%{pkgname} == %{version}-%{release} +License: GPLv2+ +Requires: python3-avocado == %{version}-%{release} -%description -n python3-%{pkgname}-plugins-result-upload +%description -n python3-avocado-plugins-result-upload This optional plugin is intended to upload the Avocado Job results to a dedicated sever. -%files -n python3-%{pkgname}-plugins-result-upload +%files -n python3-avocado-plugins-result-upload %{python3_sitelib}/avocado_result_upload/ %{python3_sitelib}/avocado_framework_plugin_result_upload-%{version}-py%{python3_version}.egg-info -%package -n python-%{pkgname}-examples +%package -n python-avocado-examples Summary: Avocado Test Framework Example Tests -License: GPLv2 +License: GPLv2+ # documentation does not require main package, but needs to be in lock-step if present -Conflicts: python3-%{pkgname} < %{version}-%{release}, python3-%{pkgname} > %{version}-%{release} +Conflicts: python3-avocado < %{version}-%{release}, python3-avocado > %{version}-%{release} -%description -n python-%{pkgname}-examples +%description -n python-avocado-examples The set of example tests present in the upstream tree of the Avocado framework. Some of them are used as functional tests of the framework, others serve as examples of how to write tests on your own. -%files -n python-%{pkgname}-examples +%files -n python-avocado-examples +%license LICENSE %dir %{_docdir}/avocado %{_docdir}/avocado/gdb-prerun-scripts %{_docdir}/avocado/plugins @@ -446,15 +421,17 @@ examples of how to write tests on your own. %{_docdir}/avocado/yaml_to_mux -%package -n python-%{pkgname}-bash +%package -n python-avocado-bash Summary: Avocado Test Framework Bash Utilities -Requires: python-%{pkgname}-common == %{version}-%{release} +License: GPLv2+ and GPLv2 +Requires: python-avocado-common == %{version}-%{release} -%description -n python-%{pkgname}-bash +%description -n python-avocado-bash A small set of utilities to interact with Avocado from the Bourne Again Shell code (and possibly other similar shells). -%files -n python-%{pkgname}-bash +%files -n python-avocado-bash +%license LICENSE %dir %{_libexecdir}/avocado %{_libexecdir}/avocado/avocado-bash-utils %{_libexecdir}/avocado/avocado_debug @@ -464,6 +441,10 @@ Again Shell code (and possibly other similar shells). %changelog +* Tue Jun 29 2021 Merlin Mathesius - 89.0-2 +- Spec file cleanup identified during package review to bring back + non-modular version of package. + * Tue Jun 22 2021 Cleber Rosa - 89.0-1 - Sync with upstream release 89.0. - Packaged avocado-runner-dry-run and avocado-runner-requirement-asset From ca704ced8ab9fa9320e5c60f80ddb6b5ec645486 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 23 Jul 2021 05:08:18 +0000 Subject: [PATCH 20/57] - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- python-avocado.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/python-avocado.spec b/python-avocado.spec index b05f121..0b34acd 100644 --- a/python-avocado.spec +++ b/python-avocado.spec @@ -35,7 +35,7 @@ Name: python-avocado Version: 82.0 -Release: 2%{?gitrel}%{?dist} +Release: 3%{?gitrel}%{?dist} Summary: Framework with tools and libraries for Automated Testing # Found licenses: # avocado/core/tapparser.py: MIT @@ -469,6 +469,9 @@ Again Shell code (and possibly other similar shells). %changelog +* Fri Jul 23 2021 Fedora Release Engineering - 82.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + * Thu Mar 18 2021 Merlin Mathesius - 82.0-2 - Drop obsolete packages from BuildRequires - Generate man page directly using 'rst2man' rather than requiring 'make' From abde5697f4d455023a5f616878f646311ec7fd6b Mon Sep 17 00:00:00 2001 From: Cleber Rosa Date: Tue, 27 Jul 2021 15:00:46 -0400 Subject: [PATCH 21/57] Sync with upstream release 90.0 Signed-off-by: Cleber Rosa --- .gitignore | 1 + python-avocado.spec | 15 ++++++++------- sources | 2 +- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index 68e83ee..c546198 100644 --- a/.gitignore +++ b/.gitignore @@ -35,3 +35,4 @@ /avocado-87.0.tar.gz /avocado-88.1.tar.gz /avocado-89.0.tar.gz +/avocado-90.0.tar.gz diff --git a/python-avocado.spec b/python-avocado.spec index 86ea66d..8e5def7 100644 --- a/python-avocado.spec +++ b/python-avocado.spec @@ -9,10 +9,10 @@ %global gittar avocado-%{version}.tar.gz %else %if ! 0%{?commit:1} - %global commit 5c5e83340a6041cf470186c48be9d50cb07f9486 + %global commit 1aa47c413edb406734d95faffc2b347988249100 %endif %if ! 0%{?commit_date:1} - %global commit_date 20210621 + %global commit_date 20210727 %endif %global shortcommit %(c=%{commit};echo ${c:0:9}) %global gitrel .%{commit_date}git%{shortcommit} @@ -34,8 +34,8 @@ %endif Name: python-avocado -Version: 89.0 -Release: 2%{?gitrel}%{?dist} +Version: 90.0 +Release: 1%{?gitrel}%{?dist} Summary: Framework with tools and libraries for Automated Testing # Found licenses: # avocado/core/tapparser.py: MIT @@ -48,8 +48,6 @@ Summary: Framework with tools and libraries for Automated Testing License: GPLv2+ and GPLv2 and MIT URL: https://avocado-framework.github.io/ Source0: https://github.com/avocado-framework/avocado/archive/%{gitref}/%{gittar} -# Patch from https://github.com/avocado-framework/avocado/pull/4759 -Patch0: avocado-89.0-passtest-path-fix.patch BuildArch: noarch BuildRequires: kmod @@ -85,7 +83,6 @@ these days a framework) to perform automated testing. %prep %setup -q -n avocado-%{gitref} -%patch0 -p 1 %if 0%{?rhel} sed -e "s/'PyYAML>=4.2b2'/'PyYAML>=3.12'/" -i optional_plugins/varianter_yaml_to_mux/setup.py %endif @@ -441,6 +438,10 @@ Again Shell code (and possibly other similar shells). %changelog +* Tue Jul 27 2021 Cleber Rosa - 90.0-1 +- Sync with upstream release 90.0. +- Removed patch already included upstream + * Tue Jun 29 2021 Merlin Mathesius - 89.0-2 - Spec file cleanup identified during package review to bring back non-modular version of package. diff --git a/sources b/sources index 8a82bb6..03d7c96 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (avocado-89.0.tar.gz) = 37b7545da4c7b2a5fd073de0212bce66ea2a93e45e513f10769b2ee305071e9c5cd8fa54cfd81209d1c62a9c0a9da069890808a701344ecd06515622b87baec3 +SHA512 (avocado-90.0.tar.gz) = 3aef3e8d0eff03c6239169cc06b5d7195be9b086595cd57fd7abd4834ebaf32974fdb05b867725cc8f8f91f35ef3ae61468cff23b97f3cf910a3c1b03f7a29b8 From 45e0653cdc655718818c75f35fa01b019a72a291 Mon Sep 17 00:00:00 2001 From: Merlin Mathesius Date: Wed, 28 Jul 2021 11:47:37 -0500 Subject: [PATCH 22/57] Loosen jinja2 version requirement to fix FTBFS in Rawhide Signed-off-by: Merlin Mathesius --- python-avocado.spec | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/python-avocado.spec b/python-avocado.spec index 0b34acd..7a39a78 100644 --- a/python-avocado.spec +++ b/python-avocado.spec @@ -35,7 +35,7 @@ Name: python-avocado Version: 82.0 -Release: 3%{?gitrel}%{?dist} +Release: 4%{?gitrel}%{?dist} Summary: Framework with tools and libraries for Automated Testing # Found licenses: # avocado/core/tapparser.py: MIT @@ -88,6 +88,8 @@ sed -e "s/'PyYAML>=4.2b2'/'PyYAML>=3.12'/" -i optional_plugins/varianter_yaml_to %endif # drop unnecessary install requirement sed -e "s/'markupsafe<2.0.0', //" -i optional_plugins/html/setup.py +# loosen jinja2 version requirement +sed -e "s/'jinja2<3.0.0'/'jinja2'/" -i optional_plugins/html/setup.py %build %py3_build @@ -469,6 +471,9 @@ Again Shell code (and possibly other similar shells). %changelog +* Wed Jul 28 2021 Merlin Mathesius - 82.0-4 +- Loosen jinja2 version requirement to fix FTBFS in Rawhide + * Fri Jul 23 2021 Fedora Release Engineering - 82.0-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild From d6e052f5df5933530162dffaa19a7153695f66f2 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 21 Jan 2022 10:30:48 +0000 Subject: [PATCH 23/57] - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- python-avocado.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/python-avocado.spec b/python-avocado.spec index 7a39a78..55357a5 100644 --- a/python-avocado.spec +++ b/python-avocado.spec @@ -35,7 +35,7 @@ Name: python-avocado Version: 82.0 -Release: 4%{?gitrel}%{?dist} +Release: 5%{?gitrel}%{?dist} Summary: Framework with tools and libraries for Automated Testing # Found licenses: # avocado/core/tapparser.py: MIT @@ -471,6 +471,9 @@ Again Shell code (and possibly other similar shells). %changelog +* Fri Jan 21 2022 Fedora Release Engineering - 82.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + * Wed Jul 28 2021 Merlin Mathesius - 82.0-4 - Loosen jinja2 version requirement to fix FTBFS in Rawhide From 0df2004e57308bd41864206aa380ae20de83ba6f Mon Sep 17 00:00:00 2001 From: Cleber Rosa Date: Fri, 18 Mar 2022 13:52:43 -0400 Subject: [PATCH 24/57] Sync with upstream release 95.0 Signed-off-by: Cleber Rosa --- .gitignore | 2 ++ python-avocado.spec | 53 ++++++++++++++++++++++++++++++--------------- sources | 3 ++- 3 files changed, 40 insertions(+), 18 deletions(-) diff --git a/.gitignore b/.gitignore index c546198..cea2ad1 100644 --- a/.gitignore +++ b/.gitignore @@ -36,3 +36,5 @@ /avocado-88.1.tar.gz /avocado-89.0.tar.gz /avocado-90.0.tar.gz +/avocado-95.0.tar.gz +/avocado-95.0-resultsdb_api.patch diff --git a/python-avocado.spec b/python-avocado.spec index 8e5def7..be3d8e5 100644 --- a/python-avocado.spec +++ b/python-avocado.spec @@ -9,10 +9,10 @@ %global gittar avocado-%{version}.tar.gz %else %if ! 0%{?commit:1} - %global commit 1aa47c413edb406734d95faffc2b347988249100 + %global commit 695ef39fe47e074b5349051e2866edeb3f017b94 %endif %if ! 0%{?commit_date:1} - %global commit_date 20210727 + %global commit_date 20220209 %endif %global shortcommit %(c=%{commit};echo ${c:0:9}) %global gitrel .%{commit_date}git%{shortcommit} @@ -24,17 +24,19 @@ # the functional tests are time and resource sensitive and can # cause race conditions and random build failures. They are # enabled by default. -%global with_tests 1 +# You can disable them with rpmbuild ... --without tests +%bcond_without tests -# resultsdb is not available for RHEL -%if ! 0%{?rhel} +# Only Fedora 36 and later have a suitable python3-resutlsdb_api +# package +%if 0%{?fedora} >= 36 %global with_resultsdb 1 %else %global with_resultsdb 0 %endif Name: python-avocado -Version: 90.0 +Version: 95.0 Release: 1%{?gitrel}%{?dist} Summary: Framework with tools and libraries for Automated Testing # Found licenses: @@ -48,6 +50,7 @@ Summary: Framework with tools and libraries for Automated Testing License: GPLv2+ and GPLv2 and MIT URL: https://avocado-framework.github.io/ Source0: https://github.com/avocado-framework/avocado/archive/%{gitref}/%{gittar} +Patch0: avocado-95.0-resultsdb_api.patch BuildArch: noarch BuildRequires: kmod @@ -63,8 +66,10 @@ BuildRequires: python3-resultsdb_api BuildRequires: python3-pycdlib %endif -%if 0%{?with_tests} +%if %{with tests} +%if ! 0%{?rhel} >= 9 BuildRequires: genisoimage +%endif BuildRequires: libcdio BuildRequires: psmisc %if ! 0%{?rhel} @@ -74,7 +79,7 @@ BuildRequires: glibc-all-langpacks BuildRequires: python3-netifaces BuildRequires: python3-yaml %endif -# with_tests +# with tests %description Avocado is a set of tools and libraries (what people call @@ -83,6 +88,7 @@ these days a framework) to perform automated testing. %prep %setup -q -n avocado-%{gitref} +%patch0 -p 1 %if 0%{?rhel} sed -e "s/'PyYAML>=4.2b2'/'PyYAML>=3.12'/" -i optional_plugins/varianter_yaml_to_mux/setup.py %endif @@ -121,13 +127,14 @@ for exe in \ avocado-runner \ avocado-runner-noop \ avocado-runner-dry-run \ - avocado-runner-exec \ avocado-runner-exec-test \ avocado-runner-python-unittest \ avocado-runner-avocado-instrumented \ avocado-runner-tap \ avocado-runner-requirement-asset \ avocado-runner-requirement-package \ + avocado-runner-sysinfo \ + avocado-external-runner \ avocado-software-manager do mv %{buildroot}%{_bindir}/$exe %{buildroot}%{_bindir}/$exe-%{python3_version} @@ -139,9 +146,6 @@ done rm -rf %{buildroot}%{python3_sitelib}/avocado/etc # ditto for libexec files rm -rf %{buildroot}%{python3_sitelib}/avocado/libexec -# adjust permissions for file containing shebang line needed for -# spawning tasks in podman containers -chmod -c +x %{buildroot}%{python3_sitelib}/avocado/core/nrunner.py pushd optional_plugins/html %py3_install popd @@ -193,7 +197,7 @@ cp -r examples/yaml_to_mux %{buildroot}%{_docdir}/avocado/yaml_to_mux find %{buildroot}%{_docdir}/avocado -type f -name '*.py' -exec chmod -c -x {} ';' -%if 0%{?with_tests} +%if %{with tests} %check # LANG: to make the results predictable, we pin the language # that is used during test execution. @@ -204,7 +208,7 @@ find %{buildroot}%{_docdir}/avocado -type f -name '*.py' -exec chmod -c -x {} '; PYTHONPATH=%{buildroot}%{python3_sitelib}:. \ LANG=en_US.UTF-8 \ AVOCADO_CHECK_LEVEL=0 \ - %{python3} selftests/check.py --disable-static-checks --disable-plugin-checks=robot + %{python3} selftests/check.py --skip static-checks --disable-plugin-checks robot %endif @@ -239,9 +243,6 @@ these days a framework) to perform automated testing. %{_bindir}/avocado-runner-dry-run-%{python3_version} %{_bindir}/avocado-runner-dry-run-3 %{_bindir}/avocado-runner-dry-run -%{_bindir}/avocado-runner-exec-%{python3_version} -%{_bindir}/avocado-runner-exec-3 -%{_bindir}/avocado-runner-exec %{_bindir}/avocado-runner-exec-test-%{python3_version} %{_bindir}/avocado-runner-exec-test-3 %{_bindir}/avocado-runner-exec-test @@ -260,9 +261,15 @@ these days a framework) to perform automated testing. %{_bindir}/avocado-runner-requirement-package-%{python3_version} %{_bindir}/avocado-runner-requirement-package-3 %{_bindir}/avocado-runner-requirement-package +%{_bindir}/avocado-runner-sysinfo-%{python3_version} +%{_bindir}/avocado-runner-sysinfo-3 +%{_bindir}/avocado-runner-sysinfo %{_bindir}/avocado-software-manager-%{python3_version} %{_bindir}/avocado-software-manager-3 %{_bindir}/avocado-software-manager +%{_bindir}/avocado-external-runner-%{python3_version} +%{_bindir}/avocado-external-runner-3 +%{_bindir}/avocado-external-runner %package -n python-avocado-common @@ -438,6 +445,18 @@ Again Shell code (and possibly other similar shells). %changelog +* Thu Mar 17 2022 Cleber Rosa - 95.0-1 +- Sync with upstream release 95.0. +- Added new binary for 'avocado-external-runner' +- Removed executable mode from avocado/core/nrunner.py +- Adjust selftest/check.py to use new --skip option +- Do not require genisoimage on EL9 +- Replace the %global with_tests macro with %bcond_without to allow + disable the tests directly in the command line. +- Removed avocado-runner-exec since we have avocado-runner-exec-test. +- Added avocado-runner-sysinfo in package +- Added upstream patch that pins resultsdb_api to working version. + * Tue Jul 27 2021 Cleber Rosa - 90.0-1 - Sync with upstream release 90.0. - Removed patch already included upstream diff --git a/sources b/sources index 03d7c96..c62d572 100644 --- a/sources +++ b/sources @@ -1 +1,2 @@ -SHA512 (avocado-90.0.tar.gz) = 3aef3e8d0eff03c6239169cc06b5d7195be9b086595cd57fd7abd4834ebaf32974fdb05b867725cc8f8f91f35ef3ae61468cff23b97f3cf910a3c1b03f7a29b8 +SHA512 (avocado-95.0-resultsdb_api.patch) = fd62130106eb67d71102e9c33935ae424c92ec6d8a27ab35e856f1449c51a4bc7d6ac768b67fdd95ec894ed57b60ca0aa6fea00ccbd378c93696636c14d7b001 +SHA512 (avocado-95.0.tar.gz) = 12d831c002f1e808c75b86008d08a78a98fb473b58d655876312343721548601604579d6ca2fc4a91fc33f91925de055697541458b72fc8f12a56170a35da7ef From 110dbb63931db99af1ce0da21ec97f60758b8f01 Mon Sep 17 00:00:00 2001 From: Cleber Rosa Date: Tue, 5 Apr 2022 17:05:14 -0400 Subject: [PATCH 25/57] Sync with upstream release 96.0 Signed-off-by: Cleber Rosa --- .gitignore | 1 + python-avocado.spec | 29 ++++++++++++++++------------- sources | 3 +-- 3 files changed, 18 insertions(+), 15 deletions(-) diff --git a/.gitignore b/.gitignore index cea2ad1..63579c2 100644 --- a/.gitignore +++ b/.gitignore @@ -38,3 +38,4 @@ /avocado-90.0.tar.gz /avocado-95.0.tar.gz /avocado-95.0-resultsdb_api.patch +/avocado-96.0.tar.gz diff --git a/python-avocado.spec b/python-avocado.spec index be3d8e5..7f89e75 100644 --- a/python-avocado.spec +++ b/python-avocado.spec @@ -9,10 +9,10 @@ %global gittar avocado-%{version}.tar.gz %else %if ! 0%{?commit:1} - %global commit 695ef39fe47e074b5349051e2866edeb3f017b94 + %global commit 6f3980f8f81d41d944cd826ae2a96ae52d972e19 %endif %if ! 0%{?commit_date:1} - %global commit_date 20220209 + %global commit_date 20220405 %endif %global shortcommit %(c=%{commit};echo ${c:0:9}) %global gitrel .%{commit_date}git%{shortcommit} @@ -36,7 +36,7 @@ %endif Name: python-avocado -Version: 95.0 +Version: 96.0 Release: 1%{?gitrel}%{?dist} Summary: Framework with tools and libraries for Automated Testing # Found licenses: @@ -50,7 +50,6 @@ Summary: Framework with tools and libraries for Automated Testing License: GPLv2+ and GPLv2 and MIT URL: https://avocado-framework.github.io/ Source0: https://github.com/avocado-framework/avocado/archive/%{gitref}/%{gittar} -Patch0: avocado-95.0-resultsdb_api.patch BuildArch: noarch BuildRequires: kmod @@ -88,7 +87,6 @@ these days a framework) to perform automated testing. %prep %setup -q -n avocado-%{gitref} -%patch0 -p 1 %if 0%{?rhel} sed -e "s/'PyYAML>=4.2b2'/'PyYAML>=3.12'/" -i optional_plugins/varianter_yaml_to_mux/setup.py %endif @@ -131,8 +129,8 @@ for exe in \ avocado-runner-python-unittest \ avocado-runner-avocado-instrumented \ avocado-runner-tap \ - avocado-runner-requirement-asset \ - avocado-runner-requirement-package \ + avocado-runner-asset \ + avocado-runner-package \ avocado-runner-sysinfo \ avocado-external-runner \ avocado-software-manager @@ -255,12 +253,12 @@ these days a framework) to perform automated testing. %{_bindir}/avocado-runner-tap-%{python3_version} %{_bindir}/avocado-runner-tap-3 %{_bindir}/avocado-runner-tap -%{_bindir}/avocado-runner-requirement-asset-%{python3_version} -%{_bindir}/avocado-runner-requirement-asset-3 -%{_bindir}/avocado-runner-requirement-asset -%{_bindir}/avocado-runner-requirement-package-%{python3_version} -%{_bindir}/avocado-runner-requirement-package-3 -%{_bindir}/avocado-runner-requirement-package +%{_bindir}/avocado-runner-asset-%{python3_version} +%{_bindir}/avocado-runner-asset-3 +%{_bindir}/avocado-runner-asset +%{_bindir}/avocado-runner-package-%{python3_version} +%{_bindir}/avocado-runner-package-3 +%{_bindir}/avocado-runner-package %{_bindir}/avocado-runner-sysinfo-%{python3_version} %{_bindir}/avocado-runner-sysinfo-3 %{_bindir}/avocado-runner-sysinfo @@ -445,6 +443,11 @@ Again Shell code (and possibly other similar shells). %changelog +* Tue Apr 5 2022 Cleber Rosa - 96.0-1 +- Sync with upstream release 96.0. +- Rename requirements to dependencies +- Dropped patch that pins resultsdb_api to working version + * Thu Mar 17 2022 Cleber Rosa - 95.0-1 - Sync with upstream release 95.0. - Added new binary for 'avocado-external-runner' diff --git a/sources b/sources index c62d572..8bd980d 100644 --- a/sources +++ b/sources @@ -1,2 +1 @@ -SHA512 (avocado-95.0-resultsdb_api.patch) = fd62130106eb67d71102e9c33935ae424c92ec6d8a27ab35e856f1449c51a4bc7d6ac768b67fdd95ec894ed57b60ca0aa6fea00ccbd378c93696636c14d7b001 -SHA512 (avocado-95.0.tar.gz) = 12d831c002f1e808c75b86008d08a78a98fb473b58d655876312343721548601604579d6ca2fc4a91fc33f91925de055697541458b72fc8f12a56170a35da7ef +SHA512 (avocado-96.0.tar.gz) = 66ccfa435381887e91db55d5929f7d237ae947587453bd0266330d3a847aa75b8c65a27871f10c79244b4a4d03c2fd6fd2c49e8d52620d7f9f03caa6373540a9 From 34e099cd8b670628fd004c1771bb9409d3e6a79f Mon Sep 17 00:00:00 2001 From: Cleber Rosa Date: Tue, 24 May 2022 16:51:56 -0400 Subject: [PATCH 26/57] Sync with upstream release 97.0 Signed-off-by: Cleber Rosa --- .gitignore | 1 + python-avocado.spec | 14 +++++++++----- sources | 2 +- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index 63579c2..0b863a0 100644 --- a/.gitignore +++ b/.gitignore @@ -39,3 +39,4 @@ /avocado-95.0.tar.gz /avocado-95.0-resultsdb_api.patch /avocado-96.0.tar.gz +/avocado-97.0.tar.gz diff --git a/python-avocado.spec b/python-avocado.spec index 7f89e75..312b7ab 100644 --- a/python-avocado.spec +++ b/python-avocado.spec @@ -9,10 +9,10 @@ %global gittar avocado-%{version}.tar.gz %else %if ! 0%{?commit:1} - %global commit 6f3980f8f81d41d944cd826ae2a96ae52d972e19 + %global commit edd8acc0d38a27d69b1820251f8bd52102415f52 %endif %if ! 0%{?commit_date:1} - %global commit_date 20220405 + %global commit_date 20220524 %endif %global shortcommit %(c=%{commit};echo ${c:0:9}) %global gitrel .%{commit_date}git%{shortcommit} @@ -36,7 +36,7 @@ %endif Name: python-avocado -Version: 96.0 +Version: 97.0 Release: 1%{?gitrel}%{?dist} Summary: Framework with tools and libraries for Automated Testing # Found licenses: @@ -66,6 +66,7 @@ BuildRequires: python3-pycdlib %endif %if %{with tests} +BuildRequires: python3-jsonschema %if ! 0%{?rhel} >= 9 BuildRequires: genisoimage %endif @@ -190,7 +191,6 @@ cp -r examples/plugins %{buildroot}%{_docdir}/avocado/plugins cp -r examples/tests %{buildroot}%{_docdir}/avocado/tests cp -r examples/varianter_cit %{buildroot}%{_docdir}/avocado/varianter_cit cp -r examples/varianter_pict %{buildroot}%{_docdir}/avocado/varianter_pict -cp -r examples/wrappers %{buildroot}%{_docdir}/avocado/wrappers cp -r examples/yaml_to_mux %{buildroot}%{_docdir}/avocado/yaml_to_mux find %{buildroot}%{_docdir}/avocado -type f -name '*.py' -exec chmod -c -x {} ';' @@ -419,7 +419,6 @@ examples of how to write tests on your own. %{_docdir}/avocado/tests %{_docdir}/avocado/varianter_cit %{_docdir}/avocado/varianter_pict -%{_docdir}/avocado/wrappers %{_docdir}/avocado/yaml_to_mux @@ -443,6 +442,11 @@ Again Shell code (and possibly other similar shells). %changelog +* Tue May 24 2022 Cleber Rosa - 97.0-1 +- Sync with upstream release 97.0 +- Require python3-jsonschema when running tests +- Removed wrapper examples + * Tue Apr 5 2022 Cleber Rosa - 96.0-1 - Sync with upstream release 96.0. - Rename requirements to dependencies diff --git a/sources b/sources index 8bd980d..1e510b6 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (avocado-96.0.tar.gz) = 66ccfa435381887e91db55d5929f7d237ae947587453bd0266330d3a847aa75b8c65a27871f10c79244b4a4d03c2fd6fd2c49e8d52620d7f9f03caa6373540a9 +SHA512 (avocado-97.0.tar.gz) = 8436558563ce6648179a3f4939eec957798c665744e5f5c2b8d96ae9213dac19307a8d6bb6eebb84a752e3f3daf440e0ed27b1c81df5d8d607370faaa024e052 From a2cb6ab1616eb9750c858822184f8e674468ca9b Mon Sep 17 00:00:00 2001 From: Python Maint Date: Tue, 21 Jun 2022 10:14:20 +0200 Subject: [PATCH 27/57] Rebuilt for Python 3.11 --- python-avocado.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/python-avocado.spec b/python-avocado.spec index 55357a5..7579f2f 100644 --- a/python-avocado.spec +++ b/python-avocado.spec @@ -35,7 +35,7 @@ Name: python-avocado Version: 82.0 -Release: 5%{?gitrel}%{?dist} +Release: 6%{?gitrel}%{?dist} Summary: Framework with tools and libraries for Automated Testing # Found licenses: # avocado/core/tapparser.py: MIT @@ -471,6 +471,9 @@ Again Shell code (and possibly other similar shells). %changelog +* Tue Jun 21 2022 Python Maint - 82.0-6 +- Rebuilt for Python 3.11 + * Fri Jan 21 2022 Fedora Release Engineering - 82.0-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild From 4adc731d212bd96eed43618aa109ecad4c042abc Mon Sep 17 00:00:00 2001 From: Cleber Rosa Date: Sat, 16 Jul 2022 12:41:28 -0400 Subject: [PATCH 28/57] Sync gdbtest.py with latest upstream Signed-off-by: Cleber Rosa --- tests/gdbtest.py | 122 ++++++++++++++--------------------------------- 1 file changed, 35 insertions(+), 87 deletions(-) diff --git a/tests/gdbtest.py b/tests/gdbtest.py index d814fa5..c0cdc55 100755 --- a/tests/gdbtest.py +++ b/tests/gdbtest.py @@ -1,14 +1,7 @@ -#!/usr/bin/env python - import os -from six.moves import xrange as range - from avocado import Test -from avocado import main -from avocado.utils import gdb -from avocado.utils import genio -from avocado.utils import process +from avocado.utils import gdb, genio, process class GdbTest(Test): @@ -32,17 +25,22 @@ class GdbTest(Test): "-auto-debug-it"] def setUp(self): - return99_source_path = os.path.join(self.datadir, 'return99.c') - segfault_source_path = os.path.join(self.datadir, 'segfault.c') - self.return99_binary_path = os.path.join(self.outputdir, 'return99') - process.system('gcc -O0 -g %s -o %s' % (return99_source_path, - self.return99_binary_path)) - self.segfault_binary_path = os.path.join(self.outputdir, 'segfault') - process.system('gcc -O0 -g %s -o %s' % (segfault_source_path, - self.segfault_binary_path)) + self.return99_binary_path = os.path.join(self.teststmpdir, 'return99') + if not os.path.exists(self.return99_binary_path): + return99_source_path = self.get_data('return99.c') + if return99_source_path is None: + self.cancel('Test is missing data file "return99.c"') + process.system(f'gcc -O0 -g {return99_source_path} -o {self.return99_binary_path}') + + self.segfault_binary_path = os.path.join(self.teststmpdir, 'segfault') + if not os.path.exists(self.segfault_binary_path): + segfault_source_path = self.get_data('segfault.c') + if segfault_source_path is None: + self.cancel('Test is missing data file "segfault.c"') + process.system(f'gcc -O0 -g {segfault_source_path} -o {self.segfault_binary_path}') @staticmethod - def is_process_alive(process): + def is_process_alive(process): # pylint: disable=W0621 """ Checks if a process is still alive @@ -73,14 +71,14 @@ class GdbTest(Test): g = gdb.GDB() self.log.info("Testing existing (valid) GDB commands using raw commands") for cmd in self.VALID_CMDS: - info_cmd = "-info-gdb-mi-command %s" % cmd[1:] + info_cmd = f"-info-gdb-mi-command {cmd[1:]}" r = g.cmd(info_cmd) self.assertEqual(r.result.result.command.exists, 'true') self.log.info("Testing non-existing (invalid) GDB commands using raw " "commands") for cmd in self.INVALID_CMDS: - info_cmd = "-info-gdb-mi-command %s" % cmd[1:] + info_cmd = f"-info-gdb-mi-command {cmd[1:]}" r = g.cmd(info_cmd) self.assertEqual(r.result.result.command.exists, 'false') @@ -105,7 +103,7 @@ class GdbTest(Test): self.log.info("Testing that GDB loads a file and sets a breakpoint") g = gdb.GDB() - file_cmd = "-file-exec-and-symbols %s" % self.return99_binary_path + file_cmd = f"-file-exec-and-symbols {self.return99_binary_path}" r = g.cmd(file_cmd) self.assertEqual(r.result.class_, 'done') @@ -145,7 +143,7 @@ class GdbTest(Test): self.log.info("Testing that a core dump will be generated") g = gdb.GDB() - file_cmd = "-file-exec-and-symbols %s" % self.segfault_binary_path + file_cmd = f"-file-exec-and-symbols {self.segfault_binary_path}" r = g.cmd(file_cmd) self.assertEqual(r.result.class_, 'done') @@ -156,12 +154,12 @@ class GdbTest(Test): other_messages = g.read_until_break() core_path = None for msg in other_messages: - parsed_msg = gdb.parse_mi(msg) + parsed_msg = gdb.parse_mi(msg.decode()) if (hasattr(parsed_msg, 'class_') and (parsed_msg.class_ == 'stopped') and (parsed_msg.result.signal_name == 'SIGSEGV')): - core_path = "%s.core" % self.segfault_binary_path - gcore_cmd = 'gcore %s' % core_path + core_path = f"{self.segfault_binary_path}.core" + gcore_cmd = f'gcore {core_path}' gcore_cmd = gdb.encode_mi_cli(gcore_cmd) r = g.cmd(gcore_cmd) self.assertEqual(r.result.class_, 'done') @@ -191,14 +189,14 @@ class GdbTest(Test): # Do 100 cycle of target (kind of connects) and disconnects for _ in range(0, 100): - cmd = '-target-select extended-remote :%s' % s.port + cmd = f'-target-select extended-remote :{s.port}' r = g.cmd(cmd) self.assertEqual(r.result.class_, 'connected') r = g.cmd('-target-disconnect') self.assertEqual(r.result.class_, 'done') # manual server shutdown - cmd = '-target-select extended-remote :%s' % s.port + cmd = f'-target-select extended-remote :{s.port}' r = g.cmd(cmd) self.assertEqual(r.result.class_, 'connected') r = g.cli_cmd('monitor exit') @@ -234,15 +232,15 @@ class GdbTest(Test): s = gdb.GDBServer() g = gdb.GDB() - cmd = '-file-exec-and-symbols %s' % self.return99_binary_path + cmd = f'-file-exec-and-symbols {self.return99_binary_path}' r = g.cmd(cmd) self.assertEqual(r.result.class_, 'done') - cmd = 'set remote exec-file %s' % self.return99_binary_path + cmd = f'set remote exec-file {self.return99_binary_path}' r = g.cmd(cmd) self.assertEqual(r.result.class_, 'done') - cmd = "-break-insert %s" % 'main' + cmd = f"-break-insert {'main'}" r = g.cmd(cmd) self.assertEqual(r.result.class_, 'done') @@ -250,7 +248,7 @@ class GdbTest(Test): other_messages = g.read_until_break() for msg in other_messages: - parsed_msg = gdb.parse_mi(msg) + parsed_msg = gdb.parse_mi(msg.decode()) if (hasattr(parsed_msg, 'class_') and parsed_msg.class_ == 'stopped' and parsed_msg.result.reason == 'breakpoint-hit'): @@ -278,7 +276,8 @@ class GdbTest(Test): c1 = gdb.GDB() c1.connect(s.port) c2 = gdb.GDB() - self.assertRaises(ValueError, c2.connect, s.port) + with self.assertRaises(gdb.UnexpectedResponseError): + c2.connect(s.port) s.exit() def test_server_exit(self): @@ -310,43 +309,6 @@ class GdbTest(Test): server_instances[i].exit() self.assertFalse(self.is_process_alive(server_instances[i].process)) - def test_interactive(self): - """ - Tests avocado's GDB plugin features - - If GDB command line options are given, `--gdb-run-bin=return99` for - this particular test, the test will stop at binary main() function. - """ - self.log.info('Testing GDB interactivity') - process.run(self.return99_binary_path, ignore_status=True) - - def test_interactive_args(self): - """ - Tests avocado's GDB plugin features with an executable and args - - If GDB command line options are given, `--gdb-run-bin=return99` for - this particular test, the test will stop at binary main() function. - - This test uses `process.run()` without an `ignore_status` parameter - """ - self.log.info('Testing GDB interactivity with arguments') - result = process.run("%s 0" % self.return99_binary_path) - self.assertEqual(result.exit_status, 0) - - def test_exit_status(self): - """ - Tests avocado's GDB plugin features - - If GDB command line options are given, `--gdb-run-bin=return99` for - this particular test, the test will stop at binary main() function. - """ - self.log.info('Testing process exit statuses') - for arg, exp in [(-1, 255), (8, 8)]: - self.log.info('Expecting exit status "%s"', exp) - cmd = "%s %s" % (self.return99_binary_path, arg) - result = process.run(cmd, ignore_status=True) - self.assertEqual(result.exit_status, exp) - def test_server_stderr(self): self.log.info('Testing server stderr collection') s = gdb.GDBServer() @@ -354,7 +316,7 @@ class GdbTest(Test): self.assertTrue(os.path.exists(s.stderr_path)) stderr_lines = genio.read_all_lines(s.stderr_path) - listening_line = "Listening on port %s" % s.port + listening_line = f"Listening on port {s.port}" self.assertIn(listening_line, stderr_lines) def test_server_stdout(self): @@ -372,28 +334,14 @@ class GdbTest(Test): stdout_lines = genio.read_all_lines(s.stdout_path) self.assertIn("return 99", stdout_lines) - def test_interactive_stdout(self): - """ - Tests avocado's GDB plugin features - - If GDB command line options are given, `--gdb-run-bin=return99` for - this particular test, the test will stop at binary main() function. - """ - self.log.info('Testing GDB interactivity') - result = process.run(self.return99_binary_path, ignore_status=True) - self.assertIn("return 99\n", result.stdout) - - def test_remote(self): + @staticmethod + def test_remote(): """ Tests GDBRemote interaction with a GDBServer """ s = gdb.GDBServer() r = gdb.GDBRemote('127.0.0.1', s.port) r.connect() - r.cmd("qSupported") - r.cmd("qfThreadInfo") + r.cmd(b"qSupported") + r.cmd(b"qfThreadInfo") s.exit() - - -if __name__ == '__main__': - main() From f981628259da6de8a0b8b8a778c75e42332d22d8 Mon Sep 17 00:00:00 2001 From: Cleber Rosa Date: Sat, 16 Jul 2022 12:41:29 -0400 Subject: [PATCH 29/57] Sync with upstream release 98.0 Signed-off-by: Cleber Rosa --- .gitignore | 1 + python-avocado.spec | 16 ++++++++++++---- sources | 2 +- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index 0b863a0..da5fe2e 100644 --- a/.gitignore +++ b/.gitignore @@ -40,3 +40,4 @@ /avocado-95.0-resultsdb_api.patch /avocado-96.0.tar.gz /avocado-97.0.tar.gz +/avocado-98.0.tar.gz diff --git a/python-avocado.spec b/python-avocado.spec index 312b7ab..d8f59c3 100644 --- a/python-avocado.spec +++ b/python-avocado.spec @@ -9,10 +9,10 @@ %global gittar avocado-%{version}.tar.gz %else %if ! 0%{?commit:1} - %global commit edd8acc0d38a27d69b1820251f8bd52102415f52 + %global commit 027faa19aba070f7697690cf0b946f6e94ee6bb2 %endif %if ! 0%{?commit_date:1} - %global commit_date 20220524 + %global commit_date 20221714 %endif %global shortcommit %(c=%{commit};echo ${c:0:9}) %global gitrel .%{commit_date}git%{shortcommit} @@ -36,7 +36,7 @@ %endif Name: python-avocado -Version: 97.0 +Version: 98.0 Release: 1%{?gitrel}%{?dist} Summary: Framework with tools and libraries for Automated Testing # Found licenses: @@ -74,6 +74,8 @@ BuildRequires: libcdio BuildRequires: psmisc %if ! 0%{?rhel} BuildRequires: perl-Test-Harness +BuildRequires: python3-elementpath +BuildRequires: python3-xmlschema %endif BuildRequires: glibc-all-langpacks BuildRequires: python3-netifaces @@ -89,7 +91,7 @@ these days a framework) to perform automated testing. %prep %setup -q -n avocado-%{gitref} %if 0%{?rhel} -sed -e "s/'PyYAML>=4.2b2'/'PyYAML>=3.12'/" -i optional_plugins/varianter_yaml_to_mux/setup.py +sed -e 's/"PyYAML>=4.2b2"/"PyYAML>=3.12"/' -i optional_plugins/varianter_yaml_to_mux/setup.py %endif %build @@ -442,6 +444,12 @@ Again Shell code (and possibly other similar shells). %changelog +* Sat Jul 16 2022 Cleber Rosa - 98.0-1 +- Sync with upstream release 98.0 +- Add build requirements for python3-elementpath and + python3-xmlschema, used on some tests +- Changed regex to match new string quote style + * Tue May 24 2022 Cleber Rosa - 97.0-1 - Sync with upstream release 97.0 - Require python3-jsonschema when running tests diff --git a/sources b/sources index 1e510b6..c029b01 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (avocado-97.0.tar.gz) = 8436558563ce6648179a3f4939eec957798c665744e5f5c2b8d96ae9213dac19307a8d6bb6eebb84a752e3f3daf440e0ed27b1c81df5d8d607370faaa024e052 +SHA512 (avocado-98.0.tar.gz) = 6e1adbc5a797a7775204418411a7d80afdce1626894ebe054072b22426f41ba5f6544720f83169158bdb3187bd2432387622f8a654d750d49784a183148ed2f0 From 85196ff998ddc2355b6a7726c4a8b1181950d638 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 22 Jul 2022 16:32:26 +0000 Subject: [PATCH 30/57] Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- python-avocado.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/python-avocado.spec b/python-avocado.spec index 7579f2f..980b609 100644 --- a/python-avocado.spec +++ b/python-avocado.spec @@ -35,7 +35,7 @@ Name: python-avocado Version: 82.0 -Release: 6%{?gitrel}%{?dist} +Release: 7%{?gitrel}%{?dist} Summary: Framework with tools and libraries for Automated Testing # Found licenses: # avocado/core/tapparser.py: MIT @@ -471,6 +471,9 @@ Again Shell code (and possibly other similar shells). %changelog +* Fri Jul 22 2022 Fedora Release Engineering - 82.0-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + * Tue Jun 21 2022 Python Maint - 82.0-6 - Rebuilt for Python 3.11 From 04eafa9d9e9aa06ce4ffff6eeeb0fb9dca46965d Mon Sep 17 00:00:00 2001 From: Cleber Rosa Date: Wed, 10 Aug 2022 09:00:25 -0400 Subject: [PATCH 31/57] Sync gdbtest.py with latest upstream Signed-off-by: Cleber Rosa --- tests/gdbtest.py | 122 ++++++++++++++--------------------------------- tests/tests.yml | 10 ++-- 2 files changed, 38 insertions(+), 94 deletions(-) diff --git a/tests/gdbtest.py b/tests/gdbtest.py index d814fa5..c0cdc55 100755 --- a/tests/gdbtest.py +++ b/tests/gdbtest.py @@ -1,14 +1,7 @@ -#!/usr/bin/env python - import os -from six.moves import xrange as range - from avocado import Test -from avocado import main -from avocado.utils import gdb -from avocado.utils import genio -from avocado.utils import process +from avocado.utils import gdb, genio, process class GdbTest(Test): @@ -32,17 +25,22 @@ class GdbTest(Test): "-auto-debug-it"] def setUp(self): - return99_source_path = os.path.join(self.datadir, 'return99.c') - segfault_source_path = os.path.join(self.datadir, 'segfault.c') - self.return99_binary_path = os.path.join(self.outputdir, 'return99') - process.system('gcc -O0 -g %s -o %s' % (return99_source_path, - self.return99_binary_path)) - self.segfault_binary_path = os.path.join(self.outputdir, 'segfault') - process.system('gcc -O0 -g %s -o %s' % (segfault_source_path, - self.segfault_binary_path)) + self.return99_binary_path = os.path.join(self.teststmpdir, 'return99') + if not os.path.exists(self.return99_binary_path): + return99_source_path = self.get_data('return99.c') + if return99_source_path is None: + self.cancel('Test is missing data file "return99.c"') + process.system(f'gcc -O0 -g {return99_source_path} -o {self.return99_binary_path}') + + self.segfault_binary_path = os.path.join(self.teststmpdir, 'segfault') + if not os.path.exists(self.segfault_binary_path): + segfault_source_path = self.get_data('segfault.c') + if segfault_source_path is None: + self.cancel('Test is missing data file "segfault.c"') + process.system(f'gcc -O0 -g {segfault_source_path} -o {self.segfault_binary_path}') @staticmethod - def is_process_alive(process): + def is_process_alive(process): # pylint: disable=W0621 """ Checks if a process is still alive @@ -73,14 +71,14 @@ class GdbTest(Test): g = gdb.GDB() self.log.info("Testing existing (valid) GDB commands using raw commands") for cmd in self.VALID_CMDS: - info_cmd = "-info-gdb-mi-command %s" % cmd[1:] + info_cmd = f"-info-gdb-mi-command {cmd[1:]}" r = g.cmd(info_cmd) self.assertEqual(r.result.result.command.exists, 'true') self.log.info("Testing non-existing (invalid) GDB commands using raw " "commands") for cmd in self.INVALID_CMDS: - info_cmd = "-info-gdb-mi-command %s" % cmd[1:] + info_cmd = f"-info-gdb-mi-command {cmd[1:]}" r = g.cmd(info_cmd) self.assertEqual(r.result.result.command.exists, 'false') @@ -105,7 +103,7 @@ class GdbTest(Test): self.log.info("Testing that GDB loads a file and sets a breakpoint") g = gdb.GDB() - file_cmd = "-file-exec-and-symbols %s" % self.return99_binary_path + file_cmd = f"-file-exec-and-symbols {self.return99_binary_path}" r = g.cmd(file_cmd) self.assertEqual(r.result.class_, 'done') @@ -145,7 +143,7 @@ class GdbTest(Test): self.log.info("Testing that a core dump will be generated") g = gdb.GDB() - file_cmd = "-file-exec-and-symbols %s" % self.segfault_binary_path + file_cmd = f"-file-exec-and-symbols {self.segfault_binary_path}" r = g.cmd(file_cmd) self.assertEqual(r.result.class_, 'done') @@ -156,12 +154,12 @@ class GdbTest(Test): other_messages = g.read_until_break() core_path = None for msg in other_messages: - parsed_msg = gdb.parse_mi(msg) + parsed_msg = gdb.parse_mi(msg.decode()) if (hasattr(parsed_msg, 'class_') and (parsed_msg.class_ == 'stopped') and (parsed_msg.result.signal_name == 'SIGSEGV')): - core_path = "%s.core" % self.segfault_binary_path - gcore_cmd = 'gcore %s' % core_path + core_path = f"{self.segfault_binary_path}.core" + gcore_cmd = f'gcore {core_path}' gcore_cmd = gdb.encode_mi_cli(gcore_cmd) r = g.cmd(gcore_cmd) self.assertEqual(r.result.class_, 'done') @@ -191,14 +189,14 @@ class GdbTest(Test): # Do 100 cycle of target (kind of connects) and disconnects for _ in range(0, 100): - cmd = '-target-select extended-remote :%s' % s.port + cmd = f'-target-select extended-remote :{s.port}' r = g.cmd(cmd) self.assertEqual(r.result.class_, 'connected') r = g.cmd('-target-disconnect') self.assertEqual(r.result.class_, 'done') # manual server shutdown - cmd = '-target-select extended-remote :%s' % s.port + cmd = f'-target-select extended-remote :{s.port}' r = g.cmd(cmd) self.assertEqual(r.result.class_, 'connected') r = g.cli_cmd('monitor exit') @@ -234,15 +232,15 @@ class GdbTest(Test): s = gdb.GDBServer() g = gdb.GDB() - cmd = '-file-exec-and-symbols %s' % self.return99_binary_path + cmd = f'-file-exec-and-symbols {self.return99_binary_path}' r = g.cmd(cmd) self.assertEqual(r.result.class_, 'done') - cmd = 'set remote exec-file %s' % self.return99_binary_path + cmd = f'set remote exec-file {self.return99_binary_path}' r = g.cmd(cmd) self.assertEqual(r.result.class_, 'done') - cmd = "-break-insert %s" % 'main' + cmd = f"-break-insert {'main'}" r = g.cmd(cmd) self.assertEqual(r.result.class_, 'done') @@ -250,7 +248,7 @@ class GdbTest(Test): other_messages = g.read_until_break() for msg in other_messages: - parsed_msg = gdb.parse_mi(msg) + parsed_msg = gdb.parse_mi(msg.decode()) if (hasattr(parsed_msg, 'class_') and parsed_msg.class_ == 'stopped' and parsed_msg.result.reason == 'breakpoint-hit'): @@ -278,7 +276,8 @@ class GdbTest(Test): c1 = gdb.GDB() c1.connect(s.port) c2 = gdb.GDB() - self.assertRaises(ValueError, c2.connect, s.port) + with self.assertRaises(gdb.UnexpectedResponseError): + c2.connect(s.port) s.exit() def test_server_exit(self): @@ -310,43 +309,6 @@ class GdbTest(Test): server_instances[i].exit() self.assertFalse(self.is_process_alive(server_instances[i].process)) - def test_interactive(self): - """ - Tests avocado's GDB plugin features - - If GDB command line options are given, `--gdb-run-bin=return99` for - this particular test, the test will stop at binary main() function. - """ - self.log.info('Testing GDB interactivity') - process.run(self.return99_binary_path, ignore_status=True) - - def test_interactive_args(self): - """ - Tests avocado's GDB plugin features with an executable and args - - If GDB command line options are given, `--gdb-run-bin=return99` for - this particular test, the test will stop at binary main() function. - - This test uses `process.run()` without an `ignore_status` parameter - """ - self.log.info('Testing GDB interactivity with arguments') - result = process.run("%s 0" % self.return99_binary_path) - self.assertEqual(result.exit_status, 0) - - def test_exit_status(self): - """ - Tests avocado's GDB plugin features - - If GDB command line options are given, `--gdb-run-bin=return99` for - this particular test, the test will stop at binary main() function. - """ - self.log.info('Testing process exit statuses') - for arg, exp in [(-1, 255), (8, 8)]: - self.log.info('Expecting exit status "%s"', exp) - cmd = "%s %s" % (self.return99_binary_path, arg) - result = process.run(cmd, ignore_status=True) - self.assertEqual(result.exit_status, exp) - def test_server_stderr(self): self.log.info('Testing server stderr collection') s = gdb.GDBServer() @@ -354,7 +316,7 @@ class GdbTest(Test): self.assertTrue(os.path.exists(s.stderr_path)) stderr_lines = genio.read_all_lines(s.stderr_path) - listening_line = "Listening on port %s" % s.port + listening_line = f"Listening on port {s.port}" self.assertIn(listening_line, stderr_lines) def test_server_stdout(self): @@ -372,28 +334,14 @@ class GdbTest(Test): stdout_lines = genio.read_all_lines(s.stdout_path) self.assertIn("return 99", stdout_lines) - def test_interactive_stdout(self): - """ - Tests avocado's GDB plugin features - - If GDB command line options are given, `--gdb-run-bin=return99` for - this particular test, the test will stop at binary main() function. - """ - self.log.info('Testing GDB interactivity') - result = process.run(self.return99_binary_path, ignore_status=True) - self.assertIn("return 99\n", result.stdout) - - def test_remote(self): + @staticmethod + def test_remote(): """ Tests GDBRemote interaction with a GDBServer """ s = gdb.GDBServer() r = gdb.GDBRemote('127.0.0.1', s.port) r.connect() - r.cmd("qSupported") - r.cmd("qfThreadInfo") + r.cmd(b"qSupported") + r.cmd(b"qfThreadInfo") s.exit() - - -if __name__ == '__main__': - main() diff --git a/tests/tests.yml b/tests/tests.yml index be4a031..7ff61ce 100644 --- a/tests/tests.yml +++ b/tests/tests.yml @@ -3,8 +3,8 @@ - role: standard-test-avocado tests: - gdbtest.py:GdbTest.test_start_exit - - gdbtest.py:GdbTest.test_existing_commands - gdbtest.py:GdbTest.test_existing_commands_raw + - gdbtest.py:GdbTest.test_existing_commands - gdbtest.py:GdbTest.test_load_set_breakpoint_run_exit_raw - gdbtest.py:GdbTest.test_load_set_breakpoint_run_exit - gdbtest.py:GdbTest.test_generate_core @@ -15,13 +15,9 @@ - gdbtest.py:GdbTest.test_stream_messages - gdbtest.py:GdbTest.test_connect_multiple_clients - gdbtest.py:GdbTest.test_server_exit - - gdbtest.py:GdbTest.test_server_stdout - - gdbtest.py:GdbTest.test_server_stderr - gdbtest.py:GdbTest.test_multiple_servers - - gdbtest.py:GdbTest.test_interactive - - gdbtest.py:GdbTest.test_interactive_args - - gdbtest.py:GdbTest.test_exit_status - - gdbtest.py:GdbTest.test_interactive_stdout + - gdbtest.py:GdbTest.test_server_stderr + - gdbtest.py:GdbTest.test_server_stdout - gdbtest.py:GdbTest.test_remote required_packages: - gcc From af6d992792404cebe869df80f51df85c18836725 Mon Sep 17 00:00:00 2001 From: Cleber Rosa Date: Wed, 10 Aug 2022 09:00:25 -0400 Subject: [PATCH 32/57] Update to version 92.0 The current packaged version from upstream matches the Long Term Stability (LTS) release 82.0, which is about to be EOLed upstream. This updates the pacakge to track the latest and current LTS release. Signed-off-by: Cleber Rosa --- .gitignore | 1 + python-avocado.spec | 83 +++++++++++++++++---------------------------- sources | 2 +- 3 files changed, 34 insertions(+), 52 deletions(-) diff --git a/.gitignore b/.gitignore index bf17c05..e0e0a9a 100644 --- a/.gitignore +++ b/.gitignore @@ -28,3 +28,4 @@ /avocado-79.0.tar.gz /avocado-80.0.tar.gz /avocado-82.0.tar.gz +/avocado-92.0.tar.gz diff --git a/python-avocado.spec b/python-avocado.spec index 980b609..3a493d7 100644 --- a/python-avocado.spec +++ b/python-avocado.spec @@ -9,10 +9,10 @@ %global gittar avocado-%{version}.tar.gz %else %if ! 0%{?commit:1} - %global commit e97540793998c4f24a16000465dd7fdd213bf2b9 + %global commit 08ac79fa4ecaee60d7d5211d9634568b5545bdcd %endif %if ! 0%{?commit_date:1} - %global commit_date 20200911 + %global commit_date 20211019 %endif %global shortcommit %(c=%{commit};echo ${c:0:9}) %global gitrel .%{commit_date}git%{shortcommit} @@ -34,8 +34,8 @@ %endif Name: python-avocado -Version: 82.0 -Release: 7%{?gitrel}%{?dist} +Version: 92.0 +Release: 1%{?gitrel}%{?dist} Summary: Framework with tools and libraries for Automated Testing # Found licenses: # avocado/core/tapparser.py: MIT @@ -104,9 +104,6 @@ popd pushd optional_plugins/varianter_yaml_to_mux %py3_build popd -pushd optional_plugins/loader_yaml - %py3_build -popd pushd optional_plugins/golang %py3_build popd @@ -119,9 +116,6 @@ popd pushd optional_plugins/result_upload %py3_build popd -pushd optional_plugins/glib - %py3_build -popd rst2man man/avocado.rst man/avocado.1 %install @@ -130,11 +124,14 @@ for exe in \ avocado \ avocado-runner \ avocado-runner-noop \ - avocado-runner-exec \ + avocado-runner-dry-run \ avocado-runner-exec-test \ avocado-runner-python-unittest \ avocado-runner-avocado-instrumented \ avocado-runner-tap \ + avocado-runner-requirement-asset \ + avocado-runner-requirement-package \ + avocado-runner-sysinfo \ avocado-software-manager do mv %{buildroot}%{_bindir}/$exe %{buildroot}%{_bindir}/$exe-%{python3_version} @@ -160,9 +157,6 @@ popd pushd optional_plugins/varianter_yaml_to_mux %py3_install popd -pushd optional_plugins/loader_yaml - %py3_install -popd pushd optional_plugins/golang %py3_install popd @@ -175,9 +169,6 @@ popd pushd optional_plugins/result_upload %py3_install popd -pushd optional_plugins/glib - %py3_install -popd # cleanup plugin test cruft rm -rf %{buildroot}%{python3_sitelib}/tests mkdir -p %{buildroot}%{_sysconfdir}/avocado @@ -203,7 +194,6 @@ cp -r examples/varianter_cit %{buildroot}%{_docdir}/avocado/varianter_cit cp -r examples/varianter_pict %{buildroot}%{_docdir}/avocado/varianter_pict cp -r examples/wrappers %{buildroot}%{_docdir}/avocado/wrappers cp -r examples/yaml_to_mux %{buildroot}%{_docdir}/avocado/yaml_to_mux -cp -r examples/yaml_to_mux_loader %{buildroot}%{_docdir}/avocado/yaml_to_mux_loader find %{buildroot}%{_docdir}/avocado -type f -name '*.py' -exec chmod -c -x {} ';' @@ -218,7 +208,9 @@ find %{buildroot}%{_docdir}/avocado -type f -name '*.py' -exec chmod -c -x {} '; PYTHONPATH=%{buildroot}%{python3_sitelib}:. \ LANG=en_US.UTF-8 \ AVOCADO_CHECK_LEVEL=0 \ - %{python3} selftests/run + %{python3} selftests/check.py --job-api --nrunner-interface \ + --unit --jobs --functional --optional-plugins \ + --disable-plugin-checks robot %endif @@ -250,9 +242,9 @@ these days a framework) to perform automated testing. %{_bindir}/avocado-runner-noop-%{python3_version} %{_bindir}/avocado-runner-noop-3 %{_bindir}/avocado-runner-noop -%{_bindir}/avocado-runner-exec-%{python3_version} -%{_bindir}/avocado-runner-exec-3 -%{_bindir}/avocado-runner-exec +%{_bindir}/avocado-runner-dry-run-%{python3_version} +%{_bindir}/avocado-runner-dry-run-3 +%{_bindir}/avocado-runner-dry-run %{_bindir}/avocado-runner-exec-test-%{python3_version} %{_bindir}/avocado-runner-exec-test-3 %{_bindir}/avocado-runner-exec-test @@ -265,6 +257,15 @@ these days a framework) to perform automated testing. %{_bindir}/avocado-runner-tap-%{python3_version} %{_bindir}/avocado-runner-tap-3 %{_bindir}/avocado-runner-tap +%{_bindir}/avocado-runner-requirement-asset-%{python3_version} +%{_bindir}/avocado-runner-requirement-asset-3 +%{_bindir}/avocado-runner-requirement-asset +%{_bindir}/avocado-runner-requirement-package-%{python3_version} +%{_bindir}/avocado-runner-requirement-package-3 +%{_bindir}/avocado-runner-requirement-package +%{_bindir}/avocado-runner-sysinfo-%{python3_version} +%{_bindir}/avocado-runner-sysinfo-3 +%{_bindir}/avocado-runner-sysinfo %{_bindir}/avocado-software-manager-%{python3_version} %{_bindir}/avocado-software-manager-3 %{_bindir}/avocado-software-manager @@ -341,20 +342,6 @@ defined in a yaml file(s). %{python3_sitelib}/avocado_framework_plugin_varianter_yaml_to_mux-%{version}-py%{python3_version}.egg-info -%package -n python3-avocado-plugins-loader-yaml -Summary: Avocado plugin that loads tests from YAML files -License: GPLv2+ -Requires: python3-avocado-plugins-varianter-yaml-to-mux == %{version}-%{release} - -%description -n python3-avocado-plugins-loader-yaml -Can be used to produce a test suite from definitions in a YAML file, -similar to the one used in the yaml_to_mux varianter plugin. - -%files -n python3-avocado-plugins-loader-yaml -%{python3_sitelib}/avocado_loader_yaml/ -%{python3_sitelib}/avocado_framework_plugin_loader_yaml-%{version}-py%{python3_version}.egg-info - - %package -n python3-avocado-plugins-golang Summary: Avocado plugin for execution of golang tests License: GPLv2+ @@ -368,6 +355,7 @@ also run them. %files -n python3-avocado-plugins-golang %{python3_sitelib}/avocado_golang/ %{python3_sitelib}/avocado_framework_plugin_golang-%{version}-py%{python3_version}.egg-info +%{_bindir}/avocado-runner-golang %package -n python3-avocado-plugins-varianter-pict @@ -413,20 +401,6 @@ a dedicated sever. %{python3_sitelib}/avocado_framework_plugin_result_upload-%{version}-py%{python3_version}.egg-info -%package -n python3-avocado-plugins-glib -Summary: Avocado plugin for execution of GLib Test Framework tests -License: GPLv2+ -Requires: python3-avocado == %{version}-%{release} - -%description -n python3-avocado-plugins-glib -This optional plugin is intended to list and run tests written in the -GLib Test Framework. - -%files -n python3-avocado-plugins-glib -%{python3_sitelib}/avocado_glib/ -%{python3_sitelib}/avocado_framework_plugin_glib-%{version}-py%{python3_version}.egg-info - - %package -n python-avocado-examples Summary: Avocado Test Framework Example Tests License: GPLv2+ @@ -448,7 +422,6 @@ examples of how to write tests on your own. %{_docdir}/avocado/varianter_pict %{_docdir}/avocado/wrappers %{_docdir}/avocado/yaml_to_mux -%{_docdir}/avocado/yaml_to_mux_loader %package -n python-avocado-bash @@ -471,6 +444,14 @@ Again Shell code (and possibly other similar shells). %changelog +* Tue Aug 9 2022 Cleber Rosa - 92.0-1 +- Use selftests/check.py job instead of more limited selftests/run +- Included avocado-runner-sysinfo, avocado-runner-requirement-package, + avocado-runner-requirement-asset and avocado-runner-dry-run and + avocado-runner-golang executables +- Removed avocado-runner-exec executable +- Removed loader_yaml and glib plugin packages + * Fri Jul 22 2022 Fedora Release Engineering - 82.0-7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild diff --git a/sources b/sources index 4721c3f..4e0c9f3 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (avocado-82.0.tar.gz) = 099ab131b2b941602550e71507e4ca517d5d2cd5152b255edace0473c9de93aac8163a61689414b5b58f9211f58981c3c30c1c3ca8a191283f609722ce07f173 +SHA512 (avocado-92.0.tar.gz) = 87d424098b26d12cbe14ffc509616c2114c7b549801582593568f94ca181373f0398290cb9569645c40d514f1ae29f77bfad94f6efb2025b1f9b8c5f2a5b7822 From 92e1215793321a5361da5cdd12f6a6eee06c5c8d Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 20 Jan 2023 11:24:35 +0000 Subject: [PATCH 33/57] Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- python-avocado.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/python-avocado.spec b/python-avocado.spec index 3a493d7..c7832c6 100644 --- a/python-avocado.spec +++ b/python-avocado.spec @@ -35,7 +35,7 @@ Name: python-avocado Version: 92.0 -Release: 1%{?gitrel}%{?dist} +Release: 2%{?gitrel}%{?dist} Summary: Framework with tools and libraries for Automated Testing # Found licenses: # avocado/core/tapparser.py: MIT @@ -444,6 +444,9 @@ Again Shell code (and possibly other similar shells). %changelog +* Fri Jan 20 2023 Fedora Release Engineering - 92.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + * Tue Aug 9 2022 Cleber Rosa - 92.0-1 - Use selftests/check.py job instead of more limited selftests/run - Included avocado-runner-sysinfo, avocado-runner-requirement-package, From 1a301b62685523f8e23eaf142fd6656d4cc81ebc Mon Sep 17 00:00:00 2001 From: Python Maint Date: Wed, 14 Jun 2023 20:21:36 +0200 Subject: [PATCH 34/57] Rebuilt for Python 3.12 --- python-avocado.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/python-avocado.spec b/python-avocado.spec index c7832c6..243e291 100644 --- a/python-avocado.spec +++ b/python-avocado.spec @@ -35,7 +35,7 @@ Name: python-avocado Version: 92.0 -Release: 2%{?gitrel}%{?dist} +Release: 3%{?gitrel}%{?dist} Summary: Framework with tools and libraries for Automated Testing # Found licenses: # avocado/core/tapparser.py: MIT @@ -444,6 +444,9 @@ Again Shell code (and possibly other similar shells). %changelog +* Wed Jun 14 2023 Python Maint - 92.0-3 +- Rebuilt for Python 3.12 + * Fri Jan 20 2023 Fedora Release Engineering - 92.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild From a4811c461cd607bcafd96c707b9205a26f5fce70 Mon Sep 17 00:00:00 2001 From: Cleber Rosa Date: Mon, 17 Jul 2023 13:44:25 -0400 Subject: [PATCH 35/57] Update to version 92.1 This also enables the build/usage under Python 3.12, making it suitable for Fedora 39. Reference: https://bugzilla.redhat.com/show_bug.cgi?id=2220126 Reference: https://bugzilla.redhat.com/show_bug.cgi?id=2155457 Signed-off-by: Cleber Rosa --- .gitignore | 2 ++ python-avocado.spec | 10 ++++++++-- sources | 3 ++- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index e0e0a9a..b5a1b5d 100644 --- a/.gitignore +++ b/.gitignore @@ -29,3 +29,5 @@ /avocado-80.0.tar.gz /avocado-82.0.tar.gz /avocado-92.0.tar.gz +/avocado-92.1.tar.gz +/avocado-92.1-python312.patch diff --git a/python-avocado.spec b/python-avocado.spec index 243e291..32a25f1 100644 --- a/python-avocado.spec +++ b/python-avocado.spec @@ -34,8 +34,8 @@ %endif Name: python-avocado -Version: 92.0 -Release: 3%{?gitrel}%{?dist} +Version: 92.1 +Release: 1%{?gitrel}%{?dist} Summary: Framework with tools and libraries for Automated Testing # Found licenses: # avocado/core/tapparser.py: MIT @@ -49,6 +49,7 @@ License: GPLv2+ and GPLv2 and MIT URL: https://avocado-framework.github.io/ Source0: https://github.com/avocado-framework/avocado/archive/%{gitref}/%{gittar} BuildArch: noarch +Patch0: avocado-92.1-python312.patch BuildRequires: kmod BuildRequires: procps-ng @@ -83,6 +84,7 @@ these days a framework) to perform automated testing. %prep %setup -q -n avocado-%{gitref} +%patch 0 -p 1 %if 0%{?rhel} sed -e "s/'PyYAML>=4.2b2'/'PyYAML>=3.12'/" -i optional_plugins/varianter_yaml_to_mux/setup.py %endif @@ -444,6 +446,10 @@ Again Shell code (and possibly other similar shells). %changelog +* Mon Jul 17 2023 Cleber Rosa - 92.1-1 +- Updated to 92.1 +- Support building and running under Python 3.12 for F39 + * Wed Jun 14 2023 Python Maint - 92.0-3 - Rebuilt for Python 3.12 diff --git a/sources b/sources index 4e0c9f3..aae30a3 100644 --- a/sources +++ b/sources @@ -1 +1,2 @@ -SHA512 (avocado-92.0.tar.gz) = 87d424098b26d12cbe14ffc509616c2114c7b549801582593568f94ca181373f0398290cb9569645c40d514f1ae29f77bfad94f6efb2025b1f9b8c5f2a5b7822 +SHA512 (avocado-92.1.tar.gz) = b775ebd014f4c91aae2b13e1aa350940ce7e277eb63ebf7c325f6dd020c10eb21390942080468804ceadd923f52970cb2f2ca214c7855df435d442e99a499ceb +SHA512 (avocado-92.1-python312.patch) = fc94e23c84653b317ba3d9a6a52d99d2e136c2fa50621b5ce36b2b10bbcb8cceac36d12dd715820ebe5ae266768bf3384fcb15b6f4614d4a4dd60415c1821901 From 9781dbb34b2bd9daa686323aaec1e108c55a2d1b Mon Sep 17 00:00:00 2001 From: Cleber Rosa Date: Mon, 17 Jul 2023 19:11:20 -0400 Subject: [PATCH 36/57] Sync with upstream release 102.0 Signed-off-by: Cleber Rosa --- .gitignore | 1 + python-avocado.spec | 45 ++++++++++++++++++++++++++++++++++++++++----- sources | 2 +- 3 files changed, 42 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index da5fe2e..aed8c8e 100644 --- a/.gitignore +++ b/.gitignore @@ -41,3 +41,4 @@ /avocado-96.0.tar.gz /avocado-97.0.tar.gz /avocado-98.0.tar.gz +/avocado-102.0.tar.gz diff --git a/python-avocado.spec b/python-avocado.spec index d8f59c3..8dc86ad 100644 --- a/python-avocado.spec +++ b/python-avocado.spec @@ -36,7 +36,7 @@ %endif Name: python-avocado -Version: 98.0 +Version: 102.0 Release: 1%{?gitrel}%{?dist} Summary: Framework with tools and libraries for Automated Testing # Found licenses: @@ -76,6 +76,7 @@ BuildRequires: psmisc BuildRequires: perl-Test-Harness BuildRequires: python3-elementpath BuildRequires: python3-xmlschema +BuildRequires: ansible-core %endif BuildRequires: glibc-all-langpacks BuildRequires: python3-netifaces @@ -110,6 +111,11 @@ popd pushd optional_plugins/golang %py3_build popd +%if ! 0%{?rhel} +pushd optional_plugins/ansible + %py3_build +popd +%endif pushd optional_plugins/varianter_pict %py3_build popd @@ -125,7 +131,6 @@ rst2man man/avocado.rst man/avocado.1 %py3_install for exe in \ avocado \ - avocado-runner \ avocado-runner-noop \ avocado-runner-dry-run \ avocado-runner-exec-test \ @@ -134,6 +139,7 @@ for exe in \ avocado-runner-tap \ avocado-runner-asset \ avocado-runner-package \ + avocado-runner-podman-image \ avocado-runner-sysinfo \ avocado-external-runner \ avocado-software-manager @@ -161,6 +167,11 @@ popd pushd optional_plugins/golang %py3_install popd +%if ! 0%{?rhel} +pushd optional_plugins/ansible + %py3_install +popd +%endif pushd optional_plugins/varianter_pict %py3_install popd @@ -234,9 +245,6 @@ these days a framework) to perform automated testing. %{_bindir}/avocado-%{python3_version} %{_bindir}/avocado-3 %{_bindir}/avocado -%{_bindir}/avocado-runner-%{python3_version} -%{_bindir}/avocado-runner-3 -%{_bindir}/avocado-runner %{_bindir}/avocado-runner-noop-%{python3_version} %{_bindir}/avocado-runner-noop-3 %{_bindir}/avocado-runner-noop @@ -261,6 +269,9 @@ these days a framework) to perform automated testing. %{_bindir}/avocado-runner-package-%{python3_version} %{_bindir}/avocado-runner-package-3 %{_bindir}/avocado-runner-package +%{_bindir}/avocado-runner-podman-image-%{python3_version} +%{_bindir}/avocado-runner-podman-image-3 +%{_bindir}/avocado-runner-podman-image %{_bindir}/avocado-runner-sysinfo-%{python3_version} %{_bindir}/avocado-runner-sysinfo-3 %{_bindir}/avocado-runner-sysinfo @@ -359,6 +370,24 @@ also run them. %{_bindir}/avocado-runner-golang +%if ! 0%{?rhel} +%package -n python3-avocado-plugins-ansible +Summary: Avocado Ansible Dependency plugin +License: GPLv2+ +Requires: python3-avocado == %{version}-%{release} +Requires: ansible-core + +%description -n python3-avocado-plugins-ansible +Adds to Avocado the ability to use ansible modules as dependecies for +tests. + +%files -n python3-avocado-plugins-ansible +%{python3_sitelib}/avocado_ansible* +%{python3_sitelib}/avocado_framework_plugin_ansible* +%{_bindir}/avocado-runner-ansible-module +%endif + + %package -n python3-avocado-plugins-varianter-pict Summary: Varianter with combinatorial capabilities by PICT License: GPLv2+ @@ -444,6 +473,12 @@ Again Shell code (and possibly other similar shells). %changelog +* Mon Jul 17 2023 Cleber Rosa - 102.0-1 +- Sync with upstream release 102.0 +- Added new avocado-runner-podman-image script +- Added new sub package python3-avocado-plugins-ansible +- Remove generic runner avocado-runner + * Sat Jul 16 2022 Cleber Rosa - 98.0-1 - Sync with upstream release 98.0 - Add build requirements for python3-elementpath and diff --git a/sources b/sources index c029b01..df8cd21 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (avocado-98.0.tar.gz) = 6e1adbc5a797a7775204418411a7d80afdce1626894ebe054072b22426f41ba5f6544720f83169158bdb3187bd2432387622f8a654d750d49784a183148ed2f0 +SHA512 (avocado-102.0.tar.gz) = 8c772fd4bef31ed04072e52a88a1d3af7bd28021573d138beacac270774e89b801f8430e80e46453a6c8dc51fe4472310d294271a1e801fbb31dc1dae2b7b1c3 From d9406a60f25e6f84e9de151625b2b9b62187bef2 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 21 Jul 2023 07:31:24 +0000 Subject: [PATCH 37/57] Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- python-avocado.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/python-avocado.spec b/python-avocado.spec index 32a25f1..f3354aa 100644 --- a/python-avocado.spec +++ b/python-avocado.spec @@ -35,7 +35,7 @@ Name: python-avocado Version: 92.1 -Release: 1%{?gitrel}%{?dist} +Release: 2%{?gitrel}%{?dist} Summary: Framework with tools and libraries for Automated Testing # Found licenses: # avocado/core/tapparser.py: MIT @@ -446,6 +446,9 @@ Again Shell code (and possibly other similar shells). %changelog +* Fri Jul 21 2023 Fedora Release Engineering - 92.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + * Mon Jul 17 2023 Cleber Rosa - 92.1-1 - Updated to 92.1 - Support building and running under Python 3.12 for F39 From 5bb1ce77be60739aaf8625fcf52391484d9b7ca4 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sun, 21 Jan 2024 23:29:41 +0000 Subject: [PATCH 38/57] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild --- python-avocado.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/python-avocado.spec b/python-avocado.spec index f3354aa..b6d724c 100644 --- a/python-avocado.spec +++ b/python-avocado.spec @@ -35,7 +35,7 @@ Name: python-avocado Version: 92.1 -Release: 2%{?gitrel}%{?dist} +Release: 3%{?gitrel}%{?dist} Summary: Framework with tools and libraries for Automated Testing # Found licenses: # avocado/core/tapparser.py: MIT @@ -446,6 +446,9 @@ Again Shell code (and possibly other similar shells). %changelog +* Sun Jan 21 2024 Fedora Release Engineering - 92.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + * Fri Jul 21 2023 Fedora Release Engineering - 92.1-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild From 9e4eb9164338ce75838345f5cf81019dd6b5390f Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 26 Jan 2024 01:30:07 +0000 Subject: [PATCH 39/57] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild --- python-avocado.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/python-avocado.spec b/python-avocado.spec index b6d724c..1342efc 100644 --- a/python-avocado.spec +++ b/python-avocado.spec @@ -35,7 +35,7 @@ Name: python-avocado Version: 92.1 -Release: 3%{?gitrel}%{?dist} +Release: 4%{?gitrel}%{?dist} Summary: Framework with tools and libraries for Automated Testing # Found licenses: # avocado/core/tapparser.py: MIT @@ -446,6 +446,9 @@ Again Shell code (and possibly other similar shells). %changelog +* Fri Jan 26 2024 Fedora Release Engineering - 92.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + * Sun Jan 21 2024 Fedora Release Engineering - 92.1-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild From 81494bf6112afec8f71a7d1d9cd7e1d495260483 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Mon, 29 Jan 2024 11:09:26 +0000 Subject: [PATCH 40/57] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild --- python-avocado.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/python-avocado.spec b/python-avocado.spec index 1342efc..96b18ee 100644 --- a/python-avocado.spec +++ b/python-avocado.spec @@ -35,7 +35,7 @@ Name: python-avocado Version: 92.1 -Release: 4%{?gitrel}%{?dist} +Release: 5%{?gitrel}%{?dist} Summary: Framework with tools and libraries for Automated Testing # Found licenses: # avocado/core/tapparser.py: MIT @@ -446,6 +446,9 @@ Again Shell code (and possibly other similar shells). %changelog +* Mon Jan 29 2024 Fedora Release Engineering - 92.1-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + * Fri Jan 26 2024 Fedora Release Engineering - 92.1-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild From 3c3eeac4322573bcae72212cb2e774808541c5f4 Mon Sep 17 00:00:00 2001 From: Python Maint Date: Fri, 7 Jun 2024 18:57:17 +0200 Subject: [PATCH 41/57] Rebuilt for Python 3.13 --- python-avocado.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/python-avocado.spec b/python-avocado.spec index 96b18ee..1b0bc20 100644 --- a/python-avocado.spec +++ b/python-avocado.spec @@ -35,7 +35,7 @@ Name: python-avocado Version: 92.1 -Release: 5%{?gitrel}%{?dist} +Release: 6%{?gitrel}%{?dist} Summary: Framework with tools and libraries for Automated Testing # Found licenses: # avocado/core/tapparser.py: MIT @@ -446,6 +446,9 @@ Again Shell code (and possibly other similar shells). %changelog +* Fri Jun 07 2024 Python Maint - 92.1-6 +- Rebuilt for Python 3.13 + * Mon Jan 29 2024 Fedora Release Engineering - 92.1-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild From 42c94b1fece3c83e4ae427d0ee4c53e97839e8e4 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 19 Jul 2024 09:39:48 +0000 Subject: [PATCH 42/57] Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild --- python-avocado.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/python-avocado.spec b/python-avocado.spec index 1b0bc20..0e8b43b 100644 --- a/python-avocado.spec +++ b/python-avocado.spec @@ -35,7 +35,7 @@ Name: python-avocado Version: 92.1 -Release: 6%{?gitrel}%{?dist} +Release: 7%{?gitrel}%{?dist} Summary: Framework with tools and libraries for Automated Testing # Found licenses: # avocado/core/tapparser.py: MIT @@ -446,6 +446,9 @@ Again Shell code (and possibly other similar shells). %changelog +* Fri Jul 19 2024 Fedora Release Engineering - 92.1-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + * Fri Jun 07 2024 Python Maint - 92.1-6 - Rebuilt for Python 3.13 From 5e41ae22a867fcdf2875629e1c35fe3d438ca25f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miroslav=20Such=C3=BD?= Date: Fri, 26 Jul 2024 02:15:51 +0200 Subject: [PATCH 43/57] convert GPLv2+ license to SPDX This is part of https://fedoraproject.org/wiki/Changes/SPDX_Licenses_Phase_4 --- python-avocado.spec | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/python-avocado.spec b/python-avocado.spec index 0e8b43b..f7835cd 100644 --- a/python-avocado.spec +++ b/python-avocado.spec @@ -35,7 +35,7 @@ Name: python-avocado Version: 92.1 -Release: 7%{?gitrel}%{?dist} +Release: 8%{?gitrel}%{?dist} Summary: Framework with tools and libraries for Automated Testing # Found licenses: # avocado/core/tapparser.py: MIT @@ -275,7 +275,8 @@ these days a framework) to perform automated testing. %package -n python-avocado-common Summary: Avocado common files -License: GPLv2+ +# Automatically converted from old format: GPLv2+ - review is highly recommended. +License: GPL-2.0-or-later %description -n python-avocado-common Common files (such as configuration) for the Avocado Testing Framework. @@ -316,7 +317,8 @@ arbitrary filesystem location. %if %{with_resultsdb} %package -n python3-avocado-plugins-resultsdb Summary: Avocado plugin to propagate job results to ResultsDB -License: GPLv2+ +# Automatically converted from old format: GPLv2+ - review is highly recommended. +License: GPL-2.0-or-later Requires: python3-avocado == %{version}-%{release} %description -n python3-avocado-plugins-resultsdb @@ -332,7 +334,8 @@ server. %package -n python3-avocado-plugins-varianter-yaml-to-mux Summary: Avocado plugin to generate variants out of yaml files -License: GPLv2+ +# Automatically converted from old format: GPLv2+ - review is highly recommended. +License: GPL-2.0-or-later Requires: python3-avocado == %{version}-%{release} %description -n python3-avocado-plugins-varianter-yaml-to-mux @@ -346,7 +349,8 @@ defined in a yaml file(s). %package -n python3-avocado-plugins-golang Summary: Avocado plugin for execution of golang tests -License: GPLv2+ +# Automatically converted from old format: GPLv2+ - review is highly recommended. +License: GPL-2.0-or-later Requires: python3-avocado == %{version}-%{release} Requires: golang @@ -362,7 +366,8 @@ also run them. %package -n python3-avocado-plugins-varianter-pict Summary: Varianter with combinatorial capabilities by PICT -License: GPLv2+ +# Automatically converted from old format: GPLv2+ - review is highly recommended. +License: GPL-2.0-or-later Requires: python3-avocado == %{version}-%{release} %description -n python3-avocado-plugins-varianter-pict @@ -376,7 +381,8 @@ Pair-Wise algorithms, also known as Combinatorial Independent Testing. %package -n python3-avocado-plugins-varianter-cit Summary: Varianter with Combinatorial Independent Testing capabilities -License: GPLv2+ +# Automatically converted from old format: GPLv2+ - review is highly recommended. +License: GPL-2.0-or-later Requires: python3-avocado == %{version}-%{release} %description -n python3-avocado-plugins-varianter-cit @@ -391,7 +397,8 @@ collaboration with CVUT Prague. %package -n python3-avocado-plugins-result-upload Summary: Avocado plugin propagate job results to a remote host -License: GPLv2+ +# Automatically converted from old format: GPLv2+ - review is highly recommended. +License: GPL-2.0-or-later Requires: python3-avocado == %{version}-%{release} %description -n python3-avocado-plugins-result-upload @@ -405,7 +412,8 @@ a dedicated sever. %package -n python-avocado-examples Summary: Avocado Test Framework Example Tests -License: GPLv2+ +# Automatically converted from old format: GPLv2+ - review is highly recommended. +License: GPL-2.0-or-later # documentation does not require main package, but needs to be in lock-step if present Conflicts: python3-avocado < %{version}-%{release}, python3-avocado > %{version}-%{release} @@ -446,6 +454,9 @@ Again Shell code (and possibly other similar shells). %changelog +* Fri Jul 26 2024 Miroslav Suchý - 92.1-8 +- convert license to SPDX + * Fri Jul 19 2024 Fedora Release Engineering - 92.1-7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild From 6e6d0dac8901425fee83143780b0de70cc965ea0 Mon Sep 17 00:00:00 2001 From: Cleber Rosa Date: Mon, 19 Aug 2024 10:08:22 -0400 Subject: [PATCH 44/57] Update to version 92.3 This update to a minor release on the 92LTS series, allowing for building and running under F42. Signed-off-by: Cleber Rosa --- .gitignore | 1 + python-avocado.spec | 15 +++++++++------ sources | 3 +-- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index b5a1b5d..bd8b053 100644 --- a/.gitignore +++ b/.gitignore @@ -31,3 +31,4 @@ /avocado-92.0.tar.gz /avocado-92.1.tar.gz /avocado-92.1-python312.patch +/avocado-92.3.tar.gz diff --git a/python-avocado.spec b/python-avocado.spec index f7835cd..0c6d6f7 100644 --- a/python-avocado.spec +++ b/python-avocado.spec @@ -9,10 +9,10 @@ %global gittar avocado-%{version}.tar.gz %else %if ! 0%{?commit:1} - %global commit 08ac79fa4ecaee60d7d5211d9634568b5545bdcd + %global commit 5b21f030001d6eed69c0357cc45b6128c73dc860 %endif %if ! 0%{?commit_date:1} - %global commit_date 20211019 + %global commit_date 20240819 %endif %global shortcommit %(c=%{commit};echo ${c:0:9}) %global gitrel .%{commit_date}git%{shortcommit} @@ -34,8 +34,8 @@ %endif Name: python-avocado -Version: 92.1 -Release: 8%{?gitrel}%{?dist} +Version: 92.3 +Release: 1%{?gitrel}%{?dist} Summary: Framework with tools and libraries for Automated Testing # Found licenses: # avocado/core/tapparser.py: MIT @@ -49,7 +49,6 @@ License: GPLv2+ and GPLv2 and MIT URL: https://avocado-framework.github.io/ Source0: https://github.com/avocado-framework/avocado/archive/%{gitref}/%{gittar} BuildArch: noarch -Patch0: avocado-92.1-python312.patch BuildRequires: kmod BuildRequires: procps-ng @@ -84,7 +83,6 @@ these days a framework) to perform automated testing. %prep %setup -q -n avocado-%{gitref} -%patch 0 -p 1 %if 0%{?rhel} sed -e "s/'PyYAML>=4.2b2'/'PyYAML>=3.12'/" -i optional_plugins/varianter_yaml_to_mux/setup.py %endif @@ -454,6 +452,11 @@ Again Shell code (and possibly other similar shells). %changelog +* Mon Aug 19 2024 Cleber Rosa - 92.3-1 +- Updated to 92.3 +- Support building and running under Python 3.13 for F42 +- Removed patch from 92.1 as its present in 92.3 + * Fri Jul 26 2024 Miroslav Suchý - 92.1-8 - convert license to SPDX diff --git a/sources b/sources index aae30a3..4a738a2 100644 --- a/sources +++ b/sources @@ -1,2 +1 @@ -SHA512 (avocado-92.1.tar.gz) = b775ebd014f4c91aae2b13e1aa350940ce7e277eb63ebf7c325f6dd020c10eb21390942080468804ceadd923f52970cb2f2ca214c7855df435d442e99a499ceb -SHA512 (avocado-92.1-python312.patch) = fc94e23c84653b317ba3d9a6a52d99d2e136c2fa50621b5ce36b2b10bbcb8cceac36d12dd715820ebe5ae266768bf3384fcb15b6f4614d4a4dd60415c1821901 +SHA512 (avocado-92.3.tar.gz) = 97a0c113bc826537a02ebf6efcd7cf49b505a93e5fd9686c3a4c7e70902f2d367f78eb2fb23ddf9253b97f45e27b2e328fd6bd1c420ecbeb59e25e991b29c262 From fbd8b0d95c0cf3e59b443a8e31850d1ed21626df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miroslav=20Such=C3=BD?= Date: Mon, 7 Oct 2024 10:28:42 +0000 Subject: [PATCH 45/57] Migrate to SPDX license This is part of https://fedoraproject.org/wiki/Changes/SPDX_Licenses_Phase_4 If there will be no comments in two weeks, I will merge this. --- python-avocado.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python-avocado.spec b/python-avocado.spec index 0c6d6f7..b7a4d55 100644 --- a/python-avocado.spec +++ b/python-avocado.spec @@ -45,7 +45,7 @@ Summary: Framework with tools and libraries for Automated Testing # optional_plugins/html/avocado_result_html/templates/bootstrap.min.js: MIT # selftests/.data/jenkins-junit.xsd: MIT # Other files: GPLv2 and GPLv2+ -License: GPLv2+ and GPLv2 and MIT +License: GPL-2.0-or-later AND GPL-2.0-only AND MIT URL: https://avocado-framework.github.io/ Source0: https://github.com/avocado-framework/avocado/archive/%{gitref}/%{gittar} BuildArch: noarch From a50932740bcd04cfe9fc9958201989c8971a7b17 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 18 Jan 2025 12:05:43 +0000 Subject: [PATCH 46/57] Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild --- python-avocado.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/python-avocado.spec b/python-avocado.spec index b7a4d55..77eb88c 100644 --- a/python-avocado.spec +++ b/python-avocado.spec @@ -35,7 +35,7 @@ Name: python-avocado Version: 92.3 -Release: 1%{?gitrel}%{?dist} +Release: 2%{?gitrel}%{?dist} Summary: Framework with tools and libraries for Automated Testing # Found licenses: # avocado/core/tapparser.py: MIT @@ -452,6 +452,9 @@ Again Shell code (and possibly other similar shells). %changelog +* Sat Jan 18 2025 Fedora Release Engineering - 92.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + * Mon Aug 19 2024 Cleber Rosa - 92.3-1 - Updated to 92.3 - Support building and running under Python 3.13 for F42 From c84a1c5f931a3f6f54d7e95f145dbbf6b6b24676 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miroslav=20Such=C3=BD?= Date: Thu, 16 Jan 2025 08:53:14 +0100 Subject: [PATCH 47/57] migrate license to SPDX This is part of https://fedoraproject.org/wiki/Changes/SPDX_Licenses_Phase_4 Signed-off-by: Cleber Rosa --- python-avocado.spec | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/python-avocado.spec b/python-avocado.spec index 77eb88c..d3ee34a 100644 --- a/python-avocado.spec +++ b/python-avocado.spec @@ -35,7 +35,7 @@ Name: python-avocado Version: 92.3 -Release: 2%{?gitrel}%{?dist} +Release: 3%{?gitrel}%{?dist} Summary: Framework with tools and libraries for Automated Testing # Found licenses: # avocado/core/tapparser.py: MIT @@ -299,7 +299,7 @@ Common files (such as configuration) for the Avocado Testing Framework. %package -n python3-avocado-plugins-output-html Summary: Avocado HTML report plugin -License: GPLv2+ and MIT +License: GPL-2.0-or-later AND MIT Requires: python3-avocado == %{version}-%{release} %description -n python3-avocado-plugins-output-html @@ -434,7 +434,7 @@ examples of how to write tests on your own. %package -n python-avocado-bash Summary: Avocado Test Framework Bash Utilities -License: GPLv2+ and GPLv2 +License: GPL-2.0-or-later AND GPL-2.0-only Requires: python-avocado-common == %{version}-%{release} %description -n python-avocado-bash @@ -452,6 +452,9 @@ Again Shell code (and possibly other similar shells). %changelog +* Mon Jan 20 2025 Cleber Rosa - 92.3-3 +- convert remaining licenses to SPDX + * Sat Jan 18 2025 Fedora Release Engineering - 92.3-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild From d84ef63709c47c3a5d91a688cb2cd10c7e12ba26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Fri, 3 Jan 2025 15:47:29 +0100 Subject: [PATCH 48/57] Loosen the PyYAML version requirement in python3-avocado-plugins-varianter-yaml-to-mux Upstream has pinned this for Debian reasons: https://github.com/avocado-framework/avocado/commit/f130c763be3eb33dda196e57efe16705523242e9 Signed-off-by: Cleber Rosa --- python-avocado.spec | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/python-avocado.spec b/python-avocado.spec index d3ee34a..12c3f7b 100644 --- a/python-avocado.spec +++ b/python-avocado.spec @@ -35,7 +35,7 @@ Name: python-avocado Version: 92.3 -Release: 3%{?gitrel}%{?dist} +Release: 4%{?gitrel}%{?dist} Summary: Framework with tools and libraries for Automated Testing # Found licenses: # avocado/core/tapparser.py: MIT @@ -90,6 +90,8 @@ sed -e "s/'PyYAML>=4.2b2'/'PyYAML>=3.12'/" -i optional_plugins/varianter_yaml_to sed -e "s/'markupsafe<2.0.0', //" -i optional_plugins/html/setup.py # loosen jinja2 version requirement sed -e "s/'jinja2<3.0.0'/'jinja2'/" -i optional_plugins/html/setup.py +# loosen pyyaml version requirement +sed -e "s/'PyYAML>=4.2b2,<6.0.2'/'PyYAML>=4.2b2'/" -i optional_plugins/varianter_yaml_to_mux/setup.py %build %py3_build @@ -452,6 +454,9 @@ Again Shell code (and possibly other similar shells). %changelog +* Mon Jan 20 2025 Miro Hrončok - 92.3-4 +- Loosen the PyYAML version requirement in python3-avocado-plugins-varianter-yaml-to-mux + * Mon Jan 20 2025 Cleber Rosa - 92.3-3 - convert remaining licenses to SPDX From 54d20e2b89c3faa5283306c568dc8905ef1b1b6a Mon Sep 17 00:00:00 2001 From: Python Maint Date: Tue, 3 Jun 2025 15:32:47 +0200 Subject: [PATCH 49/57] Rebuilt for Python 3.14 --- python-avocado.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/python-avocado.spec b/python-avocado.spec index 12c3f7b..f6f1142 100644 --- a/python-avocado.spec +++ b/python-avocado.spec @@ -35,7 +35,7 @@ Name: python-avocado Version: 92.3 -Release: 4%{?gitrel}%{?dist} +Release: 5%{?gitrel}%{?dist} Summary: Framework with tools and libraries for Automated Testing # Found licenses: # avocado/core/tapparser.py: MIT @@ -454,6 +454,9 @@ Again Shell code (and possibly other similar shells). %changelog +* Tue Jun 03 2025 Python Maint - 92.3-5 +- Rebuilt for Python 3.14 + * Mon Jan 20 2025 Miro Hrončok - 92.3-4 - Loosen the PyYAML version requirement in python3-avocado-plugins-varianter-yaml-to-mux From 71b50479dd5ce4edc7a504b0c14d902a4dc26f87 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 25 Jul 2025 06:46:47 +0000 Subject: [PATCH 50/57] Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild --- python-avocado.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/python-avocado.spec b/python-avocado.spec index f6f1142..4c1803a 100644 --- a/python-avocado.spec +++ b/python-avocado.spec @@ -35,7 +35,7 @@ Name: python-avocado Version: 92.3 -Release: 5%{?gitrel}%{?dist} +Release: 6%{?gitrel}%{?dist} Summary: Framework with tools and libraries for Automated Testing # Found licenses: # avocado/core/tapparser.py: MIT @@ -454,6 +454,9 @@ Again Shell code (and possibly other similar shells). %changelog +* Fri Jul 25 2025 Fedora Release Engineering - 92.3-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + * Tue Jun 03 2025 Python Maint - 92.3-5 - Rebuilt for Python 3.14 From a12e378e73f22824d667a46028563c98bc0cc50b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Tue, 19 Aug 2025 11:56:28 +0200 Subject: [PATCH 51/57] Retired: Fails to install: https://pagure.io/releng/issue/12871 --- .gitignore | 34 -- dead.package | 1 + python-avocado.spec | 699 ------------------------------- sources | 1 - tests/gdbtest.py | 347 --------------- tests/gdbtest.py.data/return99.c | 47 --- tests/gdbtest.py.data/segfault.c | 9 - tests/tests.yml | 25 -- 8 files changed, 1 insertion(+), 1162 deletions(-) delete mode 100644 .gitignore create mode 100644 dead.package delete mode 100644 python-avocado.spec delete mode 100644 sources delete mode 100755 tests/gdbtest.py delete mode 100644 tests/gdbtest.py.data/return99.c delete mode 100644 tests/gdbtest.py.data/segfault.c delete mode 100644 tests/tests.yml diff --git a/.gitignore b/.gitignore deleted file mode 100644 index bd8b053..0000000 --- a/.gitignore +++ /dev/null @@ -1,34 +0,0 @@ -/avocado-43.0.tar.gz -/avocado-46.0.tar.gz -/avocado-47.0.tar.gz -/avocado-48.0.tar.gz -/avocado-49.0.tar.gz -/avocado-50.0.tar.gz -/avocado-51.0.tar.gz -/avocado-52.0.tar.gz -/avocado-52.1.tar.gz -/avocado-61.0.tar.gz -/avocado-62.0.tar.gz -/avocado-63.0.tar.gz -/avocado-64.0.tar.gz -/avocado-65.0.tar.gz -/avocado-66.0.tar.gz -/avocado-67.0.tar.gz -/avocado-68.0.tar.gz -/avocado-69.0.tar.gz -/avocado-70.0.tar.gz -/avocado-71.0.tar.gz -/avocado-72.0.tar.gz -/avocado-73.0.tar.gz -/avocado-74.0.tar.gz -/avocado-75.1.tar.gz -/avocado-76.0.tar.gz -/avocado-77.0.tar.gz -/avocado-78.0.tar.gz -/avocado-79.0.tar.gz -/avocado-80.0.tar.gz -/avocado-82.0.tar.gz -/avocado-92.0.tar.gz -/avocado-92.1.tar.gz -/avocado-92.1-python312.patch -/avocado-92.3.tar.gz diff --git a/dead.package b/dead.package new file mode 100644 index 0000000..37f0d8e --- /dev/null +++ b/dead.package @@ -0,0 +1 @@ +Retired: Fails to install: https://pagure.io/releng/issue/12871 diff --git a/python-avocado.spec b/python-avocado.spec deleted file mode 100644 index 4c1803a..0000000 --- a/python-avocado.spec +++ /dev/null @@ -1,699 +0,0 @@ -# Conditional for release vs. snapshot builds. Set to 1 for release build. -%if ! 0%{?rel_build:1} - %global rel_build 1 -%endif - -# Settings used for build from snapshots. -%if 0%{?rel_build} - %global gitref %{version} - %global gittar avocado-%{version}.tar.gz -%else - %if ! 0%{?commit:1} - %global commit 5b21f030001d6eed69c0357cc45b6128c73dc860 - %endif - %if ! 0%{?commit_date:1} - %global commit_date 20240819 - %endif - %global shortcommit %(c=%{commit};echo ${c:0:9}) - %global gitrel .%{commit_date}git%{shortcommit} - %global gitref %{commit} - %global gittar avocado-%{shortcommit}.tar.gz -%endif - -# Selftests are provided but may need to be skipped because many of -# the functional tests are time and resource sensitive and can -# cause race conditions and random build failures. They are -# enabled by default. -%global with_tests 1 - -# resultsdb is not available for RHEL -%if ! 0%{?rhel} -%global with_resultsdb 1 -%else -%global with_resultsdb 0 -%endif - -Name: python-avocado -Version: 92.3 -Release: 6%{?gitrel}%{?dist} -Summary: Framework with tools and libraries for Automated Testing -# Found licenses: -# avocado/core/tapparser.py: MIT -# avocado/utils/external/gdbmi_parser.py: MIT -# avocado/utils/external/spark.py: MIT -# optional_plugins/html/avocado_result_html/templates/bootstrap.min.css: MIT -# optional_plugins/html/avocado_result_html/templates/bootstrap.min.js: MIT -# selftests/.data/jenkins-junit.xsd: MIT -# Other files: GPLv2 and GPLv2+ -License: GPL-2.0-or-later AND GPL-2.0-only AND MIT -URL: https://avocado-framework.github.io/ -Source0: https://github.com/avocado-framework/avocado/archive/%{gitref}/%{gittar} -BuildArch: noarch - -BuildRequires: kmod -BuildRequires: procps-ng -BuildRequires: python3-devel -BuildRequires: python3-docutils -BuildRequires: python3-jinja2 -BuildRequires: python3-lxml -BuildRequires: python3-psutil -BuildRequires: python3-setuptools -%if %{with_resultsdb} -BuildRequires: python3-resultsdb_api -BuildRequires: python3-pycdlib -%endif - -%if 0%{?with_tests} -BuildRequires: genisoimage -BuildRequires: libcdio -BuildRequires: psmisc -%if ! 0%{?rhel} -BuildRequires: perl-Test-Harness -%endif -BuildRequires: glibc-all-langpacks -BuildRequires: python3-netifaces -BuildRequires: python3-yaml -%endif -# with_tests - -%description -Avocado is a set of tools and libraries (what people call -these days a framework) to perform automated testing. - - -%prep -%setup -q -n avocado-%{gitref} -%if 0%{?rhel} -sed -e "s/'PyYAML>=4.2b2'/'PyYAML>=3.12'/" -i optional_plugins/varianter_yaml_to_mux/setup.py -%endif -# drop unnecessary install requirement -sed -e "s/'markupsafe<2.0.0', //" -i optional_plugins/html/setup.py -# loosen jinja2 version requirement -sed -e "s/'jinja2<3.0.0'/'jinja2'/" -i optional_plugins/html/setup.py -# loosen pyyaml version requirement -sed -e "s/'PyYAML>=4.2b2,<6.0.2'/'PyYAML>=4.2b2'/" -i optional_plugins/varianter_yaml_to_mux/setup.py - -%build -%py3_build -pushd optional_plugins/html - %py3_build -popd -%if %{with_resultsdb} -pushd optional_plugins/resultsdb - %py3_build -popd -%endif -pushd optional_plugins/varianter_yaml_to_mux - %py3_build -popd -pushd optional_plugins/golang - %py3_build -popd -pushd optional_plugins/varianter_pict - %py3_build -popd -pushd optional_plugins/varianter_cit - %py3_build -popd -pushd optional_plugins/result_upload - %py3_build -popd -rst2man man/avocado.rst man/avocado.1 - -%install -%py3_install -for exe in \ - avocado \ - avocado-runner \ - avocado-runner-noop \ - avocado-runner-dry-run \ - avocado-runner-exec-test \ - avocado-runner-python-unittest \ - avocado-runner-avocado-instrumented \ - avocado-runner-tap \ - avocado-runner-requirement-asset \ - avocado-runner-requirement-package \ - avocado-runner-sysinfo \ - avocado-software-manager -do - mv %{buildroot}%{_bindir}/$exe %{buildroot}%{_bindir}/$exe-%{python3_version} - ln -s $exe-%{python3_version} %{buildroot}%{_bindir}/$exe-3 - ln -s $exe-%{python3_version} %{buildroot}%{_bindir}/$exe -done -# configuration is held at /etc/avocado only and part of the -# python-avocado-common package -rm -rf %{buildroot}%{python3_sitelib}/avocado/etc -# ditto for libexec files -rm -rf %{buildroot}%{python3_sitelib}/avocado/libexec -# adjust permissions for file containing shebang line needed for -# spawning tasks in podman containers -chmod -c +x %{buildroot}%{python3_sitelib}/avocado/core/nrunner.py -pushd optional_plugins/html - %py3_install -popd -%if %{with_resultsdb} -pushd optional_plugins/resultsdb - %py3_install -popd -%endif -pushd optional_plugins/varianter_yaml_to_mux - %py3_install -popd -pushd optional_plugins/golang - %py3_install -popd -pushd optional_plugins/varianter_pict - %py3_install -popd -pushd optional_plugins/varianter_cit - %py3_install -popd -pushd optional_plugins/result_upload - %py3_install -popd -# cleanup plugin test cruft -rm -rf %{buildroot}%{python3_sitelib}/tests -mkdir -p %{buildroot}%{_sysconfdir}/avocado -cp -r avocado/etc/avocado/scripts %{buildroot}%{_sysconfdir}/avocado/scripts -cp -r avocado/etc/avocado/sysinfo %{buildroot}%{_sysconfdir}/avocado/sysinfo -mkdir -p %{buildroot}%{_libexecdir}/avocado -cp avocado/libexec/avocado-bash-utils %{buildroot}%{_libexecdir}/avocado/avocado-bash-utils -cp avocado/libexec/avocado_debug %{buildroot}%{_libexecdir}/avocado/avocado_debug -cp avocado/libexec/avocado_error %{buildroot}%{_libexecdir}/avocado/avocado_error -cp avocado/libexec/avocado_info %{buildroot}%{_libexecdir}/avocado/avocado_info -cp avocado/libexec/avocado_warn %{buildroot}%{_libexecdir}/avocado/avocado_warn -mkdir -p %{buildroot}%{_mandir}/man1 -install -m 0644 man/avocado.1 %{buildroot}%{_mandir}/man1/avocado.1 -mkdir -p %{buildroot}%{_pkgdocdir} -install -m 0644 README.rst %{buildroot}%{_pkgdocdir} -install -d -m 0755 %{buildroot}%{_sharedstatedir}/avocado/data -# place examples in documentation directory -install -d -m 0755 %{buildroot}%{_docdir}/avocado -cp -r examples/gdb-prerun-scripts %{buildroot}%{_docdir}/avocado/gdb-prerun-scripts -cp -r examples/plugins %{buildroot}%{_docdir}/avocado/plugins -cp -r examples/tests %{buildroot}%{_docdir}/avocado/tests -cp -r examples/varianter_cit %{buildroot}%{_docdir}/avocado/varianter_cit -cp -r examples/varianter_pict %{buildroot}%{_docdir}/avocado/varianter_pict -cp -r examples/wrappers %{buildroot}%{_docdir}/avocado/wrappers -cp -r examples/yaml_to_mux %{buildroot}%{_docdir}/avocado/yaml_to_mux -find %{buildroot}%{_docdir}/avocado -type f -name '*.py' -exec chmod -c -x {} ';' - - -%if 0%{?with_tests} -%check - # LANG: to make the results predictable, we pin the language - # that is used during test execution. - # AVOCADO_CHECK_LEVEL: package build environments have the least - # amount of resources we have observed so far. Let's avoid tests that - # require too much resources or are time sensitive - PATH=%{buildroot}%{_bindir}:%{buildroot}%{_libexecdir}/avocado:$PATH \ - PYTHONPATH=%{buildroot}%{python3_sitelib}:. \ - LANG=en_US.UTF-8 \ - AVOCADO_CHECK_LEVEL=0 \ - %{python3} selftests/check.py --job-api --nrunner-interface \ - --unit --jobs --functional --optional-plugins \ - --disable-plugin-checks robot -%endif - - -%package -n python3-avocado -Summary: %{summary} -Requires: python-avocado-common == %{version}-%{release} -Requires: gdb -Requires: gdb-gdbserver -Requires: procps-ng -%if ! 0%{?rhel} -Requires: python3-pycdlib -%endif - -%description -n python3-avocado -Avocado is a set of tools and libraries (what people call -these days a framework) to perform automated testing. - -%files -n python3-avocado -%license LICENSE -%{_pkgdocdir}/README.rst -%{python3_sitelib}/avocado/ -%{python3_sitelib}/avocado_framework-%{version}-py%{python3_version}.egg-info -%{_bindir}/avocado-%{python3_version} -%{_bindir}/avocado-3 -%{_bindir}/avocado -%{_bindir}/avocado-runner-%{python3_version} -%{_bindir}/avocado-runner-3 -%{_bindir}/avocado-runner -%{_bindir}/avocado-runner-noop-%{python3_version} -%{_bindir}/avocado-runner-noop-3 -%{_bindir}/avocado-runner-noop -%{_bindir}/avocado-runner-dry-run-%{python3_version} -%{_bindir}/avocado-runner-dry-run-3 -%{_bindir}/avocado-runner-dry-run -%{_bindir}/avocado-runner-exec-test-%{python3_version} -%{_bindir}/avocado-runner-exec-test-3 -%{_bindir}/avocado-runner-exec-test -%{_bindir}/avocado-runner-python-unittest-%{python3_version} -%{_bindir}/avocado-runner-python-unittest-3 -%{_bindir}/avocado-runner-python-unittest -%{_bindir}/avocado-runner-avocado-instrumented-%{python3_version} -%{_bindir}/avocado-runner-avocado-instrumented-3 -%{_bindir}/avocado-runner-avocado-instrumented -%{_bindir}/avocado-runner-tap-%{python3_version} -%{_bindir}/avocado-runner-tap-3 -%{_bindir}/avocado-runner-tap -%{_bindir}/avocado-runner-requirement-asset-%{python3_version} -%{_bindir}/avocado-runner-requirement-asset-3 -%{_bindir}/avocado-runner-requirement-asset -%{_bindir}/avocado-runner-requirement-package-%{python3_version} -%{_bindir}/avocado-runner-requirement-package-3 -%{_bindir}/avocado-runner-requirement-package -%{_bindir}/avocado-runner-sysinfo-%{python3_version} -%{_bindir}/avocado-runner-sysinfo-3 -%{_bindir}/avocado-runner-sysinfo -%{_bindir}/avocado-software-manager-%{python3_version} -%{_bindir}/avocado-software-manager-3 -%{_bindir}/avocado-software-manager - - -%package -n python-avocado-common -Summary: Avocado common files -# Automatically converted from old format: GPLv2+ - review is highly recommended. -License: GPL-2.0-or-later - -%description -n python-avocado-common -Common files (such as configuration) for the Avocado Testing Framework. - -%files -n python-avocado-common -%license LICENSE -%{_mandir}/man1/avocado.1.gz -%dir %{_docdir}/avocado -%dir %{_sharedstatedir}/avocado -%dir %{_sysconfdir}/avocado -%dir %{_sysconfdir}/avocado/sysinfo -%dir %{_sysconfdir}/avocado/scripts -%dir %{_sysconfdir}/avocado/scripts/job -%dir %{_sysconfdir}/avocado/scripts/job/pre.d -%dir %{_sysconfdir}/avocado/scripts/job/post.d -%config(noreplace) %{_sysconfdir}/avocado/sysinfo/commands -%config(noreplace) %{_sysconfdir}/avocado/sysinfo/files -%config(noreplace) %{_sysconfdir}/avocado/sysinfo/profilers -%{_sysconfdir}/avocado/scripts/job/pre.d/README -%{_sysconfdir}/avocado/scripts/job/post.d/README - - -%package -n python3-avocado-plugins-output-html -Summary: Avocado HTML report plugin -License: GPL-2.0-or-later AND MIT -Requires: python3-avocado == %{version}-%{release} - -%description -n python3-avocado-plugins-output-html -Adds to avocado the ability to generate an HTML report at every job results -directory. It also gives the user the ability to write a report on an -arbitrary filesystem location. - -%files -n python3-avocado-plugins-output-html -%{python3_sitelib}/avocado_result_html/ -%{python3_sitelib}/avocado_framework_plugin_result_html-%{version}-py%{python3_version}.egg-info - - -%if %{with_resultsdb} -%package -n python3-avocado-plugins-resultsdb -Summary: Avocado plugin to propagate job results to ResultsDB -# Automatically converted from old format: GPLv2+ - review is highly recommended. -License: GPL-2.0-or-later -Requires: python3-avocado == %{version}-%{release} - -%description -n python3-avocado-plugins-resultsdb -Allows Avocado to send job results directly to a ResultsDB -server. - -%files -n python3-avocado-plugins-resultsdb -%{python3_sitelib}/avocado_resultsdb/ -%{python3_sitelib}/avocado_framework_plugin_resultsdb-%{version}-py%{python3_version}.egg-info -%endif -# with_resultsdb - - -%package -n python3-avocado-plugins-varianter-yaml-to-mux -Summary: Avocado plugin to generate variants out of yaml files -# Automatically converted from old format: GPLv2+ - review is highly recommended. -License: GPL-2.0-or-later -Requires: python3-avocado == %{version}-%{release} - -%description -n python3-avocado-plugins-varianter-yaml-to-mux -Can be used to produce multiple test variants with test parameters -defined in a yaml file(s). - -%files -n python3-avocado-plugins-varianter-yaml-to-mux -%{python3_sitelib}/avocado_varianter_yaml_to_mux/ -%{python3_sitelib}/avocado_framework_plugin_varianter_yaml_to_mux-%{version}-py%{python3_version}.egg-info - - -%package -n python3-avocado-plugins-golang -Summary: Avocado plugin for execution of golang tests -# Automatically converted from old format: GPLv2+ - review is highly recommended. -License: GPL-2.0-or-later -Requires: python3-avocado == %{version}-%{release} -Requires: golang - -%description -n python3-avocado-plugins-golang -Allows Avocado to list golang tests, and if golang is installed, -also run them. - -%files -n python3-avocado-plugins-golang -%{python3_sitelib}/avocado_golang/ -%{python3_sitelib}/avocado_framework_plugin_golang-%{version}-py%{python3_version}.egg-info -%{_bindir}/avocado-runner-golang - - -%package -n python3-avocado-plugins-varianter-pict -Summary: Varianter with combinatorial capabilities by PICT -# Automatically converted from old format: GPLv2+ - review is highly recommended. -License: GPL-2.0-or-later -Requires: python3-avocado == %{version}-%{release} - -%description -n python3-avocado-plugins-varianter-pict -This plugin uses a third-party tool to provide variants created by -Pair-Wise algorithms, also known as Combinatorial Independent Testing. - -%files -n python3-avocado-plugins-varianter-pict -%{python3_sitelib}/avocado_varianter_pict/ -%{python3_sitelib}/avocado_framework_plugin_varianter_pict-%{version}-py%{python3_version}.egg-info - - -%package -n python3-avocado-plugins-varianter-cit -Summary: Varianter with Combinatorial Independent Testing capabilities -# Automatically converted from old format: GPLv2+ - review is highly recommended. -License: GPL-2.0-or-later -Requires: python3-avocado == %{version}-%{release} - -%description -n python3-avocado-plugins-varianter-cit -A varianter plugin that generates variants using Combinatorial -Independent Testing (AKA Pair-Wise) algorithm developed in -collaboration with CVUT Prague. - -%files -n python3-avocado-plugins-varianter-cit -%{python3_sitelib}/avocado_varianter_cit/ -%{python3_sitelib}/avocado_framework_plugin_varianter_cit-%{version}-py%{python3_version}.egg-info - - -%package -n python3-avocado-plugins-result-upload -Summary: Avocado plugin propagate job results to a remote host -# Automatically converted from old format: GPLv2+ - review is highly recommended. -License: GPL-2.0-or-later -Requires: python3-avocado == %{version}-%{release} - -%description -n python3-avocado-plugins-result-upload -This optional plugin is intended to upload the Avocado Job results to -a dedicated sever. - -%files -n python3-avocado-plugins-result-upload -%{python3_sitelib}/avocado_result_upload/ -%{python3_sitelib}/avocado_framework_plugin_result_upload-%{version}-py%{python3_version}.egg-info - - -%package -n python-avocado-examples -Summary: Avocado Test Framework Example Tests -# Automatically converted from old format: GPLv2+ - review is highly recommended. -License: GPL-2.0-or-later -# documentation does not require main package, but needs to be in lock-step if present -Conflicts: python3-avocado < %{version}-%{release}, python3-avocado > %{version}-%{release} - -%description -n python-avocado-examples -The set of example tests present in the upstream tree of the Avocado framework. -Some of them are used as functional tests of the framework, others serve as -examples of how to write tests on your own. - -%files -n python-avocado-examples -%license LICENSE -%dir %{_docdir}/avocado -%{_docdir}/avocado/gdb-prerun-scripts -%{_docdir}/avocado/plugins -%{_docdir}/avocado/tests -%{_docdir}/avocado/varianter_cit -%{_docdir}/avocado/varianter_pict -%{_docdir}/avocado/wrappers -%{_docdir}/avocado/yaml_to_mux - - -%package -n python-avocado-bash -Summary: Avocado Test Framework Bash Utilities -License: GPL-2.0-or-later AND GPL-2.0-only -Requires: python-avocado-common == %{version}-%{release} - -%description -n python-avocado-bash -A small set of utilities to interact with Avocado from the Bourne -Again Shell code (and possibly other similar shells). - -%files -n python-avocado-bash -%license LICENSE -%dir %{_libexecdir}/avocado -%{_libexecdir}/avocado/avocado-bash-utils -%{_libexecdir}/avocado/avocado_debug -%{_libexecdir}/avocado/avocado_error -%{_libexecdir}/avocado/avocado_info -%{_libexecdir}/avocado/avocado_warn - - -%changelog -* Fri Jul 25 2025 Fedora Release Engineering - 92.3-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild - -* Tue Jun 03 2025 Python Maint - 92.3-5 -- Rebuilt for Python 3.14 - -* Mon Jan 20 2025 Miro Hrončok - 92.3-4 -- Loosen the PyYAML version requirement in python3-avocado-plugins-varianter-yaml-to-mux - -* Mon Jan 20 2025 Cleber Rosa - 92.3-3 -- convert remaining licenses to SPDX - -* Sat Jan 18 2025 Fedora Release Engineering - 92.3-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild - -* Mon Aug 19 2024 Cleber Rosa - 92.3-1 -- Updated to 92.3 -- Support building and running under Python 3.13 for F42 -- Removed patch from 92.1 as its present in 92.3 - -* Fri Jul 26 2024 Miroslav Suchý - 92.1-8 -- convert license to SPDX - -* Fri Jul 19 2024 Fedora Release Engineering - 92.1-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild - -* Fri Jun 07 2024 Python Maint - 92.1-6 -- Rebuilt for Python 3.13 - -* Mon Jan 29 2024 Fedora Release Engineering - 92.1-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Fri Jan 26 2024 Fedora Release Engineering - 92.1-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Sun Jan 21 2024 Fedora Release Engineering - 92.1-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Fri Jul 21 2023 Fedora Release Engineering - 92.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Mon Jul 17 2023 Cleber Rosa - 92.1-1 -- Updated to 92.1 -- Support building and running under Python 3.12 for F39 - -* Wed Jun 14 2023 Python Maint - 92.0-3 -- Rebuilt for Python 3.12 - -* Fri Jan 20 2023 Fedora Release Engineering - 92.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Tue Aug 9 2022 Cleber Rosa - 92.0-1 -- Use selftests/check.py job instead of more limited selftests/run -- Included avocado-runner-sysinfo, avocado-runner-requirement-package, - avocado-runner-requirement-asset and avocado-runner-dry-run and - avocado-runner-golang executables -- Removed avocado-runner-exec executable -- Removed loader_yaml and glib plugin packages - -* Fri Jul 22 2022 Fedora Release Engineering - 82.0-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Tue Jun 21 2022 Python Maint - 82.0-6 -- Rebuilt for Python 3.11 - -* Fri Jan 21 2022 Fedora Release Engineering - 82.0-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Wed Jul 28 2021 Merlin Mathesius - 82.0-4 -- Loosen jinja2 version requirement to fix FTBFS in Rawhide - -* Fri Jul 23 2021 Fedora Release Engineering - 82.0-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Thu Mar 18 2021 Merlin Mathesius - 82.0-2 -- Drop obsolete packages from BuildRequires -- Generate man page directly using 'rst2man' rather than requiring 'make' -- Adjust PATH to make sure self-tests find internal modules -- Spec file cleanup following package review. - -* Mon Sep 14 2020 Cleber Rosa - 82.0-1 -- Sync with upstream release 82.0. -- Removed python libvirt depedency as the vm runner has been removed - upstream -- Dropped configuration files to sync with upstream which made them - optional and doesn't ship them anymore -- Add on extra character to short commit to sync with upstream - -* Sat Jun 6 2020 Cleber Rosa - 80.0-1 -- Sync with upstream release 80.0. -- Dropped use of custom avocado command for tests -- Do not build deprecated runners - -* Tue May 12 2020 Cleber Rosa - 79.0-1 -- Sync with upstream release 79.0. -- Added Python's user base bin dir to the PATH environment variable - while running tests, so that avocado-runner-* scripts can be found -- Moved comment to new lines closing the conditionals, to avoid - errors from rpmlint and rpmbuild - -* Wed Apr 15 2020 Merlin Mathesius - 78.0-1 -- Sync with upstream release 78.0. - -* Tue Mar 17 2020 Merlin Mathesius - 77.0-1 -- Sync with upstream release 77.0. - -* Mon Mar 09 2020 Merlin Mathesius - 76.0-1 -- Sync with upstream release 76.0. - -* Mon Jan 20 2020 Merlin Mathesius - 75.1-1 -- Sync with upstream release 75.1. - -* Mon Dec 23 2019 Merlin Mathesius - 74.0-1 -- Sync with upstream release 74.0. - -* Wed Nov 27 2019 Merlin Mathesius - 73.0-1 -- Sync with upstream release 73.0. -- Adjustments to build for RHEL 8. - -* Wed Oct 02 2019 Merlin Mathesius - 72.0-1 -- Sync with upstream release 72.0. - -* Wed Aug 28 2019 Merlin Mathesius - 71.0-1 -- Sync with upstream release 71.0. - -* Wed Jun 26 2019 Merlin Mathesius - 70.0-1 -- Sync with upstream release 70.0. -- Drop all Python 2 support from SPEC file. - -* Wed May 22 2019 Merlin Mathesius - 69.0-4 -- pyliblzma is Python 2-only and no longer available as of F31. -- Unversioned executables should now be Python 3. - -* Mon May 20 2019 Merlin Mathesius - 69.0-3 -- Drop Python 2 support from F31 and RHEL8 onward. -- Disable components dependent upon Fiber in Fedora 31 and later, - since avocado is currently incompatible with the new Fiber API. - -* Tue Mar 19 2019 Merlin Mathesius - 69.0-2 -- python2-sphinx is no longer available or needed as of F31 - -* Wed Feb 27 2019 Merlin Mathesius - 69.0-1 -- Sync with upstream release 69.0. - -* Fri Feb 22 2019 Merlin Mathesius - 68.0-1 -- Sync with upstream release 68.0. - -* Thu Jan 31 2019 Merlin Mathesius - 67.0-1 -- Sync with upstream release 67.0. -- genisoimage, libcdio, and psmisc added as build deps so iso9660 tests run. -- Replace pystache requirement with jinja2. -- glibc-all-langpacks added as build dep for F30+ so vmimage tests run. -- python2-resultsdb_api package has been removed in F30 so - python2-avocado-plugins-resultsdb was also disabled. - -* Wed Nov 21 2018 Merlin Mathesius - 66.0-1 -- Sync with upstream release 66.0. -- python2-pycdlib package has been removed in F30 as part of - https://fedoraproject.org/wiki/Changes/Mass_Python_2_Package_Removal - -* Thu Oct 04 2018 Merlin Mathesius - 65.0-1 -- Sync with upstream release 65.0. - -* Tue Aug 28 2018 Merlin Mathesius - 64.0-1 -- Sync with upstream release 64.0. - -* Thu Jul 26 2018 Merlin Mathesius - 63.0-2 -- Added missing python[2]-enum34 requirement. - -* Mon Jul 23 2018 Merlin Mathesius - 63.0-1 -- Sync with upstream release 63.0. (BZ#1602175) - Include upstream patches needed to build for Rawhide. - -* Wed Jun 13 2018 Merlin Mathesius - 62.0-1 -- Sync with upstream release 62.0. (BZ#1590572) -- Correct libvirt dependency for EPEL7/RHEL7 - -* Thu May 17 2018 Merlin Mathesius - 61.0-1 -- Sync with upstream release 61.0. -- Packaging updates for Python 3. -- Reorganize SPEC file. - -* Mon Apr 9 2018 Cleber Rosa - 52.1-2 -- Added Fedora CI tests - -* Tue Apr 03 2018 Merlin Mathesius - 52.1-1 -- Sync with upstream release 52.1 (LTS series). -- Correct deprecated use of unversioned python. - -* Mon Mar 26 2018 Iryna Shcherbina - 52.0-5 -- Update Python 2 dependency declarations to new packaging standards - (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3) - -* Fri Feb 09 2018 Fedora Release Engineering - 52.0-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - -* Wed Aug 09 2017 Merlin Mathesius - 52.0-3 -- Fix FTBFS error by disabling selfcheck producing false failures -- Update SPEC to use pkgname instead of srcname macro where appropriate - -* Thu Jul 27 2017 Fedora Release Engineering - 52.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild - -* Thu Jun 29 2017 Merlin Mathesius - 52.0-1 -- Sync with upstream release 52.0. (BZ#1465409) - -* Wed Jun 14 2017 Merlin Mathesius - 51.0-1 -- Sync with upstream release 51.0. (BZ#1460837) -- Disable selftests when libvirt may not be available. - -* Wed May 17 2017 Merlin Mathesius - 50.0-1 -- Sync with upstream release 50.0. (BZ#1431413) -- Be explicit about selftest level run on check. - -* Tue Apr 25 2017 Merlin Mathesius - 49.0-1 -- Sync with upstream release 49.0. (BZ#1431413) - -* Tue Apr 18 2017 Merlin Mathesius - 48.0-1 -- Sync with upstream release 48.0. (BZ#1431413) -- Allow rel_build macro to be defined outside of the SPEC file. - -* Mon Mar 27 2017 Merlin Mathesius - 47.0-1 -- Sync with upstream release 47.0. -- Enable self-tests during build. -- Add example test to be run by Taskotron. - -* Mon Feb 27 2017 Merlin Mathesius - 46.0-2 -- Incorporate upstream SPEC file changes to split plugins into subpackages. -- Remove obsolete CC-BY-SA license, which went away with the halflings font. - -* Tue Feb 14 2017 Merlin Mathesius - 46.0-1 -- Sync with upstream release 46.0. -- Remove halflings license since font was removed from upstream. -- SPEC updates to easily switch between release and snapshot builds. - -* Sat Feb 11 2017 Fedora Release Engineering - 43.0-8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Tue Jan 10 2017 Merlin Mathesius - 43.0-7 -- SPEC updates to build and install for EPEL. - -* Mon Nov 21 2016 Merlin Mathesius - 43.0-6 -- Initial packaging for Fedora. diff --git a/sources b/sources deleted file mode 100644 index 4a738a2..0000000 --- a/sources +++ /dev/null @@ -1 +0,0 @@ -SHA512 (avocado-92.3.tar.gz) = 97a0c113bc826537a02ebf6efcd7cf49b505a93e5fd9686c3a4c7e70902f2d367f78eb2fb23ddf9253b97f45e27b2e328fd6bd1c420ecbeb59e25e991b29c262 diff --git a/tests/gdbtest.py b/tests/gdbtest.py deleted file mode 100755 index c0cdc55..0000000 --- a/tests/gdbtest.py +++ /dev/null @@ -1,347 +0,0 @@ -import os - -from avocado import Test -from avocado.utils import gdb, genio, process - - -class GdbTest(Test): - - """ - Execute the gdb test - - :avocado: tags=requires_c_compiler - """ - - VALID_CMDS = ["-list-target-features", - "-break-info", - "-break-list", - "-thread-info", - "-stack-info-frame", - "-stack-info-depth"] - - INVALID_CMDS = ["-foobar", - "-magic8ball", - "-find-me-the-bug", - "-auto-debug-it"] - - def setUp(self): - self.return99_binary_path = os.path.join(self.teststmpdir, 'return99') - if not os.path.exists(self.return99_binary_path): - return99_source_path = self.get_data('return99.c') - if return99_source_path is None: - self.cancel('Test is missing data file "return99.c"') - process.system(f'gcc -O0 -g {return99_source_path} -o {self.return99_binary_path}') - - self.segfault_binary_path = os.path.join(self.teststmpdir, 'segfault') - if not os.path.exists(self.segfault_binary_path): - segfault_source_path = self.get_data('segfault.c') - if segfault_source_path is None: - self.cancel('Test is missing data file "segfault.c"') - process.system(f'gcc -O0 -g {segfault_source_path} -o {self.segfault_binary_path}') - - @staticmethod - def is_process_alive(process): # pylint: disable=W0621 - """ - Checks if a process is still alive - - :param process: a :class:`subprocess.POpen` instance - :type process: :class:`subprocess.POpen` - :returns: True or False - :rtype: bool - """ - return process.poll() is None - - def test_start_exit(self): - """ - Tests execution of multiple GDB instances without any blocking or race - """ - self.log.info("Testing execution of multiple GDB instances") - process_count = 10 - gdb_instances = [] - for i in range(0, process_count): - gdb_instances.append(gdb.GDB()) - - for i in range(0, process_count): - self.assertEqual(gdb_instances[i].exit(), 0) - - def test_existing_commands_raw(self): - """ - Tests the GDB response to commands that exist and to those that do not - """ - g = gdb.GDB() - self.log.info("Testing existing (valid) GDB commands using raw commands") - for cmd in self.VALID_CMDS: - info_cmd = f"-info-gdb-mi-command {cmd[1:]}" - r = g.cmd(info_cmd) - self.assertEqual(r.result.result.command.exists, 'true') - - self.log.info("Testing non-existing (invalid) GDB commands using raw " - "commands") - for cmd in self.INVALID_CMDS: - info_cmd = f"-info-gdb-mi-command {cmd[1:]}" - r = g.cmd(info_cmd) - self.assertEqual(r.result.result.command.exists, 'false') - - def test_existing_commands(self): - g = gdb.GDB() - - self.log.info("Testing existing (valid) GDB commands using utility " - "methods") - for cmd in self.VALID_CMDS: - self.assertTrue(g.cmd_exists(cmd)) - g.cmd(cmd) - - self.log.info("Testing non-existing (invalid) GDB commands using " - "utility methods") - for cmd in self.INVALID_CMDS: - self.assertFalse(g.cmd_exists(cmd)) - - def test_load_set_breakpoint_run_exit_raw(self): - """ - Test a common GDB cycle using raw commands: load, set break, run, exit - """ - self.log.info("Testing that GDB loads a file and sets a breakpoint") - g = gdb.GDB() - - file_cmd = f"-file-exec-and-symbols {self.return99_binary_path}" - r = g.cmd(file_cmd) - self.assertEqual(r.result.class_, 'done') - - break_cmd = "-break-insert 5" - r = g.cmd(break_cmd) - self.assertEqual(r.result.class_, 'done') - self.assertEqual(r.result.result.bkpt.number, '1') - self.assertEqual(r.result.result.bkpt.enabled, 'y') - - break_del_cmd = "-break-delete 1" - r = g.cmd(break_del_cmd) - self.assertEqual(r.result.class_, 'done') - - run_cmd = "-exec-run" - r = g.cmd(run_cmd) - self.assertEqual(r.result.class_, 'running') - - g.cmd("-gdb-exit") - self.assertEqual(g.process.wait(), 0) - - def test_load_set_breakpoint_run_exit(self): - """ - Test a common GDB cycle: load, set break, delete break, run, exit - """ - self.log.info("Testing a common GDB cycle") - g = gdb.GDB() - g.set_file(self.return99_binary_path) - g.set_break("5") - g.del_break(1) - g.run() - g.exit() - - def test_generate_core(self): - """ - Load a file that will cause a segfault and produce a core dump - """ - self.log.info("Testing that a core dump will be generated") - - g = gdb.GDB() - file_cmd = f"-file-exec-and-symbols {self.segfault_binary_path}" - r = g.cmd(file_cmd) - self.assertEqual(r.result.class_, 'done') - - run_cmd = "-exec-run" - r = g.cmd(run_cmd) - self.assertEqual(r.result.class_, 'running') - - other_messages = g.read_until_break() - core_path = None - for msg in other_messages: - parsed_msg = gdb.parse_mi(msg.decode()) - if (hasattr(parsed_msg, 'class_') and - (parsed_msg.class_ == 'stopped') and - (parsed_msg.result.signal_name == 'SIGSEGV')): - core_path = f"{self.segfault_binary_path}.core" - gcore_cmd = f'gcore {core_path}' - gcore_cmd = gdb.encode_mi_cli(gcore_cmd) - r = g.cmd(gcore_cmd) - self.assertEqual(r.result.class_, 'done') - - self.assertTrue(os.path.exists(core_path)) - g.exit() - - def test_set_multiple_break(self): - """ - Tests that multiple breakpoints do not interfere with each other - """ - self.log.info("Testing setting multiple breakpoints") - g = gdb.GDB() - g.set_file(self.return99_binary_path) - g.set_break('empty') - g.set_break('7') - g.exit() - - def test_disconnect_raw(self): - """ - Connect/disconnect repeatedly from a remote debugger using raw commands - """ - self.log.info("Testing connecting and disconnecting repeatedly using " - "raw commands") - s = gdb.GDBServer() - g = gdb.GDB() - - # Do 100 cycle of target (kind of connects) and disconnects - for _ in range(0, 100): - cmd = f'-target-select extended-remote :{s.port}' - r = g.cmd(cmd) - self.assertEqual(r.result.class_, 'connected') - r = g.cmd('-target-disconnect') - self.assertEqual(r.result.class_, 'done') - - # manual server shutdown - cmd = f'-target-select extended-remote :{s.port}' - r = g.cmd(cmd) - self.assertEqual(r.result.class_, 'connected') - r = g.cli_cmd('monitor exit') - self.assertEqual(r.result.class_, 'done') - - g.exit() - s.exit() - - def test_disconnect(self): - """ - Connect/disconnect repeatedly from a remote debugger using utilities - """ - self.log.info("Testing connecting and disconnecting repeatedly") - s = gdb.GDBServer() - g = gdb.GDB() - - for _ in range(0, 100): - r = g.connect(s.port) - self.assertEqual(r.result.class_, 'connected') - r = g.disconnect() - self.assertEqual(r.result.class_, 'done') - - g.exit() - s.exit() - - def test_remote_exec(self): - """ - Tests execution on a remote target - """ - self.log.info("Testing execution on a remote target") - hit_breakpoint = False - - s = gdb.GDBServer() - g = gdb.GDB() - - cmd = f'-file-exec-and-symbols {self.return99_binary_path}' - r = g.cmd(cmd) - self.assertEqual(r.result.class_, 'done') - - cmd = f'set remote exec-file {self.return99_binary_path}' - r = g.cmd(cmd) - self.assertEqual(r.result.class_, 'done') - - cmd = f"-break-insert {'main'}" - r = g.cmd(cmd) - self.assertEqual(r.result.class_, 'done') - - r = g.cmd('-exec-run') - - other_messages = g.read_until_break() - for msg in other_messages: - parsed_msg = gdb.parse_mi(msg.decode()) - if (hasattr(parsed_msg, 'class_') and - parsed_msg.class_ == 'stopped' and - parsed_msg.result.reason == 'breakpoint-hit'): - hit_breakpoint = True - - self.assertTrue(hit_breakpoint) - g.exit() - s.exit() - - def test_stream_messages(self): - """ - Tests if the expected response appears in the result stream messages - """ - self.log.info("Testing that messages appears in the result stream") - g = gdb.GDB() - r = g.cmd("-gdb-version") - self.assertIn("GNU GPL version", r.get_stream_messages_text()) - - def test_connect_multiple_clients(self): - """ - Tests two or more connections to the same server raise an exception - """ - self.log.info("Testing that multiple clients cannot connect at once") - s = gdb.GDBServer() - c1 = gdb.GDB() - c1.connect(s.port) - c2 = gdb.GDB() - with self.assertRaises(gdb.UnexpectedResponseError): - c2.connect(s.port) - s.exit() - - def test_server_exit(self): - """ - Tests that the server is shutdown by using a monitor exit command - """ - self.log.info("Testing that a single server exits cleanly") - s = gdb.GDBServer() - s.exit() - self.assertFalse(self.is_process_alive(s.process)) - - def test_multiple_servers(self): - """ - Tests multiple server instances without any blocking or race condition - """ - self.log.info("Testing execution of multiple GDB server instances") - process_count = 10 - server_instances = [] - for i in range(0, process_count): - s = gdb.GDBServer() - c = gdb.GDB() - c.connect(s.port) - c.cmd('show-version') - c.disconnect() - server_instances.append(s) - - for i in range(0, process_count): - self.assertTrue(self.is_process_alive(server_instances[i].process)) - server_instances[i].exit() - self.assertFalse(self.is_process_alive(server_instances[i].process)) - - def test_server_stderr(self): - self.log.info('Testing server stderr collection') - s = gdb.GDBServer() - s.exit() - self.assertTrue(os.path.exists(s.stderr_path)) - - stderr_lines = genio.read_all_lines(s.stderr_path) - listening_line = f"Listening on port {s.port}" - self.assertIn(listening_line, stderr_lines) - - def test_server_stdout(self): - self.log.info('Testing server stdout/stderr collection') - s = gdb.GDBServer() - c = gdb.GDB() - c.connect(s.port) - c.set_file(self.return99_binary_path) - c.run() - s.exit() - - self.assertTrue(os.path.exists(s.stdout_path)) - self.assertTrue(os.path.exists(s.stderr_path)) - - stdout_lines = genio.read_all_lines(s.stdout_path) - self.assertIn("return 99", stdout_lines) - - @staticmethod - def test_remote(): - """ - Tests GDBRemote interaction with a GDBServer - """ - s = gdb.GDBServer() - r = gdb.GDBRemote('127.0.0.1', s.port) - r.connect() - r.cmd(b"qSupported") - r.cmd(b"qfThreadInfo") - s.exit() diff --git a/tests/gdbtest.py.data/return99.c b/tests/gdbtest.py.data/return99.c deleted file mode 100644 index bf14935..0000000 --- a/tests/gdbtest.py.data/return99.c +++ /dev/null @@ -1,47 +0,0 @@ -#include -#include - -void empty() -{ -} - -void write_stdout() -{ - fprintf(stdout, "testing output to stdout\n"); -} - -void write_stderr() -{ - fprintf(stderr, "testing output to stderr\n"); -} - -int forkme() -{ - int pid; - - pid = fork(); - if (pid != 0) - pid = fork(); - if (pid != 0) - pid = fork(); - - return pid; -} - -int main(int argc, char *argv[]) -{ - int exit_status = 99; - - if (argc > 1) - exit_status = atoi(argv[1]); - - empty(); - write_stdout(); - write_stderr(); - - if (forkme()) { - fprintf(stdout, "return %i\n", exit_status); - } - - return exit_status; -} diff --git a/tests/gdbtest.py.data/segfault.c b/tests/gdbtest.py.data/segfault.c deleted file mode 100644 index a685f86..0000000 --- a/tests/gdbtest.py.data/segfault.c +++ /dev/null @@ -1,9 +0,0 @@ -#include - -int main() -{ - int *p = NULL; - *p = 0xdead; - - return 0; -} diff --git a/tests/tests.yml b/tests/tests.yml deleted file mode 100644 index 7ff61ce..0000000 --- a/tests/tests.yml +++ /dev/null @@ -1,25 +0,0 @@ -- hosts: localhost - roles: - - role: standard-test-avocado - tests: - - gdbtest.py:GdbTest.test_start_exit - - gdbtest.py:GdbTest.test_existing_commands_raw - - gdbtest.py:GdbTest.test_existing_commands - - gdbtest.py:GdbTest.test_load_set_breakpoint_run_exit_raw - - gdbtest.py:GdbTest.test_load_set_breakpoint_run_exit - - gdbtest.py:GdbTest.test_generate_core - - gdbtest.py:GdbTest.test_set_multiple_break - - gdbtest.py:GdbTest.test_disconnect_raw - - gdbtest.py:GdbTest.test_disconnect - - gdbtest.py:GdbTest.test_remote_exec - - gdbtest.py:GdbTest.test_stream_messages - - gdbtest.py:GdbTest.test_connect_multiple_clients - - gdbtest.py:GdbTest.test_server_exit - - gdbtest.py:GdbTest.test_multiple_servers - - gdbtest.py:GdbTest.test_server_stderr - - gdbtest.py:GdbTest.test_server_stdout - - gdbtest.py:GdbTest.test_remote - required_packages: - - gcc - - gdb - - gdb-gdbserver From 947ceab00c742a35169285d6466f46f7c2b2b4c2 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 28 Aug 2025 06:18:04 +0000 Subject: [PATCH 52/57] Unretirement request: pagure.io/releng/issue/12907 Revert "Retired: Fails to install: https://pagure.io/releng/issue/12871" This reverts commit a12e378e73f22824d667a46028563c98bc0cc50b. Signed-off-by: Fedora Release Engineering --- .gitignore | 34 ++ dead.package | 1 - python-avocado.spec | 699 +++++++++++++++++++++++++++++++ sources | 1 + tests/gdbtest.py | 347 +++++++++++++++ tests/gdbtest.py.data/return99.c | 47 +++ tests/gdbtest.py.data/segfault.c | 9 + tests/tests.yml | 25 ++ 8 files changed, 1162 insertions(+), 1 deletion(-) create mode 100644 .gitignore delete mode 100644 dead.package create mode 100644 python-avocado.spec create mode 100644 sources create mode 100755 tests/gdbtest.py create mode 100644 tests/gdbtest.py.data/return99.c create mode 100644 tests/gdbtest.py.data/segfault.c create mode 100644 tests/tests.yml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..bd8b053 --- /dev/null +++ b/.gitignore @@ -0,0 +1,34 @@ +/avocado-43.0.tar.gz +/avocado-46.0.tar.gz +/avocado-47.0.tar.gz +/avocado-48.0.tar.gz +/avocado-49.0.tar.gz +/avocado-50.0.tar.gz +/avocado-51.0.tar.gz +/avocado-52.0.tar.gz +/avocado-52.1.tar.gz +/avocado-61.0.tar.gz +/avocado-62.0.tar.gz +/avocado-63.0.tar.gz +/avocado-64.0.tar.gz +/avocado-65.0.tar.gz +/avocado-66.0.tar.gz +/avocado-67.0.tar.gz +/avocado-68.0.tar.gz +/avocado-69.0.tar.gz +/avocado-70.0.tar.gz +/avocado-71.0.tar.gz +/avocado-72.0.tar.gz +/avocado-73.0.tar.gz +/avocado-74.0.tar.gz +/avocado-75.1.tar.gz +/avocado-76.0.tar.gz +/avocado-77.0.tar.gz +/avocado-78.0.tar.gz +/avocado-79.0.tar.gz +/avocado-80.0.tar.gz +/avocado-82.0.tar.gz +/avocado-92.0.tar.gz +/avocado-92.1.tar.gz +/avocado-92.1-python312.patch +/avocado-92.3.tar.gz diff --git a/dead.package b/dead.package deleted file mode 100644 index 37f0d8e..0000000 --- a/dead.package +++ /dev/null @@ -1 +0,0 @@ -Retired: Fails to install: https://pagure.io/releng/issue/12871 diff --git a/python-avocado.spec b/python-avocado.spec new file mode 100644 index 0000000..4c1803a --- /dev/null +++ b/python-avocado.spec @@ -0,0 +1,699 @@ +# Conditional for release vs. snapshot builds. Set to 1 for release build. +%if ! 0%{?rel_build:1} + %global rel_build 1 +%endif + +# Settings used for build from snapshots. +%if 0%{?rel_build} + %global gitref %{version} + %global gittar avocado-%{version}.tar.gz +%else + %if ! 0%{?commit:1} + %global commit 5b21f030001d6eed69c0357cc45b6128c73dc860 + %endif + %if ! 0%{?commit_date:1} + %global commit_date 20240819 + %endif + %global shortcommit %(c=%{commit};echo ${c:0:9}) + %global gitrel .%{commit_date}git%{shortcommit} + %global gitref %{commit} + %global gittar avocado-%{shortcommit}.tar.gz +%endif + +# Selftests are provided but may need to be skipped because many of +# the functional tests are time and resource sensitive and can +# cause race conditions and random build failures. They are +# enabled by default. +%global with_tests 1 + +# resultsdb is not available for RHEL +%if ! 0%{?rhel} +%global with_resultsdb 1 +%else +%global with_resultsdb 0 +%endif + +Name: python-avocado +Version: 92.3 +Release: 6%{?gitrel}%{?dist} +Summary: Framework with tools and libraries for Automated Testing +# Found licenses: +# avocado/core/tapparser.py: MIT +# avocado/utils/external/gdbmi_parser.py: MIT +# avocado/utils/external/spark.py: MIT +# optional_plugins/html/avocado_result_html/templates/bootstrap.min.css: MIT +# optional_plugins/html/avocado_result_html/templates/bootstrap.min.js: MIT +# selftests/.data/jenkins-junit.xsd: MIT +# Other files: GPLv2 and GPLv2+ +License: GPL-2.0-or-later AND GPL-2.0-only AND MIT +URL: https://avocado-framework.github.io/ +Source0: https://github.com/avocado-framework/avocado/archive/%{gitref}/%{gittar} +BuildArch: noarch + +BuildRequires: kmod +BuildRequires: procps-ng +BuildRequires: python3-devel +BuildRequires: python3-docutils +BuildRequires: python3-jinja2 +BuildRequires: python3-lxml +BuildRequires: python3-psutil +BuildRequires: python3-setuptools +%if %{with_resultsdb} +BuildRequires: python3-resultsdb_api +BuildRequires: python3-pycdlib +%endif + +%if 0%{?with_tests} +BuildRequires: genisoimage +BuildRequires: libcdio +BuildRequires: psmisc +%if ! 0%{?rhel} +BuildRequires: perl-Test-Harness +%endif +BuildRequires: glibc-all-langpacks +BuildRequires: python3-netifaces +BuildRequires: python3-yaml +%endif +# with_tests + +%description +Avocado is a set of tools and libraries (what people call +these days a framework) to perform automated testing. + + +%prep +%setup -q -n avocado-%{gitref} +%if 0%{?rhel} +sed -e "s/'PyYAML>=4.2b2'/'PyYAML>=3.12'/" -i optional_plugins/varianter_yaml_to_mux/setup.py +%endif +# drop unnecessary install requirement +sed -e "s/'markupsafe<2.0.0', //" -i optional_plugins/html/setup.py +# loosen jinja2 version requirement +sed -e "s/'jinja2<3.0.0'/'jinja2'/" -i optional_plugins/html/setup.py +# loosen pyyaml version requirement +sed -e "s/'PyYAML>=4.2b2,<6.0.2'/'PyYAML>=4.2b2'/" -i optional_plugins/varianter_yaml_to_mux/setup.py + +%build +%py3_build +pushd optional_plugins/html + %py3_build +popd +%if %{with_resultsdb} +pushd optional_plugins/resultsdb + %py3_build +popd +%endif +pushd optional_plugins/varianter_yaml_to_mux + %py3_build +popd +pushd optional_plugins/golang + %py3_build +popd +pushd optional_plugins/varianter_pict + %py3_build +popd +pushd optional_plugins/varianter_cit + %py3_build +popd +pushd optional_plugins/result_upload + %py3_build +popd +rst2man man/avocado.rst man/avocado.1 + +%install +%py3_install +for exe in \ + avocado \ + avocado-runner \ + avocado-runner-noop \ + avocado-runner-dry-run \ + avocado-runner-exec-test \ + avocado-runner-python-unittest \ + avocado-runner-avocado-instrumented \ + avocado-runner-tap \ + avocado-runner-requirement-asset \ + avocado-runner-requirement-package \ + avocado-runner-sysinfo \ + avocado-software-manager +do + mv %{buildroot}%{_bindir}/$exe %{buildroot}%{_bindir}/$exe-%{python3_version} + ln -s $exe-%{python3_version} %{buildroot}%{_bindir}/$exe-3 + ln -s $exe-%{python3_version} %{buildroot}%{_bindir}/$exe +done +# configuration is held at /etc/avocado only and part of the +# python-avocado-common package +rm -rf %{buildroot}%{python3_sitelib}/avocado/etc +# ditto for libexec files +rm -rf %{buildroot}%{python3_sitelib}/avocado/libexec +# adjust permissions for file containing shebang line needed for +# spawning tasks in podman containers +chmod -c +x %{buildroot}%{python3_sitelib}/avocado/core/nrunner.py +pushd optional_plugins/html + %py3_install +popd +%if %{with_resultsdb} +pushd optional_plugins/resultsdb + %py3_install +popd +%endif +pushd optional_plugins/varianter_yaml_to_mux + %py3_install +popd +pushd optional_plugins/golang + %py3_install +popd +pushd optional_plugins/varianter_pict + %py3_install +popd +pushd optional_plugins/varianter_cit + %py3_install +popd +pushd optional_plugins/result_upload + %py3_install +popd +# cleanup plugin test cruft +rm -rf %{buildroot}%{python3_sitelib}/tests +mkdir -p %{buildroot}%{_sysconfdir}/avocado +cp -r avocado/etc/avocado/scripts %{buildroot}%{_sysconfdir}/avocado/scripts +cp -r avocado/etc/avocado/sysinfo %{buildroot}%{_sysconfdir}/avocado/sysinfo +mkdir -p %{buildroot}%{_libexecdir}/avocado +cp avocado/libexec/avocado-bash-utils %{buildroot}%{_libexecdir}/avocado/avocado-bash-utils +cp avocado/libexec/avocado_debug %{buildroot}%{_libexecdir}/avocado/avocado_debug +cp avocado/libexec/avocado_error %{buildroot}%{_libexecdir}/avocado/avocado_error +cp avocado/libexec/avocado_info %{buildroot}%{_libexecdir}/avocado/avocado_info +cp avocado/libexec/avocado_warn %{buildroot}%{_libexecdir}/avocado/avocado_warn +mkdir -p %{buildroot}%{_mandir}/man1 +install -m 0644 man/avocado.1 %{buildroot}%{_mandir}/man1/avocado.1 +mkdir -p %{buildroot}%{_pkgdocdir} +install -m 0644 README.rst %{buildroot}%{_pkgdocdir} +install -d -m 0755 %{buildroot}%{_sharedstatedir}/avocado/data +# place examples in documentation directory +install -d -m 0755 %{buildroot}%{_docdir}/avocado +cp -r examples/gdb-prerun-scripts %{buildroot}%{_docdir}/avocado/gdb-prerun-scripts +cp -r examples/plugins %{buildroot}%{_docdir}/avocado/plugins +cp -r examples/tests %{buildroot}%{_docdir}/avocado/tests +cp -r examples/varianter_cit %{buildroot}%{_docdir}/avocado/varianter_cit +cp -r examples/varianter_pict %{buildroot}%{_docdir}/avocado/varianter_pict +cp -r examples/wrappers %{buildroot}%{_docdir}/avocado/wrappers +cp -r examples/yaml_to_mux %{buildroot}%{_docdir}/avocado/yaml_to_mux +find %{buildroot}%{_docdir}/avocado -type f -name '*.py' -exec chmod -c -x {} ';' + + +%if 0%{?with_tests} +%check + # LANG: to make the results predictable, we pin the language + # that is used during test execution. + # AVOCADO_CHECK_LEVEL: package build environments have the least + # amount of resources we have observed so far. Let's avoid tests that + # require too much resources or are time sensitive + PATH=%{buildroot}%{_bindir}:%{buildroot}%{_libexecdir}/avocado:$PATH \ + PYTHONPATH=%{buildroot}%{python3_sitelib}:. \ + LANG=en_US.UTF-8 \ + AVOCADO_CHECK_LEVEL=0 \ + %{python3} selftests/check.py --job-api --nrunner-interface \ + --unit --jobs --functional --optional-plugins \ + --disable-plugin-checks robot +%endif + + +%package -n python3-avocado +Summary: %{summary} +Requires: python-avocado-common == %{version}-%{release} +Requires: gdb +Requires: gdb-gdbserver +Requires: procps-ng +%if ! 0%{?rhel} +Requires: python3-pycdlib +%endif + +%description -n python3-avocado +Avocado is a set of tools and libraries (what people call +these days a framework) to perform automated testing. + +%files -n python3-avocado +%license LICENSE +%{_pkgdocdir}/README.rst +%{python3_sitelib}/avocado/ +%{python3_sitelib}/avocado_framework-%{version}-py%{python3_version}.egg-info +%{_bindir}/avocado-%{python3_version} +%{_bindir}/avocado-3 +%{_bindir}/avocado +%{_bindir}/avocado-runner-%{python3_version} +%{_bindir}/avocado-runner-3 +%{_bindir}/avocado-runner +%{_bindir}/avocado-runner-noop-%{python3_version} +%{_bindir}/avocado-runner-noop-3 +%{_bindir}/avocado-runner-noop +%{_bindir}/avocado-runner-dry-run-%{python3_version} +%{_bindir}/avocado-runner-dry-run-3 +%{_bindir}/avocado-runner-dry-run +%{_bindir}/avocado-runner-exec-test-%{python3_version} +%{_bindir}/avocado-runner-exec-test-3 +%{_bindir}/avocado-runner-exec-test +%{_bindir}/avocado-runner-python-unittest-%{python3_version} +%{_bindir}/avocado-runner-python-unittest-3 +%{_bindir}/avocado-runner-python-unittest +%{_bindir}/avocado-runner-avocado-instrumented-%{python3_version} +%{_bindir}/avocado-runner-avocado-instrumented-3 +%{_bindir}/avocado-runner-avocado-instrumented +%{_bindir}/avocado-runner-tap-%{python3_version} +%{_bindir}/avocado-runner-tap-3 +%{_bindir}/avocado-runner-tap +%{_bindir}/avocado-runner-requirement-asset-%{python3_version} +%{_bindir}/avocado-runner-requirement-asset-3 +%{_bindir}/avocado-runner-requirement-asset +%{_bindir}/avocado-runner-requirement-package-%{python3_version} +%{_bindir}/avocado-runner-requirement-package-3 +%{_bindir}/avocado-runner-requirement-package +%{_bindir}/avocado-runner-sysinfo-%{python3_version} +%{_bindir}/avocado-runner-sysinfo-3 +%{_bindir}/avocado-runner-sysinfo +%{_bindir}/avocado-software-manager-%{python3_version} +%{_bindir}/avocado-software-manager-3 +%{_bindir}/avocado-software-manager + + +%package -n python-avocado-common +Summary: Avocado common files +# Automatically converted from old format: GPLv2+ - review is highly recommended. +License: GPL-2.0-or-later + +%description -n python-avocado-common +Common files (such as configuration) for the Avocado Testing Framework. + +%files -n python-avocado-common +%license LICENSE +%{_mandir}/man1/avocado.1.gz +%dir %{_docdir}/avocado +%dir %{_sharedstatedir}/avocado +%dir %{_sysconfdir}/avocado +%dir %{_sysconfdir}/avocado/sysinfo +%dir %{_sysconfdir}/avocado/scripts +%dir %{_sysconfdir}/avocado/scripts/job +%dir %{_sysconfdir}/avocado/scripts/job/pre.d +%dir %{_sysconfdir}/avocado/scripts/job/post.d +%config(noreplace) %{_sysconfdir}/avocado/sysinfo/commands +%config(noreplace) %{_sysconfdir}/avocado/sysinfo/files +%config(noreplace) %{_sysconfdir}/avocado/sysinfo/profilers +%{_sysconfdir}/avocado/scripts/job/pre.d/README +%{_sysconfdir}/avocado/scripts/job/post.d/README + + +%package -n python3-avocado-plugins-output-html +Summary: Avocado HTML report plugin +License: GPL-2.0-or-later AND MIT +Requires: python3-avocado == %{version}-%{release} + +%description -n python3-avocado-plugins-output-html +Adds to avocado the ability to generate an HTML report at every job results +directory. It also gives the user the ability to write a report on an +arbitrary filesystem location. + +%files -n python3-avocado-plugins-output-html +%{python3_sitelib}/avocado_result_html/ +%{python3_sitelib}/avocado_framework_plugin_result_html-%{version}-py%{python3_version}.egg-info + + +%if %{with_resultsdb} +%package -n python3-avocado-plugins-resultsdb +Summary: Avocado plugin to propagate job results to ResultsDB +# Automatically converted from old format: GPLv2+ - review is highly recommended. +License: GPL-2.0-or-later +Requires: python3-avocado == %{version}-%{release} + +%description -n python3-avocado-plugins-resultsdb +Allows Avocado to send job results directly to a ResultsDB +server. + +%files -n python3-avocado-plugins-resultsdb +%{python3_sitelib}/avocado_resultsdb/ +%{python3_sitelib}/avocado_framework_plugin_resultsdb-%{version}-py%{python3_version}.egg-info +%endif +# with_resultsdb + + +%package -n python3-avocado-plugins-varianter-yaml-to-mux +Summary: Avocado plugin to generate variants out of yaml files +# Automatically converted from old format: GPLv2+ - review is highly recommended. +License: GPL-2.0-or-later +Requires: python3-avocado == %{version}-%{release} + +%description -n python3-avocado-plugins-varianter-yaml-to-mux +Can be used to produce multiple test variants with test parameters +defined in a yaml file(s). + +%files -n python3-avocado-plugins-varianter-yaml-to-mux +%{python3_sitelib}/avocado_varianter_yaml_to_mux/ +%{python3_sitelib}/avocado_framework_plugin_varianter_yaml_to_mux-%{version}-py%{python3_version}.egg-info + + +%package -n python3-avocado-plugins-golang +Summary: Avocado plugin for execution of golang tests +# Automatically converted from old format: GPLv2+ - review is highly recommended. +License: GPL-2.0-or-later +Requires: python3-avocado == %{version}-%{release} +Requires: golang + +%description -n python3-avocado-plugins-golang +Allows Avocado to list golang tests, and if golang is installed, +also run them. + +%files -n python3-avocado-plugins-golang +%{python3_sitelib}/avocado_golang/ +%{python3_sitelib}/avocado_framework_plugin_golang-%{version}-py%{python3_version}.egg-info +%{_bindir}/avocado-runner-golang + + +%package -n python3-avocado-plugins-varianter-pict +Summary: Varianter with combinatorial capabilities by PICT +# Automatically converted from old format: GPLv2+ - review is highly recommended. +License: GPL-2.0-or-later +Requires: python3-avocado == %{version}-%{release} + +%description -n python3-avocado-plugins-varianter-pict +This plugin uses a third-party tool to provide variants created by +Pair-Wise algorithms, also known as Combinatorial Independent Testing. + +%files -n python3-avocado-plugins-varianter-pict +%{python3_sitelib}/avocado_varianter_pict/ +%{python3_sitelib}/avocado_framework_plugin_varianter_pict-%{version}-py%{python3_version}.egg-info + + +%package -n python3-avocado-plugins-varianter-cit +Summary: Varianter with Combinatorial Independent Testing capabilities +# Automatically converted from old format: GPLv2+ - review is highly recommended. +License: GPL-2.0-or-later +Requires: python3-avocado == %{version}-%{release} + +%description -n python3-avocado-plugins-varianter-cit +A varianter plugin that generates variants using Combinatorial +Independent Testing (AKA Pair-Wise) algorithm developed in +collaboration with CVUT Prague. + +%files -n python3-avocado-plugins-varianter-cit +%{python3_sitelib}/avocado_varianter_cit/ +%{python3_sitelib}/avocado_framework_plugin_varianter_cit-%{version}-py%{python3_version}.egg-info + + +%package -n python3-avocado-plugins-result-upload +Summary: Avocado plugin propagate job results to a remote host +# Automatically converted from old format: GPLv2+ - review is highly recommended. +License: GPL-2.0-or-later +Requires: python3-avocado == %{version}-%{release} + +%description -n python3-avocado-plugins-result-upload +This optional plugin is intended to upload the Avocado Job results to +a dedicated sever. + +%files -n python3-avocado-plugins-result-upload +%{python3_sitelib}/avocado_result_upload/ +%{python3_sitelib}/avocado_framework_plugin_result_upload-%{version}-py%{python3_version}.egg-info + + +%package -n python-avocado-examples +Summary: Avocado Test Framework Example Tests +# Automatically converted from old format: GPLv2+ - review is highly recommended. +License: GPL-2.0-or-later +# documentation does not require main package, but needs to be in lock-step if present +Conflicts: python3-avocado < %{version}-%{release}, python3-avocado > %{version}-%{release} + +%description -n python-avocado-examples +The set of example tests present in the upstream tree of the Avocado framework. +Some of them are used as functional tests of the framework, others serve as +examples of how to write tests on your own. + +%files -n python-avocado-examples +%license LICENSE +%dir %{_docdir}/avocado +%{_docdir}/avocado/gdb-prerun-scripts +%{_docdir}/avocado/plugins +%{_docdir}/avocado/tests +%{_docdir}/avocado/varianter_cit +%{_docdir}/avocado/varianter_pict +%{_docdir}/avocado/wrappers +%{_docdir}/avocado/yaml_to_mux + + +%package -n python-avocado-bash +Summary: Avocado Test Framework Bash Utilities +License: GPL-2.0-or-later AND GPL-2.0-only +Requires: python-avocado-common == %{version}-%{release} + +%description -n python-avocado-bash +A small set of utilities to interact with Avocado from the Bourne +Again Shell code (and possibly other similar shells). + +%files -n python-avocado-bash +%license LICENSE +%dir %{_libexecdir}/avocado +%{_libexecdir}/avocado/avocado-bash-utils +%{_libexecdir}/avocado/avocado_debug +%{_libexecdir}/avocado/avocado_error +%{_libexecdir}/avocado/avocado_info +%{_libexecdir}/avocado/avocado_warn + + +%changelog +* Fri Jul 25 2025 Fedora Release Engineering - 92.3-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Tue Jun 03 2025 Python Maint - 92.3-5 +- Rebuilt for Python 3.14 + +* Mon Jan 20 2025 Miro Hrončok - 92.3-4 +- Loosen the PyYAML version requirement in python3-avocado-plugins-varianter-yaml-to-mux + +* Mon Jan 20 2025 Cleber Rosa - 92.3-3 +- convert remaining licenses to SPDX + +* Sat Jan 18 2025 Fedora Release Engineering - 92.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Mon Aug 19 2024 Cleber Rosa - 92.3-1 +- Updated to 92.3 +- Support building and running under Python 3.13 for F42 +- Removed patch from 92.1 as its present in 92.3 + +* Fri Jul 26 2024 Miroslav Suchý - 92.1-8 +- convert license to SPDX + +* Fri Jul 19 2024 Fedora Release Engineering - 92.1-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Fri Jun 07 2024 Python Maint - 92.1-6 +- Rebuilt for Python 3.13 + +* Mon Jan 29 2024 Fedora Release Engineering - 92.1-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Jan 26 2024 Fedora Release Engineering - 92.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sun Jan 21 2024 Fedora Release Engineering - 92.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Jul 21 2023 Fedora Release Engineering - 92.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Mon Jul 17 2023 Cleber Rosa - 92.1-1 +- Updated to 92.1 +- Support building and running under Python 3.12 for F39 + +* Wed Jun 14 2023 Python Maint - 92.0-3 +- Rebuilt for Python 3.12 + +* Fri Jan 20 2023 Fedora Release Engineering - 92.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Tue Aug 9 2022 Cleber Rosa - 92.0-1 +- Use selftests/check.py job instead of more limited selftests/run +- Included avocado-runner-sysinfo, avocado-runner-requirement-package, + avocado-runner-requirement-asset and avocado-runner-dry-run and + avocado-runner-golang executables +- Removed avocado-runner-exec executable +- Removed loader_yaml and glib plugin packages + +* Fri Jul 22 2022 Fedora Release Engineering - 82.0-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Tue Jun 21 2022 Python Maint - 82.0-6 +- Rebuilt for Python 3.11 + +* Fri Jan 21 2022 Fedora Release Engineering - 82.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Wed Jul 28 2021 Merlin Mathesius - 82.0-4 +- Loosen jinja2 version requirement to fix FTBFS in Rawhide + +* Fri Jul 23 2021 Fedora Release Engineering - 82.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Thu Mar 18 2021 Merlin Mathesius - 82.0-2 +- Drop obsolete packages from BuildRequires +- Generate man page directly using 'rst2man' rather than requiring 'make' +- Adjust PATH to make sure self-tests find internal modules +- Spec file cleanup following package review. + +* Mon Sep 14 2020 Cleber Rosa - 82.0-1 +- Sync with upstream release 82.0. +- Removed python libvirt depedency as the vm runner has been removed + upstream +- Dropped configuration files to sync with upstream which made them + optional and doesn't ship them anymore +- Add on extra character to short commit to sync with upstream + +* Sat Jun 6 2020 Cleber Rosa - 80.0-1 +- Sync with upstream release 80.0. +- Dropped use of custom avocado command for tests +- Do not build deprecated runners + +* Tue May 12 2020 Cleber Rosa - 79.0-1 +- Sync with upstream release 79.0. +- Added Python's user base bin dir to the PATH environment variable + while running tests, so that avocado-runner-* scripts can be found +- Moved comment to new lines closing the conditionals, to avoid + errors from rpmlint and rpmbuild + +* Wed Apr 15 2020 Merlin Mathesius - 78.0-1 +- Sync with upstream release 78.0. + +* Tue Mar 17 2020 Merlin Mathesius - 77.0-1 +- Sync with upstream release 77.0. + +* Mon Mar 09 2020 Merlin Mathesius - 76.0-1 +- Sync with upstream release 76.0. + +* Mon Jan 20 2020 Merlin Mathesius - 75.1-1 +- Sync with upstream release 75.1. + +* Mon Dec 23 2019 Merlin Mathesius - 74.0-1 +- Sync with upstream release 74.0. + +* Wed Nov 27 2019 Merlin Mathesius - 73.0-1 +- Sync with upstream release 73.0. +- Adjustments to build for RHEL 8. + +* Wed Oct 02 2019 Merlin Mathesius - 72.0-1 +- Sync with upstream release 72.0. + +* Wed Aug 28 2019 Merlin Mathesius - 71.0-1 +- Sync with upstream release 71.0. + +* Wed Jun 26 2019 Merlin Mathesius - 70.0-1 +- Sync with upstream release 70.0. +- Drop all Python 2 support from SPEC file. + +* Wed May 22 2019 Merlin Mathesius - 69.0-4 +- pyliblzma is Python 2-only and no longer available as of F31. +- Unversioned executables should now be Python 3. + +* Mon May 20 2019 Merlin Mathesius - 69.0-3 +- Drop Python 2 support from F31 and RHEL8 onward. +- Disable components dependent upon Fiber in Fedora 31 and later, + since avocado is currently incompatible with the new Fiber API. + +* Tue Mar 19 2019 Merlin Mathesius - 69.0-2 +- python2-sphinx is no longer available or needed as of F31 + +* Wed Feb 27 2019 Merlin Mathesius - 69.0-1 +- Sync with upstream release 69.0. + +* Fri Feb 22 2019 Merlin Mathesius - 68.0-1 +- Sync with upstream release 68.0. + +* Thu Jan 31 2019 Merlin Mathesius - 67.0-1 +- Sync with upstream release 67.0. +- genisoimage, libcdio, and psmisc added as build deps so iso9660 tests run. +- Replace pystache requirement with jinja2. +- glibc-all-langpacks added as build dep for F30+ so vmimage tests run. +- python2-resultsdb_api package has been removed in F30 so + python2-avocado-plugins-resultsdb was also disabled. + +* Wed Nov 21 2018 Merlin Mathesius - 66.0-1 +- Sync with upstream release 66.0. +- python2-pycdlib package has been removed in F30 as part of + https://fedoraproject.org/wiki/Changes/Mass_Python_2_Package_Removal + +* Thu Oct 04 2018 Merlin Mathesius - 65.0-1 +- Sync with upstream release 65.0. + +* Tue Aug 28 2018 Merlin Mathesius - 64.0-1 +- Sync with upstream release 64.0. + +* Thu Jul 26 2018 Merlin Mathesius - 63.0-2 +- Added missing python[2]-enum34 requirement. + +* Mon Jul 23 2018 Merlin Mathesius - 63.0-1 +- Sync with upstream release 63.0. (BZ#1602175) + Include upstream patches needed to build for Rawhide. + +* Wed Jun 13 2018 Merlin Mathesius - 62.0-1 +- Sync with upstream release 62.0. (BZ#1590572) +- Correct libvirt dependency for EPEL7/RHEL7 + +* Thu May 17 2018 Merlin Mathesius - 61.0-1 +- Sync with upstream release 61.0. +- Packaging updates for Python 3. +- Reorganize SPEC file. + +* Mon Apr 9 2018 Cleber Rosa - 52.1-2 +- Added Fedora CI tests + +* Tue Apr 03 2018 Merlin Mathesius - 52.1-1 +- Sync with upstream release 52.1 (LTS series). +- Correct deprecated use of unversioned python. + +* Mon Mar 26 2018 Iryna Shcherbina - 52.0-5 +- Update Python 2 dependency declarations to new packaging standards + (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3) + +* Fri Feb 09 2018 Fedora Release Engineering - 52.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Wed Aug 09 2017 Merlin Mathesius - 52.0-3 +- Fix FTBFS error by disabling selfcheck producing false failures +- Update SPEC to use pkgname instead of srcname macro where appropriate + +* Thu Jul 27 2017 Fedora Release Engineering - 52.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Thu Jun 29 2017 Merlin Mathesius - 52.0-1 +- Sync with upstream release 52.0. (BZ#1465409) + +* Wed Jun 14 2017 Merlin Mathesius - 51.0-1 +- Sync with upstream release 51.0. (BZ#1460837) +- Disable selftests when libvirt may not be available. + +* Wed May 17 2017 Merlin Mathesius - 50.0-1 +- Sync with upstream release 50.0. (BZ#1431413) +- Be explicit about selftest level run on check. + +* Tue Apr 25 2017 Merlin Mathesius - 49.0-1 +- Sync with upstream release 49.0. (BZ#1431413) + +* Tue Apr 18 2017 Merlin Mathesius - 48.0-1 +- Sync with upstream release 48.0. (BZ#1431413) +- Allow rel_build macro to be defined outside of the SPEC file. + +* Mon Mar 27 2017 Merlin Mathesius - 47.0-1 +- Sync with upstream release 47.0. +- Enable self-tests during build. +- Add example test to be run by Taskotron. + +* Mon Feb 27 2017 Merlin Mathesius - 46.0-2 +- Incorporate upstream SPEC file changes to split plugins into subpackages. +- Remove obsolete CC-BY-SA license, which went away with the halflings font. + +* Tue Feb 14 2017 Merlin Mathesius - 46.0-1 +- Sync with upstream release 46.0. +- Remove halflings license since font was removed from upstream. +- SPEC updates to easily switch between release and snapshot builds. + +* Sat Feb 11 2017 Fedora Release Engineering - 43.0-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Tue Jan 10 2017 Merlin Mathesius - 43.0-7 +- SPEC updates to build and install for EPEL. + +* Mon Nov 21 2016 Merlin Mathesius - 43.0-6 +- Initial packaging for Fedora. diff --git a/sources b/sources new file mode 100644 index 0000000..4a738a2 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (avocado-92.3.tar.gz) = 97a0c113bc826537a02ebf6efcd7cf49b505a93e5fd9686c3a4c7e70902f2d367f78eb2fb23ddf9253b97f45e27b2e328fd6bd1c420ecbeb59e25e991b29c262 diff --git a/tests/gdbtest.py b/tests/gdbtest.py new file mode 100755 index 0000000..c0cdc55 --- /dev/null +++ b/tests/gdbtest.py @@ -0,0 +1,347 @@ +import os + +from avocado import Test +from avocado.utils import gdb, genio, process + + +class GdbTest(Test): + + """ + Execute the gdb test + + :avocado: tags=requires_c_compiler + """ + + VALID_CMDS = ["-list-target-features", + "-break-info", + "-break-list", + "-thread-info", + "-stack-info-frame", + "-stack-info-depth"] + + INVALID_CMDS = ["-foobar", + "-magic8ball", + "-find-me-the-bug", + "-auto-debug-it"] + + def setUp(self): + self.return99_binary_path = os.path.join(self.teststmpdir, 'return99') + if not os.path.exists(self.return99_binary_path): + return99_source_path = self.get_data('return99.c') + if return99_source_path is None: + self.cancel('Test is missing data file "return99.c"') + process.system(f'gcc -O0 -g {return99_source_path} -o {self.return99_binary_path}') + + self.segfault_binary_path = os.path.join(self.teststmpdir, 'segfault') + if not os.path.exists(self.segfault_binary_path): + segfault_source_path = self.get_data('segfault.c') + if segfault_source_path is None: + self.cancel('Test is missing data file "segfault.c"') + process.system(f'gcc -O0 -g {segfault_source_path} -o {self.segfault_binary_path}') + + @staticmethod + def is_process_alive(process): # pylint: disable=W0621 + """ + Checks if a process is still alive + + :param process: a :class:`subprocess.POpen` instance + :type process: :class:`subprocess.POpen` + :returns: True or False + :rtype: bool + """ + return process.poll() is None + + def test_start_exit(self): + """ + Tests execution of multiple GDB instances without any blocking or race + """ + self.log.info("Testing execution of multiple GDB instances") + process_count = 10 + gdb_instances = [] + for i in range(0, process_count): + gdb_instances.append(gdb.GDB()) + + for i in range(0, process_count): + self.assertEqual(gdb_instances[i].exit(), 0) + + def test_existing_commands_raw(self): + """ + Tests the GDB response to commands that exist and to those that do not + """ + g = gdb.GDB() + self.log.info("Testing existing (valid) GDB commands using raw commands") + for cmd in self.VALID_CMDS: + info_cmd = f"-info-gdb-mi-command {cmd[1:]}" + r = g.cmd(info_cmd) + self.assertEqual(r.result.result.command.exists, 'true') + + self.log.info("Testing non-existing (invalid) GDB commands using raw " + "commands") + for cmd in self.INVALID_CMDS: + info_cmd = f"-info-gdb-mi-command {cmd[1:]}" + r = g.cmd(info_cmd) + self.assertEqual(r.result.result.command.exists, 'false') + + def test_existing_commands(self): + g = gdb.GDB() + + self.log.info("Testing existing (valid) GDB commands using utility " + "methods") + for cmd in self.VALID_CMDS: + self.assertTrue(g.cmd_exists(cmd)) + g.cmd(cmd) + + self.log.info("Testing non-existing (invalid) GDB commands using " + "utility methods") + for cmd in self.INVALID_CMDS: + self.assertFalse(g.cmd_exists(cmd)) + + def test_load_set_breakpoint_run_exit_raw(self): + """ + Test a common GDB cycle using raw commands: load, set break, run, exit + """ + self.log.info("Testing that GDB loads a file and sets a breakpoint") + g = gdb.GDB() + + file_cmd = f"-file-exec-and-symbols {self.return99_binary_path}" + r = g.cmd(file_cmd) + self.assertEqual(r.result.class_, 'done') + + break_cmd = "-break-insert 5" + r = g.cmd(break_cmd) + self.assertEqual(r.result.class_, 'done') + self.assertEqual(r.result.result.bkpt.number, '1') + self.assertEqual(r.result.result.bkpt.enabled, 'y') + + break_del_cmd = "-break-delete 1" + r = g.cmd(break_del_cmd) + self.assertEqual(r.result.class_, 'done') + + run_cmd = "-exec-run" + r = g.cmd(run_cmd) + self.assertEqual(r.result.class_, 'running') + + g.cmd("-gdb-exit") + self.assertEqual(g.process.wait(), 0) + + def test_load_set_breakpoint_run_exit(self): + """ + Test a common GDB cycle: load, set break, delete break, run, exit + """ + self.log.info("Testing a common GDB cycle") + g = gdb.GDB() + g.set_file(self.return99_binary_path) + g.set_break("5") + g.del_break(1) + g.run() + g.exit() + + def test_generate_core(self): + """ + Load a file that will cause a segfault and produce a core dump + """ + self.log.info("Testing that a core dump will be generated") + + g = gdb.GDB() + file_cmd = f"-file-exec-and-symbols {self.segfault_binary_path}" + r = g.cmd(file_cmd) + self.assertEqual(r.result.class_, 'done') + + run_cmd = "-exec-run" + r = g.cmd(run_cmd) + self.assertEqual(r.result.class_, 'running') + + other_messages = g.read_until_break() + core_path = None + for msg in other_messages: + parsed_msg = gdb.parse_mi(msg.decode()) + if (hasattr(parsed_msg, 'class_') and + (parsed_msg.class_ == 'stopped') and + (parsed_msg.result.signal_name == 'SIGSEGV')): + core_path = f"{self.segfault_binary_path}.core" + gcore_cmd = f'gcore {core_path}' + gcore_cmd = gdb.encode_mi_cli(gcore_cmd) + r = g.cmd(gcore_cmd) + self.assertEqual(r.result.class_, 'done') + + self.assertTrue(os.path.exists(core_path)) + g.exit() + + def test_set_multiple_break(self): + """ + Tests that multiple breakpoints do not interfere with each other + """ + self.log.info("Testing setting multiple breakpoints") + g = gdb.GDB() + g.set_file(self.return99_binary_path) + g.set_break('empty') + g.set_break('7') + g.exit() + + def test_disconnect_raw(self): + """ + Connect/disconnect repeatedly from a remote debugger using raw commands + """ + self.log.info("Testing connecting and disconnecting repeatedly using " + "raw commands") + s = gdb.GDBServer() + g = gdb.GDB() + + # Do 100 cycle of target (kind of connects) and disconnects + for _ in range(0, 100): + cmd = f'-target-select extended-remote :{s.port}' + r = g.cmd(cmd) + self.assertEqual(r.result.class_, 'connected') + r = g.cmd('-target-disconnect') + self.assertEqual(r.result.class_, 'done') + + # manual server shutdown + cmd = f'-target-select extended-remote :{s.port}' + r = g.cmd(cmd) + self.assertEqual(r.result.class_, 'connected') + r = g.cli_cmd('monitor exit') + self.assertEqual(r.result.class_, 'done') + + g.exit() + s.exit() + + def test_disconnect(self): + """ + Connect/disconnect repeatedly from a remote debugger using utilities + """ + self.log.info("Testing connecting and disconnecting repeatedly") + s = gdb.GDBServer() + g = gdb.GDB() + + for _ in range(0, 100): + r = g.connect(s.port) + self.assertEqual(r.result.class_, 'connected') + r = g.disconnect() + self.assertEqual(r.result.class_, 'done') + + g.exit() + s.exit() + + def test_remote_exec(self): + """ + Tests execution on a remote target + """ + self.log.info("Testing execution on a remote target") + hit_breakpoint = False + + s = gdb.GDBServer() + g = gdb.GDB() + + cmd = f'-file-exec-and-symbols {self.return99_binary_path}' + r = g.cmd(cmd) + self.assertEqual(r.result.class_, 'done') + + cmd = f'set remote exec-file {self.return99_binary_path}' + r = g.cmd(cmd) + self.assertEqual(r.result.class_, 'done') + + cmd = f"-break-insert {'main'}" + r = g.cmd(cmd) + self.assertEqual(r.result.class_, 'done') + + r = g.cmd('-exec-run') + + other_messages = g.read_until_break() + for msg in other_messages: + parsed_msg = gdb.parse_mi(msg.decode()) + if (hasattr(parsed_msg, 'class_') and + parsed_msg.class_ == 'stopped' and + parsed_msg.result.reason == 'breakpoint-hit'): + hit_breakpoint = True + + self.assertTrue(hit_breakpoint) + g.exit() + s.exit() + + def test_stream_messages(self): + """ + Tests if the expected response appears in the result stream messages + """ + self.log.info("Testing that messages appears in the result stream") + g = gdb.GDB() + r = g.cmd("-gdb-version") + self.assertIn("GNU GPL version", r.get_stream_messages_text()) + + def test_connect_multiple_clients(self): + """ + Tests two or more connections to the same server raise an exception + """ + self.log.info("Testing that multiple clients cannot connect at once") + s = gdb.GDBServer() + c1 = gdb.GDB() + c1.connect(s.port) + c2 = gdb.GDB() + with self.assertRaises(gdb.UnexpectedResponseError): + c2.connect(s.port) + s.exit() + + def test_server_exit(self): + """ + Tests that the server is shutdown by using a monitor exit command + """ + self.log.info("Testing that a single server exits cleanly") + s = gdb.GDBServer() + s.exit() + self.assertFalse(self.is_process_alive(s.process)) + + def test_multiple_servers(self): + """ + Tests multiple server instances without any blocking or race condition + """ + self.log.info("Testing execution of multiple GDB server instances") + process_count = 10 + server_instances = [] + for i in range(0, process_count): + s = gdb.GDBServer() + c = gdb.GDB() + c.connect(s.port) + c.cmd('show-version') + c.disconnect() + server_instances.append(s) + + for i in range(0, process_count): + self.assertTrue(self.is_process_alive(server_instances[i].process)) + server_instances[i].exit() + self.assertFalse(self.is_process_alive(server_instances[i].process)) + + def test_server_stderr(self): + self.log.info('Testing server stderr collection') + s = gdb.GDBServer() + s.exit() + self.assertTrue(os.path.exists(s.stderr_path)) + + stderr_lines = genio.read_all_lines(s.stderr_path) + listening_line = f"Listening on port {s.port}" + self.assertIn(listening_line, stderr_lines) + + def test_server_stdout(self): + self.log.info('Testing server stdout/stderr collection') + s = gdb.GDBServer() + c = gdb.GDB() + c.connect(s.port) + c.set_file(self.return99_binary_path) + c.run() + s.exit() + + self.assertTrue(os.path.exists(s.stdout_path)) + self.assertTrue(os.path.exists(s.stderr_path)) + + stdout_lines = genio.read_all_lines(s.stdout_path) + self.assertIn("return 99", stdout_lines) + + @staticmethod + def test_remote(): + """ + Tests GDBRemote interaction with a GDBServer + """ + s = gdb.GDBServer() + r = gdb.GDBRemote('127.0.0.1', s.port) + r.connect() + r.cmd(b"qSupported") + r.cmd(b"qfThreadInfo") + s.exit() diff --git a/tests/gdbtest.py.data/return99.c b/tests/gdbtest.py.data/return99.c new file mode 100644 index 0000000..bf14935 --- /dev/null +++ b/tests/gdbtest.py.data/return99.c @@ -0,0 +1,47 @@ +#include +#include + +void empty() +{ +} + +void write_stdout() +{ + fprintf(stdout, "testing output to stdout\n"); +} + +void write_stderr() +{ + fprintf(stderr, "testing output to stderr\n"); +} + +int forkme() +{ + int pid; + + pid = fork(); + if (pid != 0) + pid = fork(); + if (pid != 0) + pid = fork(); + + return pid; +} + +int main(int argc, char *argv[]) +{ + int exit_status = 99; + + if (argc > 1) + exit_status = atoi(argv[1]); + + empty(); + write_stdout(); + write_stderr(); + + if (forkme()) { + fprintf(stdout, "return %i\n", exit_status); + } + + return exit_status; +} diff --git a/tests/gdbtest.py.data/segfault.c b/tests/gdbtest.py.data/segfault.c new file mode 100644 index 0000000..a685f86 --- /dev/null +++ b/tests/gdbtest.py.data/segfault.c @@ -0,0 +1,9 @@ +#include + +int main() +{ + int *p = NULL; + *p = 0xdead; + + return 0; +} diff --git a/tests/tests.yml b/tests/tests.yml new file mode 100644 index 0000000..7ff61ce --- /dev/null +++ b/tests/tests.yml @@ -0,0 +1,25 @@ +- hosts: localhost + roles: + - role: standard-test-avocado + tests: + - gdbtest.py:GdbTest.test_start_exit + - gdbtest.py:GdbTest.test_existing_commands_raw + - gdbtest.py:GdbTest.test_existing_commands + - gdbtest.py:GdbTest.test_load_set_breakpoint_run_exit_raw + - gdbtest.py:GdbTest.test_load_set_breakpoint_run_exit + - gdbtest.py:GdbTest.test_generate_core + - gdbtest.py:GdbTest.test_set_multiple_break + - gdbtest.py:GdbTest.test_disconnect_raw + - gdbtest.py:GdbTest.test_disconnect + - gdbtest.py:GdbTest.test_remote_exec + - gdbtest.py:GdbTest.test_stream_messages + - gdbtest.py:GdbTest.test_connect_multiple_clients + - gdbtest.py:GdbTest.test_server_exit + - gdbtest.py:GdbTest.test_multiple_servers + - gdbtest.py:GdbTest.test_server_stderr + - gdbtest.py:GdbTest.test_server_stdout + - gdbtest.py:GdbTest.test_remote + required_packages: + - gcc + - gdb + - gdb-gdbserver From e350a6d8232ff6a11ed1240ebeab01c374125592 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Tue, 30 Sep 2025 20:59:45 +0200 Subject: [PATCH 53/57] Retired: Fails to install: https://pagure.io/releng/issue/12969 --- .gitignore | 34 -- dead.package | 1 + python-avocado.spec | 699 ------------------------------- sources | 1 - tests/gdbtest.py | 347 --------------- tests/gdbtest.py.data/return99.c | 47 --- tests/gdbtest.py.data/segfault.c | 9 - tests/tests.yml | 25 -- 8 files changed, 1 insertion(+), 1162 deletions(-) delete mode 100644 .gitignore create mode 100644 dead.package delete mode 100644 python-avocado.spec delete mode 100644 sources delete mode 100755 tests/gdbtest.py delete mode 100644 tests/gdbtest.py.data/return99.c delete mode 100644 tests/gdbtest.py.data/segfault.c delete mode 100644 tests/tests.yml diff --git a/.gitignore b/.gitignore deleted file mode 100644 index bd8b053..0000000 --- a/.gitignore +++ /dev/null @@ -1,34 +0,0 @@ -/avocado-43.0.tar.gz -/avocado-46.0.tar.gz -/avocado-47.0.tar.gz -/avocado-48.0.tar.gz -/avocado-49.0.tar.gz -/avocado-50.0.tar.gz -/avocado-51.0.tar.gz -/avocado-52.0.tar.gz -/avocado-52.1.tar.gz -/avocado-61.0.tar.gz -/avocado-62.0.tar.gz -/avocado-63.0.tar.gz -/avocado-64.0.tar.gz -/avocado-65.0.tar.gz -/avocado-66.0.tar.gz -/avocado-67.0.tar.gz -/avocado-68.0.tar.gz -/avocado-69.0.tar.gz -/avocado-70.0.tar.gz -/avocado-71.0.tar.gz -/avocado-72.0.tar.gz -/avocado-73.0.tar.gz -/avocado-74.0.tar.gz -/avocado-75.1.tar.gz -/avocado-76.0.tar.gz -/avocado-77.0.tar.gz -/avocado-78.0.tar.gz -/avocado-79.0.tar.gz -/avocado-80.0.tar.gz -/avocado-82.0.tar.gz -/avocado-92.0.tar.gz -/avocado-92.1.tar.gz -/avocado-92.1-python312.patch -/avocado-92.3.tar.gz diff --git a/dead.package b/dead.package new file mode 100644 index 0000000..505b74d --- /dev/null +++ b/dead.package @@ -0,0 +1 @@ +Retired: Fails to install: https://pagure.io/releng/issue/12969 diff --git a/python-avocado.spec b/python-avocado.spec deleted file mode 100644 index 4c1803a..0000000 --- a/python-avocado.spec +++ /dev/null @@ -1,699 +0,0 @@ -# Conditional for release vs. snapshot builds. Set to 1 for release build. -%if ! 0%{?rel_build:1} - %global rel_build 1 -%endif - -# Settings used for build from snapshots. -%if 0%{?rel_build} - %global gitref %{version} - %global gittar avocado-%{version}.tar.gz -%else - %if ! 0%{?commit:1} - %global commit 5b21f030001d6eed69c0357cc45b6128c73dc860 - %endif - %if ! 0%{?commit_date:1} - %global commit_date 20240819 - %endif - %global shortcommit %(c=%{commit};echo ${c:0:9}) - %global gitrel .%{commit_date}git%{shortcommit} - %global gitref %{commit} - %global gittar avocado-%{shortcommit}.tar.gz -%endif - -# Selftests are provided but may need to be skipped because many of -# the functional tests are time and resource sensitive and can -# cause race conditions and random build failures. They are -# enabled by default. -%global with_tests 1 - -# resultsdb is not available for RHEL -%if ! 0%{?rhel} -%global with_resultsdb 1 -%else -%global with_resultsdb 0 -%endif - -Name: python-avocado -Version: 92.3 -Release: 6%{?gitrel}%{?dist} -Summary: Framework with tools and libraries for Automated Testing -# Found licenses: -# avocado/core/tapparser.py: MIT -# avocado/utils/external/gdbmi_parser.py: MIT -# avocado/utils/external/spark.py: MIT -# optional_plugins/html/avocado_result_html/templates/bootstrap.min.css: MIT -# optional_plugins/html/avocado_result_html/templates/bootstrap.min.js: MIT -# selftests/.data/jenkins-junit.xsd: MIT -# Other files: GPLv2 and GPLv2+ -License: GPL-2.0-or-later AND GPL-2.0-only AND MIT -URL: https://avocado-framework.github.io/ -Source0: https://github.com/avocado-framework/avocado/archive/%{gitref}/%{gittar} -BuildArch: noarch - -BuildRequires: kmod -BuildRequires: procps-ng -BuildRequires: python3-devel -BuildRequires: python3-docutils -BuildRequires: python3-jinja2 -BuildRequires: python3-lxml -BuildRequires: python3-psutil -BuildRequires: python3-setuptools -%if %{with_resultsdb} -BuildRequires: python3-resultsdb_api -BuildRequires: python3-pycdlib -%endif - -%if 0%{?with_tests} -BuildRequires: genisoimage -BuildRequires: libcdio -BuildRequires: psmisc -%if ! 0%{?rhel} -BuildRequires: perl-Test-Harness -%endif -BuildRequires: glibc-all-langpacks -BuildRequires: python3-netifaces -BuildRequires: python3-yaml -%endif -# with_tests - -%description -Avocado is a set of tools and libraries (what people call -these days a framework) to perform automated testing. - - -%prep -%setup -q -n avocado-%{gitref} -%if 0%{?rhel} -sed -e "s/'PyYAML>=4.2b2'/'PyYAML>=3.12'/" -i optional_plugins/varianter_yaml_to_mux/setup.py -%endif -# drop unnecessary install requirement -sed -e "s/'markupsafe<2.0.0', //" -i optional_plugins/html/setup.py -# loosen jinja2 version requirement -sed -e "s/'jinja2<3.0.0'/'jinja2'/" -i optional_plugins/html/setup.py -# loosen pyyaml version requirement -sed -e "s/'PyYAML>=4.2b2,<6.0.2'/'PyYAML>=4.2b2'/" -i optional_plugins/varianter_yaml_to_mux/setup.py - -%build -%py3_build -pushd optional_plugins/html - %py3_build -popd -%if %{with_resultsdb} -pushd optional_plugins/resultsdb - %py3_build -popd -%endif -pushd optional_plugins/varianter_yaml_to_mux - %py3_build -popd -pushd optional_plugins/golang - %py3_build -popd -pushd optional_plugins/varianter_pict - %py3_build -popd -pushd optional_plugins/varianter_cit - %py3_build -popd -pushd optional_plugins/result_upload - %py3_build -popd -rst2man man/avocado.rst man/avocado.1 - -%install -%py3_install -for exe in \ - avocado \ - avocado-runner \ - avocado-runner-noop \ - avocado-runner-dry-run \ - avocado-runner-exec-test \ - avocado-runner-python-unittest \ - avocado-runner-avocado-instrumented \ - avocado-runner-tap \ - avocado-runner-requirement-asset \ - avocado-runner-requirement-package \ - avocado-runner-sysinfo \ - avocado-software-manager -do - mv %{buildroot}%{_bindir}/$exe %{buildroot}%{_bindir}/$exe-%{python3_version} - ln -s $exe-%{python3_version} %{buildroot}%{_bindir}/$exe-3 - ln -s $exe-%{python3_version} %{buildroot}%{_bindir}/$exe -done -# configuration is held at /etc/avocado only and part of the -# python-avocado-common package -rm -rf %{buildroot}%{python3_sitelib}/avocado/etc -# ditto for libexec files -rm -rf %{buildroot}%{python3_sitelib}/avocado/libexec -# adjust permissions for file containing shebang line needed for -# spawning tasks in podman containers -chmod -c +x %{buildroot}%{python3_sitelib}/avocado/core/nrunner.py -pushd optional_plugins/html - %py3_install -popd -%if %{with_resultsdb} -pushd optional_plugins/resultsdb - %py3_install -popd -%endif -pushd optional_plugins/varianter_yaml_to_mux - %py3_install -popd -pushd optional_plugins/golang - %py3_install -popd -pushd optional_plugins/varianter_pict - %py3_install -popd -pushd optional_plugins/varianter_cit - %py3_install -popd -pushd optional_plugins/result_upload - %py3_install -popd -# cleanup plugin test cruft -rm -rf %{buildroot}%{python3_sitelib}/tests -mkdir -p %{buildroot}%{_sysconfdir}/avocado -cp -r avocado/etc/avocado/scripts %{buildroot}%{_sysconfdir}/avocado/scripts -cp -r avocado/etc/avocado/sysinfo %{buildroot}%{_sysconfdir}/avocado/sysinfo -mkdir -p %{buildroot}%{_libexecdir}/avocado -cp avocado/libexec/avocado-bash-utils %{buildroot}%{_libexecdir}/avocado/avocado-bash-utils -cp avocado/libexec/avocado_debug %{buildroot}%{_libexecdir}/avocado/avocado_debug -cp avocado/libexec/avocado_error %{buildroot}%{_libexecdir}/avocado/avocado_error -cp avocado/libexec/avocado_info %{buildroot}%{_libexecdir}/avocado/avocado_info -cp avocado/libexec/avocado_warn %{buildroot}%{_libexecdir}/avocado/avocado_warn -mkdir -p %{buildroot}%{_mandir}/man1 -install -m 0644 man/avocado.1 %{buildroot}%{_mandir}/man1/avocado.1 -mkdir -p %{buildroot}%{_pkgdocdir} -install -m 0644 README.rst %{buildroot}%{_pkgdocdir} -install -d -m 0755 %{buildroot}%{_sharedstatedir}/avocado/data -# place examples in documentation directory -install -d -m 0755 %{buildroot}%{_docdir}/avocado -cp -r examples/gdb-prerun-scripts %{buildroot}%{_docdir}/avocado/gdb-prerun-scripts -cp -r examples/plugins %{buildroot}%{_docdir}/avocado/plugins -cp -r examples/tests %{buildroot}%{_docdir}/avocado/tests -cp -r examples/varianter_cit %{buildroot}%{_docdir}/avocado/varianter_cit -cp -r examples/varianter_pict %{buildroot}%{_docdir}/avocado/varianter_pict -cp -r examples/wrappers %{buildroot}%{_docdir}/avocado/wrappers -cp -r examples/yaml_to_mux %{buildroot}%{_docdir}/avocado/yaml_to_mux -find %{buildroot}%{_docdir}/avocado -type f -name '*.py' -exec chmod -c -x {} ';' - - -%if 0%{?with_tests} -%check - # LANG: to make the results predictable, we pin the language - # that is used during test execution. - # AVOCADO_CHECK_LEVEL: package build environments have the least - # amount of resources we have observed so far. Let's avoid tests that - # require too much resources or are time sensitive - PATH=%{buildroot}%{_bindir}:%{buildroot}%{_libexecdir}/avocado:$PATH \ - PYTHONPATH=%{buildroot}%{python3_sitelib}:. \ - LANG=en_US.UTF-8 \ - AVOCADO_CHECK_LEVEL=0 \ - %{python3} selftests/check.py --job-api --nrunner-interface \ - --unit --jobs --functional --optional-plugins \ - --disable-plugin-checks robot -%endif - - -%package -n python3-avocado -Summary: %{summary} -Requires: python-avocado-common == %{version}-%{release} -Requires: gdb -Requires: gdb-gdbserver -Requires: procps-ng -%if ! 0%{?rhel} -Requires: python3-pycdlib -%endif - -%description -n python3-avocado -Avocado is a set of tools and libraries (what people call -these days a framework) to perform automated testing. - -%files -n python3-avocado -%license LICENSE -%{_pkgdocdir}/README.rst -%{python3_sitelib}/avocado/ -%{python3_sitelib}/avocado_framework-%{version}-py%{python3_version}.egg-info -%{_bindir}/avocado-%{python3_version} -%{_bindir}/avocado-3 -%{_bindir}/avocado -%{_bindir}/avocado-runner-%{python3_version} -%{_bindir}/avocado-runner-3 -%{_bindir}/avocado-runner -%{_bindir}/avocado-runner-noop-%{python3_version} -%{_bindir}/avocado-runner-noop-3 -%{_bindir}/avocado-runner-noop -%{_bindir}/avocado-runner-dry-run-%{python3_version} -%{_bindir}/avocado-runner-dry-run-3 -%{_bindir}/avocado-runner-dry-run -%{_bindir}/avocado-runner-exec-test-%{python3_version} -%{_bindir}/avocado-runner-exec-test-3 -%{_bindir}/avocado-runner-exec-test -%{_bindir}/avocado-runner-python-unittest-%{python3_version} -%{_bindir}/avocado-runner-python-unittest-3 -%{_bindir}/avocado-runner-python-unittest -%{_bindir}/avocado-runner-avocado-instrumented-%{python3_version} -%{_bindir}/avocado-runner-avocado-instrumented-3 -%{_bindir}/avocado-runner-avocado-instrumented -%{_bindir}/avocado-runner-tap-%{python3_version} -%{_bindir}/avocado-runner-tap-3 -%{_bindir}/avocado-runner-tap -%{_bindir}/avocado-runner-requirement-asset-%{python3_version} -%{_bindir}/avocado-runner-requirement-asset-3 -%{_bindir}/avocado-runner-requirement-asset -%{_bindir}/avocado-runner-requirement-package-%{python3_version} -%{_bindir}/avocado-runner-requirement-package-3 -%{_bindir}/avocado-runner-requirement-package -%{_bindir}/avocado-runner-sysinfo-%{python3_version} -%{_bindir}/avocado-runner-sysinfo-3 -%{_bindir}/avocado-runner-sysinfo -%{_bindir}/avocado-software-manager-%{python3_version} -%{_bindir}/avocado-software-manager-3 -%{_bindir}/avocado-software-manager - - -%package -n python-avocado-common -Summary: Avocado common files -# Automatically converted from old format: GPLv2+ - review is highly recommended. -License: GPL-2.0-or-later - -%description -n python-avocado-common -Common files (such as configuration) for the Avocado Testing Framework. - -%files -n python-avocado-common -%license LICENSE -%{_mandir}/man1/avocado.1.gz -%dir %{_docdir}/avocado -%dir %{_sharedstatedir}/avocado -%dir %{_sysconfdir}/avocado -%dir %{_sysconfdir}/avocado/sysinfo -%dir %{_sysconfdir}/avocado/scripts -%dir %{_sysconfdir}/avocado/scripts/job -%dir %{_sysconfdir}/avocado/scripts/job/pre.d -%dir %{_sysconfdir}/avocado/scripts/job/post.d -%config(noreplace) %{_sysconfdir}/avocado/sysinfo/commands -%config(noreplace) %{_sysconfdir}/avocado/sysinfo/files -%config(noreplace) %{_sysconfdir}/avocado/sysinfo/profilers -%{_sysconfdir}/avocado/scripts/job/pre.d/README -%{_sysconfdir}/avocado/scripts/job/post.d/README - - -%package -n python3-avocado-plugins-output-html -Summary: Avocado HTML report plugin -License: GPL-2.0-or-later AND MIT -Requires: python3-avocado == %{version}-%{release} - -%description -n python3-avocado-plugins-output-html -Adds to avocado the ability to generate an HTML report at every job results -directory. It also gives the user the ability to write a report on an -arbitrary filesystem location. - -%files -n python3-avocado-plugins-output-html -%{python3_sitelib}/avocado_result_html/ -%{python3_sitelib}/avocado_framework_plugin_result_html-%{version}-py%{python3_version}.egg-info - - -%if %{with_resultsdb} -%package -n python3-avocado-plugins-resultsdb -Summary: Avocado plugin to propagate job results to ResultsDB -# Automatically converted from old format: GPLv2+ - review is highly recommended. -License: GPL-2.0-or-later -Requires: python3-avocado == %{version}-%{release} - -%description -n python3-avocado-plugins-resultsdb -Allows Avocado to send job results directly to a ResultsDB -server. - -%files -n python3-avocado-plugins-resultsdb -%{python3_sitelib}/avocado_resultsdb/ -%{python3_sitelib}/avocado_framework_plugin_resultsdb-%{version}-py%{python3_version}.egg-info -%endif -# with_resultsdb - - -%package -n python3-avocado-plugins-varianter-yaml-to-mux -Summary: Avocado plugin to generate variants out of yaml files -# Automatically converted from old format: GPLv2+ - review is highly recommended. -License: GPL-2.0-or-later -Requires: python3-avocado == %{version}-%{release} - -%description -n python3-avocado-plugins-varianter-yaml-to-mux -Can be used to produce multiple test variants with test parameters -defined in a yaml file(s). - -%files -n python3-avocado-plugins-varianter-yaml-to-mux -%{python3_sitelib}/avocado_varianter_yaml_to_mux/ -%{python3_sitelib}/avocado_framework_plugin_varianter_yaml_to_mux-%{version}-py%{python3_version}.egg-info - - -%package -n python3-avocado-plugins-golang -Summary: Avocado plugin for execution of golang tests -# Automatically converted from old format: GPLv2+ - review is highly recommended. -License: GPL-2.0-or-later -Requires: python3-avocado == %{version}-%{release} -Requires: golang - -%description -n python3-avocado-plugins-golang -Allows Avocado to list golang tests, and if golang is installed, -also run them. - -%files -n python3-avocado-plugins-golang -%{python3_sitelib}/avocado_golang/ -%{python3_sitelib}/avocado_framework_plugin_golang-%{version}-py%{python3_version}.egg-info -%{_bindir}/avocado-runner-golang - - -%package -n python3-avocado-plugins-varianter-pict -Summary: Varianter with combinatorial capabilities by PICT -# Automatically converted from old format: GPLv2+ - review is highly recommended. -License: GPL-2.0-or-later -Requires: python3-avocado == %{version}-%{release} - -%description -n python3-avocado-plugins-varianter-pict -This plugin uses a third-party tool to provide variants created by -Pair-Wise algorithms, also known as Combinatorial Independent Testing. - -%files -n python3-avocado-plugins-varianter-pict -%{python3_sitelib}/avocado_varianter_pict/ -%{python3_sitelib}/avocado_framework_plugin_varianter_pict-%{version}-py%{python3_version}.egg-info - - -%package -n python3-avocado-plugins-varianter-cit -Summary: Varianter with Combinatorial Independent Testing capabilities -# Automatically converted from old format: GPLv2+ - review is highly recommended. -License: GPL-2.0-or-later -Requires: python3-avocado == %{version}-%{release} - -%description -n python3-avocado-plugins-varianter-cit -A varianter plugin that generates variants using Combinatorial -Independent Testing (AKA Pair-Wise) algorithm developed in -collaboration with CVUT Prague. - -%files -n python3-avocado-plugins-varianter-cit -%{python3_sitelib}/avocado_varianter_cit/ -%{python3_sitelib}/avocado_framework_plugin_varianter_cit-%{version}-py%{python3_version}.egg-info - - -%package -n python3-avocado-plugins-result-upload -Summary: Avocado plugin propagate job results to a remote host -# Automatically converted from old format: GPLv2+ - review is highly recommended. -License: GPL-2.0-or-later -Requires: python3-avocado == %{version}-%{release} - -%description -n python3-avocado-plugins-result-upload -This optional plugin is intended to upload the Avocado Job results to -a dedicated sever. - -%files -n python3-avocado-plugins-result-upload -%{python3_sitelib}/avocado_result_upload/ -%{python3_sitelib}/avocado_framework_plugin_result_upload-%{version}-py%{python3_version}.egg-info - - -%package -n python-avocado-examples -Summary: Avocado Test Framework Example Tests -# Automatically converted from old format: GPLv2+ - review is highly recommended. -License: GPL-2.0-or-later -# documentation does not require main package, but needs to be in lock-step if present -Conflicts: python3-avocado < %{version}-%{release}, python3-avocado > %{version}-%{release} - -%description -n python-avocado-examples -The set of example tests present in the upstream tree of the Avocado framework. -Some of them are used as functional tests of the framework, others serve as -examples of how to write tests on your own. - -%files -n python-avocado-examples -%license LICENSE -%dir %{_docdir}/avocado -%{_docdir}/avocado/gdb-prerun-scripts -%{_docdir}/avocado/plugins -%{_docdir}/avocado/tests -%{_docdir}/avocado/varianter_cit -%{_docdir}/avocado/varianter_pict -%{_docdir}/avocado/wrappers -%{_docdir}/avocado/yaml_to_mux - - -%package -n python-avocado-bash -Summary: Avocado Test Framework Bash Utilities -License: GPL-2.0-or-later AND GPL-2.0-only -Requires: python-avocado-common == %{version}-%{release} - -%description -n python-avocado-bash -A small set of utilities to interact with Avocado from the Bourne -Again Shell code (and possibly other similar shells). - -%files -n python-avocado-bash -%license LICENSE -%dir %{_libexecdir}/avocado -%{_libexecdir}/avocado/avocado-bash-utils -%{_libexecdir}/avocado/avocado_debug -%{_libexecdir}/avocado/avocado_error -%{_libexecdir}/avocado/avocado_info -%{_libexecdir}/avocado/avocado_warn - - -%changelog -* Fri Jul 25 2025 Fedora Release Engineering - 92.3-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild - -* Tue Jun 03 2025 Python Maint - 92.3-5 -- Rebuilt for Python 3.14 - -* Mon Jan 20 2025 Miro Hrončok - 92.3-4 -- Loosen the PyYAML version requirement in python3-avocado-plugins-varianter-yaml-to-mux - -* Mon Jan 20 2025 Cleber Rosa - 92.3-3 -- convert remaining licenses to SPDX - -* Sat Jan 18 2025 Fedora Release Engineering - 92.3-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild - -* Mon Aug 19 2024 Cleber Rosa - 92.3-1 -- Updated to 92.3 -- Support building and running under Python 3.13 for F42 -- Removed patch from 92.1 as its present in 92.3 - -* Fri Jul 26 2024 Miroslav Suchý - 92.1-8 -- convert license to SPDX - -* Fri Jul 19 2024 Fedora Release Engineering - 92.1-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild - -* Fri Jun 07 2024 Python Maint - 92.1-6 -- Rebuilt for Python 3.13 - -* Mon Jan 29 2024 Fedora Release Engineering - 92.1-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Fri Jan 26 2024 Fedora Release Engineering - 92.1-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Sun Jan 21 2024 Fedora Release Engineering - 92.1-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Fri Jul 21 2023 Fedora Release Engineering - 92.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Mon Jul 17 2023 Cleber Rosa - 92.1-1 -- Updated to 92.1 -- Support building and running under Python 3.12 for F39 - -* Wed Jun 14 2023 Python Maint - 92.0-3 -- Rebuilt for Python 3.12 - -* Fri Jan 20 2023 Fedora Release Engineering - 92.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Tue Aug 9 2022 Cleber Rosa - 92.0-1 -- Use selftests/check.py job instead of more limited selftests/run -- Included avocado-runner-sysinfo, avocado-runner-requirement-package, - avocado-runner-requirement-asset and avocado-runner-dry-run and - avocado-runner-golang executables -- Removed avocado-runner-exec executable -- Removed loader_yaml and glib plugin packages - -* Fri Jul 22 2022 Fedora Release Engineering - 82.0-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Tue Jun 21 2022 Python Maint - 82.0-6 -- Rebuilt for Python 3.11 - -* Fri Jan 21 2022 Fedora Release Engineering - 82.0-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Wed Jul 28 2021 Merlin Mathesius - 82.0-4 -- Loosen jinja2 version requirement to fix FTBFS in Rawhide - -* Fri Jul 23 2021 Fedora Release Engineering - 82.0-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Thu Mar 18 2021 Merlin Mathesius - 82.0-2 -- Drop obsolete packages from BuildRequires -- Generate man page directly using 'rst2man' rather than requiring 'make' -- Adjust PATH to make sure self-tests find internal modules -- Spec file cleanup following package review. - -* Mon Sep 14 2020 Cleber Rosa - 82.0-1 -- Sync with upstream release 82.0. -- Removed python libvirt depedency as the vm runner has been removed - upstream -- Dropped configuration files to sync with upstream which made them - optional and doesn't ship them anymore -- Add on extra character to short commit to sync with upstream - -* Sat Jun 6 2020 Cleber Rosa - 80.0-1 -- Sync with upstream release 80.0. -- Dropped use of custom avocado command for tests -- Do not build deprecated runners - -* Tue May 12 2020 Cleber Rosa - 79.0-1 -- Sync with upstream release 79.0. -- Added Python's user base bin dir to the PATH environment variable - while running tests, so that avocado-runner-* scripts can be found -- Moved comment to new lines closing the conditionals, to avoid - errors from rpmlint and rpmbuild - -* Wed Apr 15 2020 Merlin Mathesius - 78.0-1 -- Sync with upstream release 78.0. - -* Tue Mar 17 2020 Merlin Mathesius - 77.0-1 -- Sync with upstream release 77.0. - -* Mon Mar 09 2020 Merlin Mathesius - 76.0-1 -- Sync with upstream release 76.0. - -* Mon Jan 20 2020 Merlin Mathesius - 75.1-1 -- Sync with upstream release 75.1. - -* Mon Dec 23 2019 Merlin Mathesius - 74.0-1 -- Sync with upstream release 74.0. - -* Wed Nov 27 2019 Merlin Mathesius - 73.0-1 -- Sync with upstream release 73.0. -- Adjustments to build for RHEL 8. - -* Wed Oct 02 2019 Merlin Mathesius - 72.0-1 -- Sync with upstream release 72.0. - -* Wed Aug 28 2019 Merlin Mathesius - 71.0-1 -- Sync with upstream release 71.0. - -* Wed Jun 26 2019 Merlin Mathesius - 70.0-1 -- Sync with upstream release 70.0. -- Drop all Python 2 support from SPEC file. - -* Wed May 22 2019 Merlin Mathesius - 69.0-4 -- pyliblzma is Python 2-only and no longer available as of F31. -- Unversioned executables should now be Python 3. - -* Mon May 20 2019 Merlin Mathesius - 69.0-3 -- Drop Python 2 support from F31 and RHEL8 onward. -- Disable components dependent upon Fiber in Fedora 31 and later, - since avocado is currently incompatible with the new Fiber API. - -* Tue Mar 19 2019 Merlin Mathesius - 69.0-2 -- python2-sphinx is no longer available or needed as of F31 - -* Wed Feb 27 2019 Merlin Mathesius - 69.0-1 -- Sync with upstream release 69.0. - -* Fri Feb 22 2019 Merlin Mathesius - 68.0-1 -- Sync with upstream release 68.0. - -* Thu Jan 31 2019 Merlin Mathesius - 67.0-1 -- Sync with upstream release 67.0. -- genisoimage, libcdio, and psmisc added as build deps so iso9660 tests run. -- Replace pystache requirement with jinja2. -- glibc-all-langpacks added as build dep for F30+ so vmimage tests run. -- python2-resultsdb_api package has been removed in F30 so - python2-avocado-plugins-resultsdb was also disabled. - -* Wed Nov 21 2018 Merlin Mathesius - 66.0-1 -- Sync with upstream release 66.0. -- python2-pycdlib package has been removed in F30 as part of - https://fedoraproject.org/wiki/Changes/Mass_Python_2_Package_Removal - -* Thu Oct 04 2018 Merlin Mathesius - 65.0-1 -- Sync with upstream release 65.0. - -* Tue Aug 28 2018 Merlin Mathesius - 64.0-1 -- Sync with upstream release 64.0. - -* Thu Jul 26 2018 Merlin Mathesius - 63.0-2 -- Added missing python[2]-enum34 requirement. - -* Mon Jul 23 2018 Merlin Mathesius - 63.0-1 -- Sync with upstream release 63.0. (BZ#1602175) - Include upstream patches needed to build for Rawhide. - -* Wed Jun 13 2018 Merlin Mathesius - 62.0-1 -- Sync with upstream release 62.0. (BZ#1590572) -- Correct libvirt dependency for EPEL7/RHEL7 - -* Thu May 17 2018 Merlin Mathesius - 61.0-1 -- Sync with upstream release 61.0. -- Packaging updates for Python 3. -- Reorganize SPEC file. - -* Mon Apr 9 2018 Cleber Rosa - 52.1-2 -- Added Fedora CI tests - -* Tue Apr 03 2018 Merlin Mathesius - 52.1-1 -- Sync with upstream release 52.1 (LTS series). -- Correct deprecated use of unversioned python. - -* Mon Mar 26 2018 Iryna Shcherbina - 52.0-5 -- Update Python 2 dependency declarations to new packaging standards - (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3) - -* Fri Feb 09 2018 Fedora Release Engineering - 52.0-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - -* Wed Aug 09 2017 Merlin Mathesius - 52.0-3 -- Fix FTBFS error by disabling selfcheck producing false failures -- Update SPEC to use pkgname instead of srcname macro where appropriate - -* Thu Jul 27 2017 Fedora Release Engineering - 52.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild - -* Thu Jun 29 2017 Merlin Mathesius - 52.0-1 -- Sync with upstream release 52.0. (BZ#1465409) - -* Wed Jun 14 2017 Merlin Mathesius - 51.0-1 -- Sync with upstream release 51.0. (BZ#1460837) -- Disable selftests when libvirt may not be available. - -* Wed May 17 2017 Merlin Mathesius - 50.0-1 -- Sync with upstream release 50.0. (BZ#1431413) -- Be explicit about selftest level run on check. - -* Tue Apr 25 2017 Merlin Mathesius - 49.0-1 -- Sync with upstream release 49.0. (BZ#1431413) - -* Tue Apr 18 2017 Merlin Mathesius - 48.0-1 -- Sync with upstream release 48.0. (BZ#1431413) -- Allow rel_build macro to be defined outside of the SPEC file. - -* Mon Mar 27 2017 Merlin Mathesius - 47.0-1 -- Sync with upstream release 47.0. -- Enable self-tests during build. -- Add example test to be run by Taskotron. - -* Mon Feb 27 2017 Merlin Mathesius - 46.0-2 -- Incorporate upstream SPEC file changes to split plugins into subpackages. -- Remove obsolete CC-BY-SA license, which went away with the halflings font. - -* Tue Feb 14 2017 Merlin Mathesius - 46.0-1 -- Sync with upstream release 46.0. -- Remove halflings license since font was removed from upstream. -- SPEC updates to easily switch between release and snapshot builds. - -* Sat Feb 11 2017 Fedora Release Engineering - 43.0-8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Tue Jan 10 2017 Merlin Mathesius - 43.0-7 -- SPEC updates to build and install for EPEL. - -* Mon Nov 21 2016 Merlin Mathesius - 43.0-6 -- Initial packaging for Fedora. diff --git a/sources b/sources deleted file mode 100644 index 4a738a2..0000000 --- a/sources +++ /dev/null @@ -1 +0,0 @@ -SHA512 (avocado-92.3.tar.gz) = 97a0c113bc826537a02ebf6efcd7cf49b505a93e5fd9686c3a4c7e70902f2d367f78eb2fb23ddf9253b97f45e27b2e328fd6bd1c420ecbeb59e25e991b29c262 diff --git a/tests/gdbtest.py b/tests/gdbtest.py deleted file mode 100755 index c0cdc55..0000000 --- a/tests/gdbtest.py +++ /dev/null @@ -1,347 +0,0 @@ -import os - -from avocado import Test -from avocado.utils import gdb, genio, process - - -class GdbTest(Test): - - """ - Execute the gdb test - - :avocado: tags=requires_c_compiler - """ - - VALID_CMDS = ["-list-target-features", - "-break-info", - "-break-list", - "-thread-info", - "-stack-info-frame", - "-stack-info-depth"] - - INVALID_CMDS = ["-foobar", - "-magic8ball", - "-find-me-the-bug", - "-auto-debug-it"] - - def setUp(self): - self.return99_binary_path = os.path.join(self.teststmpdir, 'return99') - if not os.path.exists(self.return99_binary_path): - return99_source_path = self.get_data('return99.c') - if return99_source_path is None: - self.cancel('Test is missing data file "return99.c"') - process.system(f'gcc -O0 -g {return99_source_path} -o {self.return99_binary_path}') - - self.segfault_binary_path = os.path.join(self.teststmpdir, 'segfault') - if not os.path.exists(self.segfault_binary_path): - segfault_source_path = self.get_data('segfault.c') - if segfault_source_path is None: - self.cancel('Test is missing data file "segfault.c"') - process.system(f'gcc -O0 -g {segfault_source_path} -o {self.segfault_binary_path}') - - @staticmethod - def is_process_alive(process): # pylint: disable=W0621 - """ - Checks if a process is still alive - - :param process: a :class:`subprocess.POpen` instance - :type process: :class:`subprocess.POpen` - :returns: True or False - :rtype: bool - """ - return process.poll() is None - - def test_start_exit(self): - """ - Tests execution of multiple GDB instances without any blocking or race - """ - self.log.info("Testing execution of multiple GDB instances") - process_count = 10 - gdb_instances = [] - for i in range(0, process_count): - gdb_instances.append(gdb.GDB()) - - for i in range(0, process_count): - self.assertEqual(gdb_instances[i].exit(), 0) - - def test_existing_commands_raw(self): - """ - Tests the GDB response to commands that exist and to those that do not - """ - g = gdb.GDB() - self.log.info("Testing existing (valid) GDB commands using raw commands") - for cmd in self.VALID_CMDS: - info_cmd = f"-info-gdb-mi-command {cmd[1:]}" - r = g.cmd(info_cmd) - self.assertEqual(r.result.result.command.exists, 'true') - - self.log.info("Testing non-existing (invalid) GDB commands using raw " - "commands") - for cmd in self.INVALID_CMDS: - info_cmd = f"-info-gdb-mi-command {cmd[1:]}" - r = g.cmd(info_cmd) - self.assertEqual(r.result.result.command.exists, 'false') - - def test_existing_commands(self): - g = gdb.GDB() - - self.log.info("Testing existing (valid) GDB commands using utility " - "methods") - for cmd in self.VALID_CMDS: - self.assertTrue(g.cmd_exists(cmd)) - g.cmd(cmd) - - self.log.info("Testing non-existing (invalid) GDB commands using " - "utility methods") - for cmd in self.INVALID_CMDS: - self.assertFalse(g.cmd_exists(cmd)) - - def test_load_set_breakpoint_run_exit_raw(self): - """ - Test a common GDB cycle using raw commands: load, set break, run, exit - """ - self.log.info("Testing that GDB loads a file and sets a breakpoint") - g = gdb.GDB() - - file_cmd = f"-file-exec-and-symbols {self.return99_binary_path}" - r = g.cmd(file_cmd) - self.assertEqual(r.result.class_, 'done') - - break_cmd = "-break-insert 5" - r = g.cmd(break_cmd) - self.assertEqual(r.result.class_, 'done') - self.assertEqual(r.result.result.bkpt.number, '1') - self.assertEqual(r.result.result.bkpt.enabled, 'y') - - break_del_cmd = "-break-delete 1" - r = g.cmd(break_del_cmd) - self.assertEqual(r.result.class_, 'done') - - run_cmd = "-exec-run" - r = g.cmd(run_cmd) - self.assertEqual(r.result.class_, 'running') - - g.cmd("-gdb-exit") - self.assertEqual(g.process.wait(), 0) - - def test_load_set_breakpoint_run_exit(self): - """ - Test a common GDB cycle: load, set break, delete break, run, exit - """ - self.log.info("Testing a common GDB cycle") - g = gdb.GDB() - g.set_file(self.return99_binary_path) - g.set_break("5") - g.del_break(1) - g.run() - g.exit() - - def test_generate_core(self): - """ - Load a file that will cause a segfault and produce a core dump - """ - self.log.info("Testing that a core dump will be generated") - - g = gdb.GDB() - file_cmd = f"-file-exec-and-symbols {self.segfault_binary_path}" - r = g.cmd(file_cmd) - self.assertEqual(r.result.class_, 'done') - - run_cmd = "-exec-run" - r = g.cmd(run_cmd) - self.assertEqual(r.result.class_, 'running') - - other_messages = g.read_until_break() - core_path = None - for msg in other_messages: - parsed_msg = gdb.parse_mi(msg.decode()) - if (hasattr(parsed_msg, 'class_') and - (parsed_msg.class_ == 'stopped') and - (parsed_msg.result.signal_name == 'SIGSEGV')): - core_path = f"{self.segfault_binary_path}.core" - gcore_cmd = f'gcore {core_path}' - gcore_cmd = gdb.encode_mi_cli(gcore_cmd) - r = g.cmd(gcore_cmd) - self.assertEqual(r.result.class_, 'done') - - self.assertTrue(os.path.exists(core_path)) - g.exit() - - def test_set_multiple_break(self): - """ - Tests that multiple breakpoints do not interfere with each other - """ - self.log.info("Testing setting multiple breakpoints") - g = gdb.GDB() - g.set_file(self.return99_binary_path) - g.set_break('empty') - g.set_break('7') - g.exit() - - def test_disconnect_raw(self): - """ - Connect/disconnect repeatedly from a remote debugger using raw commands - """ - self.log.info("Testing connecting and disconnecting repeatedly using " - "raw commands") - s = gdb.GDBServer() - g = gdb.GDB() - - # Do 100 cycle of target (kind of connects) and disconnects - for _ in range(0, 100): - cmd = f'-target-select extended-remote :{s.port}' - r = g.cmd(cmd) - self.assertEqual(r.result.class_, 'connected') - r = g.cmd('-target-disconnect') - self.assertEqual(r.result.class_, 'done') - - # manual server shutdown - cmd = f'-target-select extended-remote :{s.port}' - r = g.cmd(cmd) - self.assertEqual(r.result.class_, 'connected') - r = g.cli_cmd('monitor exit') - self.assertEqual(r.result.class_, 'done') - - g.exit() - s.exit() - - def test_disconnect(self): - """ - Connect/disconnect repeatedly from a remote debugger using utilities - """ - self.log.info("Testing connecting and disconnecting repeatedly") - s = gdb.GDBServer() - g = gdb.GDB() - - for _ in range(0, 100): - r = g.connect(s.port) - self.assertEqual(r.result.class_, 'connected') - r = g.disconnect() - self.assertEqual(r.result.class_, 'done') - - g.exit() - s.exit() - - def test_remote_exec(self): - """ - Tests execution on a remote target - """ - self.log.info("Testing execution on a remote target") - hit_breakpoint = False - - s = gdb.GDBServer() - g = gdb.GDB() - - cmd = f'-file-exec-and-symbols {self.return99_binary_path}' - r = g.cmd(cmd) - self.assertEqual(r.result.class_, 'done') - - cmd = f'set remote exec-file {self.return99_binary_path}' - r = g.cmd(cmd) - self.assertEqual(r.result.class_, 'done') - - cmd = f"-break-insert {'main'}" - r = g.cmd(cmd) - self.assertEqual(r.result.class_, 'done') - - r = g.cmd('-exec-run') - - other_messages = g.read_until_break() - for msg in other_messages: - parsed_msg = gdb.parse_mi(msg.decode()) - if (hasattr(parsed_msg, 'class_') and - parsed_msg.class_ == 'stopped' and - parsed_msg.result.reason == 'breakpoint-hit'): - hit_breakpoint = True - - self.assertTrue(hit_breakpoint) - g.exit() - s.exit() - - def test_stream_messages(self): - """ - Tests if the expected response appears in the result stream messages - """ - self.log.info("Testing that messages appears in the result stream") - g = gdb.GDB() - r = g.cmd("-gdb-version") - self.assertIn("GNU GPL version", r.get_stream_messages_text()) - - def test_connect_multiple_clients(self): - """ - Tests two or more connections to the same server raise an exception - """ - self.log.info("Testing that multiple clients cannot connect at once") - s = gdb.GDBServer() - c1 = gdb.GDB() - c1.connect(s.port) - c2 = gdb.GDB() - with self.assertRaises(gdb.UnexpectedResponseError): - c2.connect(s.port) - s.exit() - - def test_server_exit(self): - """ - Tests that the server is shutdown by using a monitor exit command - """ - self.log.info("Testing that a single server exits cleanly") - s = gdb.GDBServer() - s.exit() - self.assertFalse(self.is_process_alive(s.process)) - - def test_multiple_servers(self): - """ - Tests multiple server instances without any blocking or race condition - """ - self.log.info("Testing execution of multiple GDB server instances") - process_count = 10 - server_instances = [] - for i in range(0, process_count): - s = gdb.GDBServer() - c = gdb.GDB() - c.connect(s.port) - c.cmd('show-version') - c.disconnect() - server_instances.append(s) - - for i in range(0, process_count): - self.assertTrue(self.is_process_alive(server_instances[i].process)) - server_instances[i].exit() - self.assertFalse(self.is_process_alive(server_instances[i].process)) - - def test_server_stderr(self): - self.log.info('Testing server stderr collection') - s = gdb.GDBServer() - s.exit() - self.assertTrue(os.path.exists(s.stderr_path)) - - stderr_lines = genio.read_all_lines(s.stderr_path) - listening_line = f"Listening on port {s.port}" - self.assertIn(listening_line, stderr_lines) - - def test_server_stdout(self): - self.log.info('Testing server stdout/stderr collection') - s = gdb.GDBServer() - c = gdb.GDB() - c.connect(s.port) - c.set_file(self.return99_binary_path) - c.run() - s.exit() - - self.assertTrue(os.path.exists(s.stdout_path)) - self.assertTrue(os.path.exists(s.stderr_path)) - - stdout_lines = genio.read_all_lines(s.stdout_path) - self.assertIn("return 99", stdout_lines) - - @staticmethod - def test_remote(): - """ - Tests GDBRemote interaction with a GDBServer - """ - s = gdb.GDBServer() - r = gdb.GDBRemote('127.0.0.1', s.port) - r.connect() - r.cmd(b"qSupported") - r.cmd(b"qfThreadInfo") - s.exit() diff --git a/tests/gdbtest.py.data/return99.c b/tests/gdbtest.py.data/return99.c deleted file mode 100644 index bf14935..0000000 --- a/tests/gdbtest.py.data/return99.c +++ /dev/null @@ -1,47 +0,0 @@ -#include -#include - -void empty() -{ -} - -void write_stdout() -{ - fprintf(stdout, "testing output to stdout\n"); -} - -void write_stderr() -{ - fprintf(stderr, "testing output to stderr\n"); -} - -int forkme() -{ - int pid; - - pid = fork(); - if (pid != 0) - pid = fork(); - if (pid != 0) - pid = fork(); - - return pid; -} - -int main(int argc, char *argv[]) -{ - int exit_status = 99; - - if (argc > 1) - exit_status = atoi(argv[1]); - - empty(); - write_stdout(); - write_stderr(); - - if (forkme()) { - fprintf(stdout, "return %i\n", exit_status); - } - - return exit_status; -} diff --git a/tests/gdbtest.py.data/segfault.c b/tests/gdbtest.py.data/segfault.c deleted file mode 100644 index a685f86..0000000 --- a/tests/gdbtest.py.data/segfault.c +++ /dev/null @@ -1,9 +0,0 @@ -#include - -int main() -{ - int *p = NULL; - *p = 0xdead; - - return 0; -} diff --git a/tests/tests.yml b/tests/tests.yml deleted file mode 100644 index 7ff61ce..0000000 --- a/tests/tests.yml +++ /dev/null @@ -1,25 +0,0 @@ -- hosts: localhost - roles: - - role: standard-test-avocado - tests: - - gdbtest.py:GdbTest.test_start_exit - - gdbtest.py:GdbTest.test_existing_commands_raw - - gdbtest.py:GdbTest.test_existing_commands - - gdbtest.py:GdbTest.test_load_set_breakpoint_run_exit_raw - - gdbtest.py:GdbTest.test_load_set_breakpoint_run_exit - - gdbtest.py:GdbTest.test_generate_core - - gdbtest.py:GdbTest.test_set_multiple_break - - gdbtest.py:GdbTest.test_disconnect_raw - - gdbtest.py:GdbTest.test_disconnect - - gdbtest.py:GdbTest.test_remote_exec - - gdbtest.py:GdbTest.test_stream_messages - - gdbtest.py:GdbTest.test_connect_multiple_clients - - gdbtest.py:GdbTest.test_server_exit - - gdbtest.py:GdbTest.test_multiple_servers - - gdbtest.py:GdbTest.test_server_stderr - - gdbtest.py:GdbTest.test_server_stdout - - gdbtest.py:GdbTest.test_remote - required_packages: - - gcc - - gdb - - gdb-gdbserver From a0f088ed1846292903e38e6e605bfbd5db4fffdf Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 9 Oct 2025 12:01:58 +0000 Subject: [PATCH 54/57] Unretirement request: pagure.io/releng/issue/13001 Revert "Retired: Fails to install: https://pagure.io/releng/issue/12969" This reverts commit e350a6d8232ff6a11ed1240ebeab01c374125592. Signed-off-by: Fedora Release Engineering --- .gitignore | 34 ++ dead.package | 1 - python-avocado.spec | 699 +++++++++++++++++++++++++++++++ sources | 1 + tests/gdbtest.py | 347 +++++++++++++++ tests/gdbtest.py.data/return99.c | 47 +++ tests/gdbtest.py.data/segfault.c | 9 + tests/tests.yml | 25 ++ 8 files changed, 1162 insertions(+), 1 deletion(-) create mode 100644 .gitignore delete mode 100644 dead.package create mode 100644 python-avocado.spec create mode 100644 sources create mode 100755 tests/gdbtest.py create mode 100644 tests/gdbtest.py.data/return99.c create mode 100644 tests/gdbtest.py.data/segfault.c create mode 100644 tests/tests.yml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..bd8b053 --- /dev/null +++ b/.gitignore @@ -0,0 +1,34 @@ +/avocado-43.0.tar.gz +/avocado-46.0.tar.gz +/avocado-47.0.tar.gz +/avocado-48.0.tar.gz +/avocado-49.0.tar.gz +/avocado-50.0.tar.gz +/avocado-51.0.tar.gz +/avocado-52.0.tar.gz +/avocado-52.1.tar.gz +/avocado-61.0.tar.gz +/avocado-62.0.tar.gz +/avocado-63.0.tar.gz +/avocado-64.0.tar.gz +/avocado-65.0.tar.gz +/avocado-66.0.tar.gz +/avocado-67.0.tar.gz +/avocado-68.0.tar.gz +/avocado-69.0.tar.gz +/avocado-70.0.tar.gz +/avocado-71.0.tar.gz +/avocado-72.0.tar.gz +/avocado-73.0.tar.gz +/avocado-74.0.tar.gz +/avocado-75.1.tar.gz +/avocado-76.0.tar.gz +/avocado-77.0.tar.gz +/avocado-78.0.tar.gz +/avocado-79.0.tar.gz +/avocado-80.0.tar.gz +/avocado-82.0.tar.gz +/avocado-92.0.tar.gz +/avocado-92.1.tar.gz +/avocado-92.1-python312.patch +/avocado-92.3.tar.gz diff --git a/dead.package b/dead.package deleted file mode 100644 index 505b74d..0000000 --- a/dead.package +++ /dev/null @@ -1 +0,0 @@ -Retired: Fails to install: https://pagure.io/releng/issue/12969 diff --git a/python-avocado.spec b/python-avocado.spec new file mode 100644 index 0000000..4c1803a --- /dev/null +++ b/python-avocado.spec @@ -0,0 +1,699 @@ +# Conditional for release vs. snapshot builds. Set to 1 for release build. +%if ! 0%{?rel_build:1} + %global rel_build 1 +%endif + +# Settings used for build from snapshots. +%if 0%{?rel_build} + %global gitref %{version} + %global gittar avocado-%{version}.tar.gz +%else + %if ! 0%{?commit:1} + %global commit 5b21f030001d6eed69c0357cc45b6128c73dc860 + %endif + %if ! 0%{?commit_date:1} + %global commit_date 20240819 + %endif + %global shortcommit %(c=%{commit};echo ${c:0:9}) + %global gitrel .%{commit_date}git%{shortcommit} + %global gitref %{commit} + %global gittar avocado-%{shortcommit}.tar.gz +%endif + +# Selftests are provided but may need to be skipped because many of +# the functional tests are time and resource sensitive and can +# cause race conditions and random build failures. They are +# enabled by default. +%global with_tests 1 + +# resultsdb is not available for RHEL +%if ! 0%{?rhel} +%global with_resultsdb 1 +%else +%global with_resultsdb 0 +%endif + +Name: python-avocado +Version: 92.3 +Release: 6%{?gitrel}%{?dist} +Summary: Framework with tools and libraries for Automated Testing +# Found licenses: +# avocado/core/tapparser.py: MIT +# avocado/utils/external/gdbmi_parser.py: MIT +# avocado/utils/external/spark.py: MIT +# optional_plugins/html/avocado_result_html/templates/bootstrap.min.css: MIT +# optional_plugins/html/avocado_result_html/templates/bootstrap.min.js: MIT +# selftests/.data/jenkins-junit.xsd: MIT +# Other files: GPLv2 and GPLv2+ +License: GPL-2.0-or-later AND GPL-2.0-only AND MIT +URL: https://avocado-framework.github.io/ +Source0: https://github.com/avocado-framework/avocado/archive/%{gitref}/%{gittar} +BuildArch: noarch + +BuildRequires: kmod +BuildRequires: procps-ng +BuildRequires: python3-devel +BuildRequires: python3-docutils +BuildRequires: python3-jinja2 +BuildRequires: python3-lxml +BuildRequires: python3-psutil +BuildRequires: python3-setuptools +%if %{with_resultsdb} +BuildRequires: python3-resultsdb_api +BuildRequires: python3-pycdlib +%endif + +%if 0%{?with_tests} +BuildRequires: genisoimage +BuildRequires: libcdio +BuildRequires: psmisc +%if ! 0%{?rhel} +BuildRequires: perl-Test-Harness +%endif +BuildRequires: glibc-all-langpacks +BuildRequires: python3-netifaces +BuildRequires: python3-yaml +%endif +# with_tests + +%description +Avocado is a set of tools and libraries (what people call +these days a framework) to perform automated testing. + + +%prep +%setup -q -n avocado-%{gitref} +%if 0%{?rhel} +sed -e "s/'PyYAML>=4.2b2'/'PyYAML>=3.12'/" -i optional_plugins/varianter_yaml_to_mux/setup.py +%endif +# drop unnecessary install requirement +sed -e "s/'markupsafe<2.0.0', //" -i optional_plugins/html/setup.py +# loosen jinja2 version requirement +sed -e "s/'jinja2<3.0.0'/'jinja2'/" -i optional_plugins/html/setup.py +# loosen pyyaml version requirement +sed -e "s/'PyYAML>=4.2b2,<6.0.2'/'PyYAML>=4.2b2'/" -i optional_plugins/varianter_yaml_to_mux/setup.py + +%build +%py3_build +pushd optional_plugins/html + %py3_build +popd +%if %{with_resultsdb} +pushd optional_plugins/resultsdb + %py3_build +popd +%endif +pushd optional_plugins/varianter_yaml_to_mux + %py3_build +popd +pushd optional_plugins/golang + %py3_build +popd +pushd optional_plugins/varianter_pict + %py3_build +popd +pushd optional_plugins/varianter_cit + %py3_build +popd +pushd optional_plugins/result_upload + %py3_build +popd +rst2man man/avocado.rst man/avocado.1 + +%install +%py3_install +for exe in \ + avocado \ + avocado-runner \ + avocado-runner-noop \ + avocado-runner-dry-run \ + avocado-runner-exec-test \ + avocado-runner-python-unittest \ + avocado-runner-avocado-instrumented \ + avocado-runner-tap \ + avocado-runner-requirement-asset \ + avocado-runner-requirement-package \ + avocado-runner-sysinfo \ + avocado-software-manager +do + mv %{buildroot}%{_bindir}/$exe %{buildroot}%{_bindir}/$exe-%{python3_version} + ln -s $exe-%{python3_version} %{buildroot}%{_bindir}/$exe-3 + ln -s $exe-%{python3_version} %{buildroot}%{_bindir}/$exe +done +# configuration is held at /etc/avocado only and part of the +# python-avocado-common package +rm -rf %{buildroot}%{python3_sitelib}/avocado/etc +# ditto for libexec files +rm -rf %{buildroot}%{python3_sitelib}/avocado/libexec +# adjust permissions for file containing shebang line needed for +# spawning tasks in podman containers +chmod -c +x %{buildroot}%{python3_sitelib}/avocado/core/nrunner.py +pushd optional_plugins/html + %py3_install +popd +%if %{with_resultsdb} +pushd optional_plugins/resultsdb + %py3_install +popd +%endif +pushd optional_plugins/varianter_yaml_to_mux + %py3_install +popd +pushd optional_plugins/golang + %py3_install +popd +pushd optional_plugins/varianter_pict + %py3_install +popd +pushd optional_plugins/varianter_cit + %py3_install +popd +pushd optional_plugins/result_upload + %py3_install +popd +# cleanup plugin test cruft +rm -rf %{buildroot}%{python3_sitelib}/tests +mkdir -p %{buildroot}%{_sysconfdir}/avocado +cp -r avocado/etc/avocado/scripts %{buildroot}%{_sysconfdir}/avocado/scripts +cp -r avocado/etc/avocado/sysinfo %{buildroot}%{_sysconfdir}/avocado/sysinfo +mkdir -p %{buildroot}%{_libexecdir}/avocado +cp avocado/libexec/avocado-bash-utils %{buildroot}%{_libexecdir}/avocado/avocado-bash-utils +cp avocado/libexec/avocado_debug %{buildroot}%{_libexecdir}/avocado/avocado_debug +cp avocado/libexec/avocado_error %{buildroot}%{_libexecdir}/avocado/avocado_error +cp avocado/libexec/avocado_info %{buildroot}%{_libexecdir}/avocado/avocado_info +cp avocado/libexec/avocado_warn %{buildroot}%{_libexecdir}/avocado/avocado_warn +mkdir -p %{buildroot}%{_mandir}/man1 +install -m 0644 man/avocado.1 %{buildroot}%{_mandir}/man1/avocado.1 +mkdir -p %{buildroot}%{_pkgdocdir} +install -m 0644 README.rst %{buildroot}%{_pkgdocdir} +install -d -m 0755 %{buildroot}%{_sharedstatedir}/avocado/data +# place examples in documentation directory +install -d -m 0755 %{buildroot}%{_docdir}/avocado +cp -r examples/gdb-prerun-scripts %{buildroot}%{_docdir}/avocado/gdb-prerun-scripts +cp -r examples/plugins %{buildroot}%{_docdir}/avocado/plugins +cp -r examples/tests %{buildroot}%{_docdir}/avocado/tests +cp -r examples/varianter_cit %{buildroot}%{_docdir}/avocado/varianter_cit +cp -r examples/varianter_pict %{buildroot}%{_docdir}/avocado/varianter_pict +cp -r examples/wrappers %{buildroot}%{_docdir}/avocado/wrappers +cp -r examples/yaml_to_mux %{buildroot}%{_docdir}/avocado/yaml_to_mux +find %{buildroot}%{_docdir}/avocado -type f -name '*.py' -exec chmod -c -x {} ';' + + +%if 0%{?with_tests} +%check + # LANG: to make the results predictable, we pin the language + # that is used during test execution. + # AVOCADO_CHECK_LEVEL: package build environments have the least + # amount of resources we have observed so far. Let's avoid tests that + # require too much resources or are time sensitive + PATH=%{buildroot}%{_bindir}:%{buildroot}%{_libexecdir}/avocado:$PATH \ + PYTHONPATH=%{buildroot}%{python3_sitelib}:. \ + LANG=en_US.UTF-8 \ + AVOCADO_CHECK_LEVEL=0 \ + %{python3} selftests/check.py --job-api --nrunner-interface \ + --unit --jobs --functional --optional-plugins \ + --disable-plugin-checks robot +%endif + + +%package -n python3-avocado +Summary: %{summary} +Requires: python-avocado-common == %{version}-%{release} +Requires: gdb +Requires: gdb-gdbserver +Requires: procps-ng +%if ! 0%{?rhel} +Requires: python3-pycdlib +%endif + +%description -n python3-avocado +Avocado is a set of tools and libraries (what people call +these days a framework) to perform automated testing. + +%files -n python3-avocado +%license LICENSE +%{_pkgdocdir}/README.rst +%{python3_sitelib}/avocado/ +%{python3_sitelib}/avocado_framework-%{version}-py%{python3_version}.egg-info +%{_bindir}/avocado-%{python3_version} +%{_bindir}/avocado-3 +%{_bindir}/avocado +%{_bindir}/avocado-runner-%{python3_version} +%{_bindir}/avocado-runner-3 +%{_bindir}/avocado-runner +%{_bindir}/avocado-runner-noop-%{python3_version} +%{_bindir}/avocado-runner-noop-3 +%{_bindir}/avocado-runner-noop +%{_bindir}/avocado-runner-dry-run-%{python3_version} +%{_bindir}/avocado-runner-dry-run-3 +%{_bindir}/avocado-runner-dry-run +%{_bindir}/avocado-runner-exec-test-%{python3_version} +%{_bindir}/avocado-runner-exec-test-3 +%{_bindir}/avocado-runner-exec-test +%{_bindir}/avocado-runner-python-unittest-%{python3_version} +%{_bindir}/avocado-runner-python-unittest-3 +%{_bindir}/avocado-runner-python-unittest +%{_bindir}/avocado-runner-avocado-instrumented-%{python3_version} +%{_bindir}/avocado-runner-avocado-instrumented-3 +%{_bindir}/avocado-runner-avocado-instrumented +%{_bindir}/avocado-runner-tap-%{python3_version} +%{_bindir}/avocado-runner-tap-3 +%{_bindir}/avocado-runner-tap +%{_bindir}/avocado-runner-requirement-asset-%{python3_version} +%{_bindir}/avocado-runner-requirement-asset-3 +%{_bindir}/avocado-runner-requirement-asset +%{_bindir}/avocado-runner-requirement-package-%{python3_version} +%{_bindir}/avocado-runner-requirement-package-3 +%{_bindir}/avocado-runner-requirement-package +%{_bindir}/avocado-runner-sysinfo-%{python3_version} +%{_bindir}/avocado-runner-sysinfo-3 +%{_bindir}/avocado-runner-sysinfo +%{_bindir}/avocado-software-manager-%{python3_version} +%{_bindir}/avocado-software-manager-3 +%{_bindir}/avocado-software-manager + + +%package -n python-avocado-common +Summary: Avocado common files +# Automatically converted from old format: GPLv2+ - review is highly recommended. +License: GPL-2.0-or-later + +%description -n python-avocado-common +Common files (such as configuration) for the Avocado Testing Framework. + +%files -n python-avocado-common +%license LICENSE +%{_mandir}/man1/avocado.1.gz +%dir %{_docdir}/avocado +%dir %{_sharedstatedir}/avocado +%dir %{_sysconfdir}/avocado +%dir %{_sysconfdir}/avocado/sysinfo +%dir %{_sysconfdir}/avocado/scripts +%dir %{_sysconfdir}/avocado/scripts/job +%dir %{_sysconfdir}/avocado/scripts/job/pre.d +%dir %{_sysconfdir}/avocado/scripts/job/post.d +%config(noreplace) %{_sysconfdir}/avocado/sysinfo/commands +%config(noreplace) %{_sysconfdir}/avocado/sysinfo/files +%config(noreplace) %{_sysconfdir}/avocado/sysinfo/profilers +%{_sysconfdir}/avocado/scripts/job/pre.d/README +%{_sysconfdir}/avocado/scripts/job/post.d/README + + +%package -n python3-avocado-plugins-output-html +Summary: Avocado HTML report plugin +License: GPL-2.0-or-later AND MIT +Requires: python3-avocado == %{version}-%{release} + +%description -n python3-avocado-plugins-output-html +Adds to avocado the ability to generate an HTML report at every job results +directory. It also gives the user the ability to write a report on an +arbitrary filesystem location. + +%files -n python3-avocado-plugins-output-html +%{python3_sitelib}/avocado_result_html/ +%{python3_sitelib}/avocado_framework_plugin_result_html-%{version}-py%{python3_version}.egg-info + + +%if %{with_resultsdb} +%package -n python3-avocado-plugins-resultsdb +Summary: Avocado plugin to propagate job results to ResultsDB +# Automatically converted from old format: GPLv2+ - review is highly recommended. +License: GPL-2.0-or-later +Requires: python3-avocado == %{version}-%{release} + +%description -n python3-avocado-plugins-resultsdb +Allows Avocado to send job results directly to a ResultsDB +server. + +%files -n python3-avocado-plugins-resultsdb +%{python3_sitelib}/avocado_resultsdb/ +%{python3_sitelib}/avocado_framework_plugin_resultsdb-%{version}-py%{python3_version}.egg-info +%endif +# with_resultsdb + + +%package -n python3-avocado-plugins-varianter-yaml-to-mux +Summary: Avocado plugin to generate variants out of yaml files +# Automatically converted from old format: GPLv2+ - review is highly recommended. +License: GPL-2.0-or-later +Requires: python3-avocado == %{version}-%{release} + +%description -n python3-avocado-plugins-varianter-yaml-to-mux +Can be used to produce multiple test variants with test parameters +defined in a yaml file(s). + +%files -n python3-avocado-plugins-varianter-yaml-to-mux +%{python3_sitelib}/avocado_varianter_yaml_to_mux/ +%{python3_sitelib}/avocado_framework_plugin_varianter_yaml_to_mux-%{version}-py%{python3_version}.egg-info + + +%package -n python3-avocado-plugins-golang +Summary: Avocado plugin for execution of golang tests +# Automatically converted from old format: GPLv2+ - review is highly recommended. +License: GPL-2.0-or-later +Requires: python3-avocado == %{version}-%{release} +Requires: golang + +%description -n python3-avocado-plugins-golang +Allows Avocado to list golang tests, and if golang is installed, +also run them. + +%files -n python3-avocado-plugins-golang +%{python3_sitelib}/avocado_golang/ +%{python3_sitelib}/avocado_framework_plugin_golang-%{version}-py%{python3_version}.egg-info +%{_bindir}/avocado-runner-golang + + +%package -n python3-avocado-plugins-varianter-pict +Summary: Varianter with combinatorial capabilities by PICT +# Automatically converted from old format: GPLv2+ - review is highly recommended. +License: GPL-2.0-or-later +Requires: python3-avocado == %{version}-%{release} + +%description -n python3-avocado-plugins-varianter-pict +This plugin uses a third-party tool to provide variants created by +Pair-Wise algorithms, also known as Combinatorial Independent Testing. + +%files -n python3-avocado-plugins-varianter-pict +%{python3_sitelib}/avocado_varianter_pict/ +%{python3_sitelib}/avocado_framework_plugin_varianter_pict-%{version}-py%{python3_version}.egg-info + + +%package -n python3-avocado-plugins-varianter-cit +Summary: Varianter with Combinatorial Independent Testing capabilities +# Automatically converted from old format: GPLv2+ - review is highly recommended. +License: GPL-2.0-or-later +Requires: python3-avocado == %{version}-%{release} + +%description -n python3-avocado-plugins-varianter-cit +A varianter plugin that generates variants using Combinatorial +Independent Testing (AKA Pair-Wise) algorithm developed in +collaboration with CVUT Prague. + +%files -n python3-avocado-plugins-varianter-cit +%{python3_sitelib}/avocado_varianter_cit/ +%{python3_sitelib}/avocado_framework_plugin_varianter_cit-%{version}-py%{python3_version}.egg-info + + +%package -n python3-avocado-plugins-result-upload +Summary: Avocado plugin propagate job results to a remote host +# Automatically converted from old format: GPLv2+ - review is highly recommended. +License: GPL-2.0-or-later +Requires: python3-avocado == %{version}-%{release} + +%description -n python3-avocado-plugins-result-upload +This optional plugin is intended to upload the Avocado Job results to +a dedicated sever. + +%files -n python3-avocado-plugins-result-upload +%{python3_sitelib}/avocado_result_upload/ +%{python3_sitelib}/avocado_framework_plugin_result_upload-%{version}-py%{python3_version}.egg-info + + +%package -n python-avocado-examples +Summary: Avocado Test Framework Example Tests +# Automatically converted from old format: GPLv2+ - review is highly recommended. +License: GPL-2.0-or-later +# documentation does not require main package, but needs to be in lock-step if present +Conflicts: python3-avocado < %{version}-%{release}, python3-avocado > %{version}-%{release} + +%description -n python-avocado-examples +The set of example tests present in the upstream tree of the Avocado framework. +Some of them are used as functional tests of the framework, others serve as +examples of how to write tests on your own. + +%files -n python-avocado-examples +%license LICENSE +%dir %{_docdir}/avocado +%{_docdir}/avocado/gdb-prerun-scripts +%{_docdir}/avocado/plugins +%{_docdir}/avocado/tests +%{_docdir}/avocado/varianter_cit +%{_docdir}/avocado/varianter_pict +%{_docdir}/avocado/wrappers +%{_docdir}/avocado/yaml_to_mux + + +%package -n python-avocado-bash +Summary: Avocado Test Framework Bash Utilities +License: GPL-2.0-or-later AND GPL-2.0-only +Requires: python-avocado-common == %{version}-%{release} + +%description -n python-avocado-bash +A small set of utilities to interact with Avocado from the Bourne +Again Shell code (and possibly other similar shells). + +%files -n python-avocado-bash +%license LICENSE +%dir %{_libexecdir}/avocado +%{_libexecdir}/avocado/avocado-bash-utils +%{_libexecdir}/avocado/avocado_debug +%{_libexecdir}/avocado/avocado_error +%{_libexecdir}/avocado/avocado_info +%{_libexecdir}/avocado/avocado_warn + + +%changelog +* Fri Jul 25 2025 Fedora Release Engineering - 92.3-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Tue Jun 03 2025 Python Maint - 92.3-5 +- Rebuilt for Python 3.14 + +* Mon Jan 20 2025 Miro Hrončok - 92.3-4 +- Loosen the PyYAML version requirement in python3-avocado-plugins-varianter-yaml-to-mux + +* Mon Jan 20 2025 Cleber Rosa - 92.3-3 +- convert remaining licenses to SPDX + +* Sat Jan 18 2025 Fedora Release Engineering - 92.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Mon Aug 19 2024 Cleber Rosa - 92.3-1 +- Updated to 92.3 +- Support building and running under Python 3.13 for F42 +- Removed patch from 92.1 as its present in 92.3 + +* Fri Jul 26 2024 Miroslav Suchý - 92.1-8 +- convert license to SPDX + +* Fri Jul 19 2024 Fedora Release Engineering - 92.1-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Fri Jun 07 2024 Python Maint - 92.1-6 +- Rebuilt for Python 3.13 + +* Mon Jan 29 2024 Fedora Release Engineering - 92.1-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Jan 26 2024 Fedora Release Engineering - 92.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sun Jan 21 2024 Fedora Release Engineering - 92.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Jul 21 2023 Fedora Release Engineering - 92.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Mon Jul 17 2023 Cleber Rosa - 92.1-1 +- Updated to 92.1 +- Support building and running under Python 3.12 for F39 + +* Wed Jun 14 2023 Python Maint - 92.0-3 +- Rebuilt for Python 3.12 + +* Fri Jan 20 2023 Fedora Release Engineering - 92.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Tue Aug 9 2022 Cleber Rosa - 92.0-1 +- Use selftests/check.py job instead of more limited selftests/run +- Included avocado-runner-sysinfo, avocado-runner-requirement-package, + avocado-runner-requirement-asset and avocado-runner-dry-run and + avocado-runner-golang executables +- Removed avocado-runner-exec executable +- Removed loader_yaml and glib plugin packages + +* Fri Jul 22 2022 Fedora Release Engineering - 82.0-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Tue Jun 21 2022 Python Maint - 82.0-6 +- Rebuilt for Python 3.11 + +* Fri Jan 21 2022 Fedora Release Engineering - 82.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Wed Jul 28 2021 Merlin Mathesius - 82.0-4 +- Loosen jinja2 version requirement to fix FTBFS in Rawhide + +* Fri Jul 23 2021 Fedora Release Engineering - 82.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Thu Mar 18 2021 Merlin Mathesius - 82.0-2 +- Drop obsolete packages from BuildRequires +- Generate man page directly using 'rst2man' rather than requiring 'make' +- Adjust PATH to make sure self-tests find internal modules +- Spec file cleanup following package review. + +* Mon Sep 14 2020 Cleber Rosa - 82.0-1 +- Sync with upstream release 82.0. +- Removed python libvirt depedency as the vm runner has been removed + upstream +- Dropped configuration files to sync with upstream which made them + optional and doesn't ship them anymore +- Add on extra character to short commit to sync with upstream + +* Sat Jun 6 2020 Cleber Rosa - 80.0-1 +- Sync with upstream release 80.0. +- Dropped use of custom avocado command for tests +- Do not build deprecated runners + +* Tue May 12 2020 Cleber Rosa - 79.0-1 +- Sync with upstream release 79.0. +- Added Python's user base bin dir to the PATH environment variable + while running tests, so that avocado-runner-* scripts can be found +- Moved comment to new lines closing the conditionals, to avoid + errors from rpmlint and rpmbuild + +* Wed Apr 15 2020 Merlin Mathesius - 78.0-1 +- Sync with upstream release 78.0. + +* Tue Mar 17 2020 Merlin Mathesius - 77.0-1 +- Sync with upstream release 77.0. + +* Mon Mar 09 2020 Merlin Mathesius - 76.0-1 +- Sync with upstream release 76.0. + +* Mon Jan 20 2020 Merlin Mathesius - 75.1-1 +- Sync with upstream release 75.1. + +* Mon Dec 23 2019 Merlin Mathesius - 74.0-1 +- Sync with upstream release 74.0. + +* Wed Nov 27 2019 Merlin Mathesius - 73.0-1 +- Sync with upstream release 73.0. +- Adjustments to build for RHEL 8. + +* Wed Oct 02 2019 Merlin Mathesius - 72.0-1 +- Sync with upstream release 72.0. + +* Wed Aug 28 2019 Merlin Mathesius - 71.0-1 +- Sync with upstream release 71.0. + +* Wed Jun 26 2019 Merlin Mathesius - 70.0-1 +- Sync with upstream release 70.0. +- Drop all Python 2 support from SPEC file. + +* Wed May 22 2019 Merlin Mathesius - 69.0-4 +- pyliblzma is Python 2-only and no longer available as of F31. +- Unversioned executables should now be Python 3. + +* Mon May 20 2019 Merlin Mathesius - 69.0-3 +- Drop Python 2 support from F31 and RHEL8 onward. +- Disable components dependent upon Fiber in Fedora 31 and later, + since avocado is currently incompatible with the new Fiber API. + +* Tue Mar 19 2019 Merlin Mathesius - 69.0-2 +- python2-sphinx is no longer available or needed as of F31 + +* Wed Feb 27 2019 Merlin Mathesius - 69.0-1 +- Sync with upstream release 69.0. + +* Fri Feb 22 2019 Merlin Mathesius - 68.0-1 +- Sync with upstream release 68.0. + +* Thu Jan 31 2019 Merlin Mathesius - 67.0-1 +- Sync with upstream release 67.0. +- genisoimage, libcdio, and psmisc added as build deps so iso9660 tests run. +- Replace pystache requirement with jinja2. +- glibc-all-langpacks added as build dep for F30+ so vmimage tests run. +- python2-resultsdb_api package has been removed in F30 so + python2-avocado-plugins-resultsdb was also disabled. + +* Wed Nov 21 2018 Merlin Mathesius - 66.0-1 +- Sync with upstream release 66.0. +- python2-pycdlib package has been removed in F30 as part of + https://fedoraproject.org/wiki/Changes/Mass_Python_2_Package_Removal + +* Thu Oct 04 2018 Merlin Mathesius - 65.0-1 +- Sync with upstream release 65.0. + +* Tue Aug 28 2018 Merlin Mathesius - 64.0-1 +- Sync with upstream release 64.0. + +* Thu Jul 26 2018 Merlin Mathesius - 63.0-2 +- Added missing python[2]-enum34 requirement. + +* Mon Jul 23 2018 Merlin Mathesius - 63.0-1 +- Sync with upstream release 63.0. (BZ#1602175) + Include upstream patches needed to build for Rawhide. + +* Wed Jun 13 2018 Merlin Mathesius - 62.0-1 +- Sync with upstream release 62.0. (BZ#1590572) +- Correct libvirt dependency for EPEL7/RHEL7 + +* Thu May 17 2018 Merlin Mathesius - 61.0-1 +- Sync with upstream release 61.0. +- Packaging updates for Python 3. +- Reorganize SPEC file. + +* Mon Apr 9 2018 Cleber Rosa - 52.1-2 +- Added Fedora CI tests + +* Tue Apr 03 2018 Merlin Mathesius - 52.1-1 +- Sync with upstream release 52.1 (LTS series). +- Correct deprecated use of unversioned python. + +* Mon Mar 26 2018 Iryna Shcherbina - 52.0-5 +- Update Python 2 dependency declarations to new packaging standards + (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3) + +* Fri Feb 09 2018 Fedora Release Engineering - 52.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Wed Aug 09 2017 Merlin Mathesius - 52.0-3 +- Fix FTBFS error by disabling selfcheck producing false failures +- Update SPEC to use pkgname instead of srcname macro where appropriate + +* Thu Jul 27 2017 Fedora Release Engineering - 52.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Thu Jun 29 2017 Merlin Mathesius - 52.0-1 +- Sync with upstream release 52.0. (BZ#1465409) + +* Wed Jun 14 2017 Merlin Mathesius - 51.0-1 +- Sync with upstream release 51.0. (BZ#1460837) +- Disable selftests when libvirt may not be available. + +* Wed May 17 2017 Merlin Mathesius - 50.0-1 +- Sync with upstream release 50.0. (BZ#1431413) +- Be explicit about selftest level run on check. + +* Tue Apr 25 2017 Merlin Mathesius - 49.0-1 +- Sync with upstream release 49.0. (BZ#1431413) + +* Tue Apr 18 2017 Merlin Mathesius - 48.0-1 +- Sync with upstream release 48.0. (BZ#1431413) +- Allow rel_build macro to be defined outside of the SPEC file. + +* Mon Mar 27 2017 Merlin Mathesius - 47.0-1 +- Sync with upstream release 47.0. +- Enable self-tests during build. +- Add example test to be run by Taskotron. + +* Mon Feb 27 2017 Merlin Mathesius - 46.0-2 +- Incorporate upstream SPEC file changes to split plugins into subpackages. +- Remove obsolete CC-BY-SA license, which went away with the halflings font. + +* Tue Feb 14 2017 Merlin Mathesius - 46.0-1 +- Sync with upstream release 46.0. +- Remove halflings license since font was removed from upstream. +- SPEC updates to easily switch between release and snapshot builds. + +* Sat Feb 11 2017 Fedora Release Engineering - 43.0-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Tue Jan 10 2017 Merlin Mathesius - 43.0-7 +- SPEC updates to build and install for EPEL. + +* Mon Nov 21 2016 Merlin Mathesius - 43.0-6 +- Initial packaging for Fedora. diff --git a/sources b/sources new file mode 100644 index 0000000..4a738a2 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (avocado-92.3.tar.gz) = 97a0c113bc826537a02ebf6efcd7cf49b505a93e5fd9686c3a4c7e70902f2d367f78eb2fb23ddf9253b97f45e27b2e328fd6bd1c420ecbeb59e25e991b29c262 diff --git a/tests/gdbtest.py b/tests/gdbtest.py new file mode 100755 index 0000000..c0cdc55 --- /dev/null +++ b/tests/gdbtest.py @@ -0,0 +1,347 @@ +import os + +from avocado import Test +from avocado.utils import gdb, genio, process + + +class GdbTest(Test): + + """ + Execute the gdb test + + :avocado: tags=requires_c_compiler + """ + + VALID_CMDS = ["-list-target-features", + "-break-info", + "-break-list", + "-thread-info", + "-stack-info-frame", + "-stack-info-depth"] + + INVALID_CMDS = ["-foobar", + "-magic8ball", + "-find-me-the-bug", + "-auto-debug-it"] + + def setUp(self): + self.return99_binary_path = os.path.join(self.teststmpdir, 'return99') + if not os.path.exists(self.return99_binary_path): + return99_source_path = self.get_data('return99.c') + if return99_source_path is None: + self.cancel('Test is missing data file "return99.c"') + process.system(f'gcc -O0 -g {return99_source_path} -o {self.return99_binary_path}') + + self.segfault_binary_path = os.path.join(self.teststmpdir, 'segfault') + if not os.path.exists(self.segfault_binary_path): + segfault_source_path = self.get_data('segfault.c') + if segfault_source_path is None: + self.cancel('Test is missing data file "segfault.c"') + process.system(f'gcc -O0 -g {segfault_source_path} -o {self.segfault_binary_path}') + + @staticmethod + def is_process_alive(process): # pylint: disable=W0621 + """ + Checks if a process is still alive + + :param process: a :class:`subprocess.POpen` instance + :type process: :class:`subprocess.POpen` + :returns: True or False + :rtype: bool + """ + return process.poll() is None + + def test_start_exit(self): + """ + Tests execution of multiple GDB instances without any blocking or race + """ + self.log.info("Testing execution of multiple GDB instances") + process_count = 10 + gdb_instances = [] + for i in range(0, process_count): + gdb_instances.append(gdb.GDB()) + + for i in range(0, process_count): + self.assertEqual(gdb_instances[i].exit(), 0) + + def test_existing_commands_raw(self): + """ + Tests the GDB response to commands that exist and to those that do not + """ + g = gdb.GDB() + self.log.info("Testing existing (valid) GDB commands using raw commands") + for cmd in self.VALID_CMDS: + info_cmd = f"-info-gdb-mi-command {cmd[1:]}" + r = g.cmd(info_cmd) + self.assertEqual(r.result.result.command.exists, 'true') + + self.log.info("Testing non-existing (invalid) GDB commands using raw " + "commands") + for cmd in self.INVALID_CMDS: + info_cmd = f"-info-gdb-mi-command {cmd[1:]}" + r = g.cmd(info_cmd) + self.assertEqual(r.result.result.command.exists, 'false') + + def test_existing_commands(self): + g = gdb.GDB() + + self.log.info("Testing existing (valid) GDB commands using utility " + "methods") + for cmd in self.VALID_CMDS: + self.assertTrue(g.cmd_exists(cmd)) + g.cmd(cmd) + + self.log.info("Testing non-existing (invalid) GDB commands using " + "utility methods") + for cmd in self.INVALID_CMDS: + self.assertFalse(g.cmd_exists(cmd)) + + def test_load_set_breakpoint_run_exit_raw(self): + """ + Test a common GDB cycle using raw commands: load, set break, run, exit + """ + self.log.info("Testing that GDB loads a file and sets a breakpoint") + g = gdb.GDB() + + file_cmd = f"-file-exec-and-symbols {self.return99_binary_path}" + r = g.cmd(file_cmd) + self.assertEqual(r.result.class_, 'done') + + break_cmd = "-break-insert 5" + r = g.cmd(break_cmd) + self.assertEqual(r.result.class_, 'done') + self.assertEqual(r.result.result.bkpt.number, '1') + self.assertEqual(r.result.result.bkpt.enabled, 'y') + + break_del_cmd = "-break-delete 1" + r = g.cmd(break_del_cmd) + self.assertEqual(r.result.class_, 'done') + + run_cmd = "-exec-run" + r = g.cmd(run_cmd) + self.assertEqual(r.result.class_, 'running') + + g.cmd("-gdb-exit") + self.assertEqual(g.process.wait(), 0) + + def test_load_set_breakpoint_run_exit(self): + """ + Test a common GDB cycle: load, set break, delete break, run, exit + """ + self.log.info("Testing a common GDB cycle") + g = gdb.GDB() + g.set_file(self.return99_binary_path) + g.set_break("5") + g.del_break(1) + g.run() + g.exit() + + def test_generate_core(self): + """ + Load a file that will cause a segfault and produce a core dump + """ + self.log.info("Testing that a core dump will be generated") + + g = gdb.GDB() + file_cmd = f"-file-exec-and-symbols {self.segfault_binary_path}" + r = g.cmd(file_cmd) + self.assertEqual(r.result.class_, 'done') + + run_cmd = "-exec-run" + r = g.cmd(run_cmd) + self.assertEqual(r.result.class_, 'running') + + other_messages = g.read_until_break() + core_path = None + for msg in other_messages: + parsed_msg = gdb.parse_mi(msg.decode()) + if (hasattr(parsed_msg, 'class_') and + (parsed_msg.class_ == 'stopped') and + (parsed_msg.result.signal_name == 'SIGSEGV')): + core_path = f"{self.segfault_binary_path}.core" + gcore_cmd = f'gcore {core_path}' + gcore_cmd = gdb.encode_mi_cli(gcore_cmd) + r = g.cmd(gcore_cmd) + self.assertEqual(r.result.class_, 'done') + + self.assertTrue(os.path.exists(core_path)) + g.exit() + + def test_set_multiple_break(self): + """ + Tests that multiple breakpoints do not interfere with each other + """ + self.log.info("Testing setting multiple breakpoints") + g = gdb.GDB() + g.set_file(self.return99_binary_path) + g.set_break('empty') + g.set_break('7') + g.exit() + + def test_disconnect_raw(self): + """ + Connect/disconnect repeatedly from a remote debugger using raw commands + """ + self.log.info("Testing connecting and disconnecting repeatedly using " + "raw commands") + s = gdb.GDBServer() + g = gdb.GDB() + + # Do 100 cycle of target (kind of connects) and disconnects + for _ in range(0, 100): + cmd = f'-target-select extended-remote :{s.port}' + r = g.cmd(cmd) + self.assertEqual(r.result.class_, 'connected') + r = g.cmd('-target-disconnect') + self.assertEqual(r.result.class_, 'done') + + # manual server shutdown + cmd = f'-target-select extended-remote :{s.port}' + r = g.cmd(cmd) + self.assertEqual(r.result.class_, 'connected') + r = g.cli_cmd('monitor exit') + self.assertEqual(r.result.class_, 'done') + + g.exit() + s.exit() + + def test_disconnect(self): + """ + Connect/disconnect repeatedly from a remote debugger using utilities + """ + self.log.info("Testing connecting and disconnecting repeatedly") + s = gdb.GDBServer() + g = gdb.GDB() + + for _ in range(0, 100): + r = g.connect(s.port) + self.assertEqual(r.result.class_, 'connected') + r = g.disconnect() + self.assertEqual(r.result.class_, 'done') + + g.exit() + s.exit() + + def test_remote_exec(self): + """ + Tests execution on a remote target + """ + self.log.info("Testing execution on a remote target") + hit_breakpoint = False + + s = gdb.GDBServer() + g = gdb.GDB() + + cmd = f'-file-exec-and-symbols {self.return99_binary_path}' + r = g.cmd(cmd) + self.assertEqual(r.result.class_, 'done') + + cmd = f'set remote exec-file {self.return99_binary_path}' + r = g.cmd(cmd) + self.assertEqual(r.result.class_, 'done') + + cmd = f"-break-insert {'main'}" + r = g.cmd(cmd) + self.assertEqual(r.result.class_, 'done') + + r = g.cmd('-exec-run') + + other_messages = g.read_until_break() + for msg in other_messages: + parsed_msg = gdb.parse_mi(msg.decode()) + if (hasattr(parsed_msg, 'class_') and + parsed_msg.class_ == 'stopped' and + parsed_msg.result.reason == 'breakpoint-hit'): + hit_breakpoint = True + + self.assertTrue(hit_breakpoint) + g.exit() + s.exit() + + def test_stream_messages(self): + """ + Tests if the expected response appears in the result stream messages + """ + self.log.info("Testing that messages appears in the result stream") + g = gdb.GDB() + r = g.cmd("-gdb-version") + self.assertIn("GNU GPL version", r.get_stream_messages_text()) + + def test_connect_multiple_clients(self): + """ + Tests two or more connections to the same server raise an exception + """ + self.log.info("Testing that multiple clients cannot connect at once") + s = gdb.GDBServer() + c1 = gdb.GDB() + c1.connect(s.port) + c2 = gdb.GDB() + with self.assertRaises(gdb.UnexpectedResponseError): + c2.connect(s.port) + s.exit() + + def test_server_exit(self): + """ + Tests that the server is shutdown by using a monitor exit command + """ + self.log.info("Testing that a single server exits cleanly") + s = gdb.GDBServer() + s.exit() + self.assertFalse(self.is_process_alive(s.process)) + + def test_multiple_servers(self): + """ + Tests multiple server instances without any blocking or race condition + """ + self.log.info("Testing execution of multiple GDB server instances") + process_count = 10 + server_instances = [] + for i in range(0, process_count): + s = gdb.GDBServer() + c = gdb.GDB() + c.connect(s.port) + c.cmd('show-version') + c.disconnect() + server_instances.append(s) + + for i in range(0, process_count): + self.assertTrue(self.is_process_alive(server_instances[i].process)) + server_instances[i].exit() + self.assertFalse(self.is_process_alive(server_instances[i].process)) + + def test_server_stderr(self): + self.log.info('Testing server stderr collection') + s = gdb.GDBServer() + s.exit() + self.assertTrue(os.path.exists(s.stderr_path)) + + stderr_lines = genio.read_all_lines(s.stderr_path) + listening_line = f"Listening on port {s.port}" + self.assertIn(listening_line, stderr_lines) + + def test_server_stdout(self): + self.log.info('Testing server stdout/stderr collection') + s = gdb.GDBServer() + c = gdb.GDB() + c.connect(s.port) + c.set_file(self.return99_binary_path) + c.run() + s.exit() + + self.assertTrue(os.path.exists(s.stdout_path)) + self.assertTrue(os.path.exists(s.stderr_path)) + + stdout_lines = genio.read_all_lines(s.stdout_path) + self.assertIn("return 99", stdout_lines) + + @staticmethod + def test_remote(): + """ + Tests GDBRemote interaction with a GDBServer + """ + s = gdb.GDBServer() + r = gdb.GDBRemote('127.0.0.1', s.port) + r.connect() + r.cmd(b"qSupported") + r.cmd(b"qfThreadInfo") + s.exit() diff --git a/tests/gdbtest.py.data/return99.c b/tests/gdbtest.py.data/return99.c new file mode 100644 index 0000000..bf14935 --- /dev/null +++ b/tests/gdbtest.py.data/return99.c @@ -0,0 +1,47 @@ +#include +#include + +void empty() +{ +} + +void write_stdout() +{ + fprintf(stdout, "testing output to stdout\n"); +} + +void write_stderr() +{ + fprintf(stderr, "testing output to stderr\n"); +} + +int forkme() +{ + int pid; + + pid = fork(); + if (pid != 0) + pid = fork(); + if (pid != 0) + pid = fork(); + + return pid; +} + +int main(int argc, char *argv[]) +{ + int exit_status = 99; + + if (argc > 1) + exit_status = atoi(argv[1]); + + empty(); + write_stdout(); + write_stderr(); + + if (forkme()) { + fprintf(stdout, "return %i\n", exit_status); + } + + return exit_status; +} diff --git a/tests/gdbtest.py.data/segfault.c b/tests/gdbtest.py.data/segfault.c new file mode 100644 index 0000000..a685f86 --- /dev/null +++ b/tests/gdbtest.py.data/segfault.c @@ -0,0 +1,9 @@ +#include + +int main() +{ + int *p = NULL; + *p = 0xdead; + + return 0; +} diff --git a/tests/tests.yml b/tests/tests.yml new file mode 100644 index 0000000..7ff61ce --- /dev/null +++ b/tests/tests.yml @@ -0,0 +1,25 @@ +- hosts: localhost + roles: + - role: standard-test-avocado + tests: + - gdbtest.py:GdbTest.test_start_exit + - gdbtest.py:GdbTest.test_existing_commands_raw + - gdbtest.py:GdbTest.test_existing_commands + - gdbtest.py:GdbTest.test_load_set_breakpoint_run_exit_raw + - gdbtest.py:GdbTest.test_load_set_breakpoint_run_exit + - gdbtest.py:GdbTest.test_generate_core + - gdbtest.py:GdbTest.test_set_multiple_break + - gdbtest.py:GdbTest.test_disconnect_raw + - gdbtest.py:GdbTest.test_disconnect + - gdbtest.py:GdbTest.test_remote_exec + - gdbtest.py:GdbTest.test_stream_messages + - gdbtest.py:GdbTest.test_connect_multiple_clients + - gdbtest.py:GdbTest.test_server_exit + - gdbtest.py:GdbTest.test_multiple_servers + - gdbtest.py:GdbTest.test_server_stderr + - gdbtest.py:GdbTest.test_server_stdout + - gdbtest.py:GdbTest.test_remote + required_packages: + - gcc + - gdb + - gdb-gdbserver From 5984dca5912a1af67ffe855aff0cbee43723acbc Mon Sep 17 00:00:00 2001 From: Cleber Rosa Date: Mon, 13 Oct 2025 13:18:44 -0400 Subject: [PATCH 55/57] Sync with upstream release 112.0 Signed-off-by: Cleber Rosa --- .gitignore | 1 + python-avocado.spec | 88 ++++++++++++++++++++++++++++++++++++++++++--- sources | 2 +- 3 files changed, 85 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index aed8c8e..b6da59d 100644 --- a/.gitignore +++ b/.gitignore @@ -42,3 +42,4 @@ /avocado-97.0.tar.gz /avocado-98.0.tar.gz /avocado-102.0.tar.gz +/avocado-112.0.tar.gz diff --git a/python-avocado.spec b/python-avocado.spec index 8dc86ad..62fe7d9 100644 --- a/python-avocado.spec +++ b/python-avocado.spec @@ -9,10 +9,10 @@ %global gittar avocado-%{version}.tar.gz %else %if ! 0%{?commit:1} - %global commit 027faa19aba070f7697690cf0b946f6e94ee6bb2 + %global commit e4ede79f097dcc1dbd30e43ffe3b7daf52d2204d %endif %if ! 0%{?commit_date:1} - %global commit_date 20221714 + %global commit_date 20251010 %endif %global shortcommit %(c=%{commit};echo ${c:0:9}) %global gitrel .%{commit_date}git%{shortcommit} @@ -36,7 +36,7 @@ %endif Name: python-avocado -Version: 102.0 +Version: 112.0 Release: 1%{?gitrel}%{?dist} Summary: Framework with tools and libraries for Automated Testing # Found licenses: @@ -60,6 +60,9 @@ BuildRequires: python3-jinja2 BuildRequires: python3-lxml BuildRequires: python3-psutil BuildRequires: python3-setuptools +%if ! 0%{?rhel} +BuildRequires: python-aexpect +%endif %if %{with_resultsdb} BuildRequires: python3-resultsdb_api BuildRequires: python3-pycdlib @@ -74,13 +77,16 @@ BuildRequires: libcdio BuildRequires: psmisc %if ! 0%{?rhel} BuildRequires: perl-Test-Harness -BuildRequires: python3-elementpath BuildRequires: python3-xmlschema BuildRequires: ansible-core %endif BuildRequires: glibc-all-langpacks BuildRequires: python3-netifaces BuildRequires: python3-yaml +BuildRequires: nmap-ncat +BuildRequires: gcc +BuildRequires: gdb +BuildRequires: gdb-gdbserver %endif # with tests @@ -94,6 +100,10 @@ these days a framework) to perform automated testing. %if 0%{?rhel} sed -e 's/"PyYAML>=4.2b2"/"PyYAML>=3.12"/' -i optional_plugins/varianter_yaml_to_mux/setup.py %endif +%if 0%{?fedora} >= 42 +sed -e '/"markupsafe<3.0.0"/d' -i optional_plugins/html/setup.py +sed -e '/"markupsafe<3.0.0"/d' -i optional_plugins/ansible/setup.py +%endif %build %py3_build @@ -125,6 +135,14 @@ popd pushd optional_plugins/result_upload %py3_build popd +pushd optional_plugins/mail + %py3_build +popd +%if ! 0%{?rhel} +pushd optional_plugins/spawner_remote + %py3_build +popd +%endif rst2man man/avocado.rst man/avocado.1 %install @@ -139,8 +157,10 @@ for exe in \ avocado-runner-tap \ avocado-runner-asset \ avocado-runner-package \ + avocado-runner-pip \ avocado-runner-podman-image \ avocado-runner-sysinfo \ + avocado-runner-vmimage \ avocado-external-runner \ avocado-software-manager do @@ -181,6 +201,14 @@ popd pushd optional_plugins/result_upload %py3_install popd +pushd optional_plugins/mail + %py3_install +popd +%if ! 0%{?rhel} +pushd optional_plugins/spawner_remote + %py3_install +popd +%endif # cleanup plugin test cruft rm -rf %{buildroot}%{python3_sitelib}/tests mkdir -p %{buildroot}%{_sysconfdir}/avocado @@ -205,9 +233,10 @@ cp -r examples/tests %{buildroot}%{_docdir}/avocado/tests cp -r examples/varianter_cit %{buildroot}%{_docdir}/avocado/varianter_cit cp -r examples/varianter_pict %{buildroot}%{_docdir}/avocado/varianter_pict cp -r examples/yaml_to_mux %{buildroot}%{_docdir}/avocado/yaml_to_mux +mkdir -p %{buildroot}%{_datarootdir}/avocado +mv %{buildroot}%{python3_sitelib}/avocado/schemas %{buildroot}%{_datarootdir}/avocado find %{buildroot}%{_docdir}/avocado -type f -name '*.py' -exec chmod -c -x {} ';' - %if %{with tests} %check # LANG: to make the results predictable, we pin the language @@ -269,12 +298,18 @@ these days a framework) to perform automated testing. %{_bindir}/avocado-runner-package-%{python3_version} %{_bindir}/avocado-runner-package-3 %{_bindir}/avocado-runner-package +%{_bindir}/avocado-runner-pip-%{python3_version} +%{_bindir}/avocado-runner-pip-3 +%{_bindir}/avocado-runner-pip %{_bindir}/avocado-runner-podman-image-%{python3_version} %{_bindir}/avocado-runner-podman-image-3 %{_bindir}/avocado-runner-podman-image %{_bindir}/avocado-runner-sysinfo-%{python3_version} %{_bindir}/avocado-runner-sysinfo-3 %{_bindir}/avocado-runner-sysinfo +%{_bindir}/avocado-runner-vmimage-%{python3_version} +%{_bindir}/avocado-runner-vmimage-3 +%{_bindir}/avocado-runner-vmimage %{_bindir}/avocado-software-manager-%{python3_version} %{_bindir}/avocado-software-manager-3 %{_bindir}/avocado-software-manager @@ -301,6 +336,10 @@ Common files (such as configuration) for the Avocado Testing Framework. %dir %{_sysconfdir}/avocado/scripts/job %dir %{_sysconfdir}/avocado/scripts/job/pre.d %dir %{_sysconfdir}/avocado/scripts/job/post.d +%dir %{_sharedstatedir}/avocado/data +%dir %{_datarootdir}/avocado +%dir %{_datarootdir}/avocado/schemas +%{_datarootdir}/avocado/schemas/* %config(noreplace) %{_sysconfdir}/avocado/sysinfo/commands %config(noreplace) %{_sysconfdir}/avocado/sysinfo/files %config(noreplace) %{_sysconfdir}/avocado/sysinfo/profilers @@ -430,6 +469,32 @@ a dedicated sever. %{python3_sitelib}/avocado_result_upload/ %{python3_sitelib}/avocado_framework_plugin_result_upload-%{version}-py%{python3_version}.egg-info +%package -n python3-avocado-plugins-result-mail +Summary: Avocado Mail Notification for Jobs +License: GPLv2+ +Requires: python3-avocado == %{version}-%{release} + +%description -n python3-avocado-plugins-result-mail +The Mail result plugin enables you to receive email notifications +for job start and completion events within the Avocado testing framework. + +%files -n python3-avocado-plugins-result-mail +%{python3_sitelib}/avocado_result_mail* +%{python3_sitelib}/avocado_framework_plugin_result_mail* + +%if ! 0%{?rhel} +%package -n python3-avocado-plugins-spawner-remote +Summary: Avocado Plugin to spawn tests on a remote host +License: GPLv2+ +Requires: python3-avocado == %{version}-%{release} + +%description -n python3-avocado-plugins-spawner-remote +This optional plugin is intended to spawn tests on a remote host. + +%files -n python3-avocado-plugins-spawner-remote +%{python3_sitelib}/avocado_spawner_remote* +%{python3_sitelib}/avocado_framework_plugin_spawner_remote* +%endif %package -n python-avocado-examples Summary: Avocado Test Framework Example Tests @@ -473,6 +538,19 @@ Again Shell code (and possibly other similar shells). %changelog +* Fri Oct 10 2025 Cleber Rosa - 112.0-1 +- Sync with upstream release 112.0 +- Removed python3-elementpath build requirement +- Made the remote spawner a proper sub package +- Packaged JSON schema files +- Introduced new sub package for mail plugin +- Removed the pinning of markupsafe on Fedora 42 and later +- Packaged avocado-runner-pip +- Packaged avocado-runner-vmimage +- Provide requirements for running the functional test + nrunner.py:TaskRunStatusService.test_task_status_service_lost +- Require gcc, gdb and gdb-gdbserver for tests + * Mon Jul 17 2023 Cleber Rosa - 102.0-1 - Sync with upstream release 102.0 - Added new avocado-runner-podman-image script diff --git a/sources b/sources index df8cd21..6494afc 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (avocado-102.0.tar.gz) = 8c772fd4bef31ed04072e52a88a1d3af7bd28021573d138beacac270774e89b801f8430e80e46453a6c8dc51fe4472310d294271a1e801fbb31dc1dae2b7b1c3 +SHA512 (avocado-112.0.tar.gz) = 1872eda730f5cd28f0562732464ce14b2c7731cedb298fcc4b093a04235d26cc5e3db7f92c3ae3edcd6104ad2db4fce66fa7a6148da754e4bdb8120fa12a75a3 From ee5cf26e92cedda66aa656f5cb9dc608c114953d Mon Sep 17 00:00:00 2001 From: Cleber Rosa Date: Tue, 14 Oct 2025 12:55:50 -0400 Subject: [PATCH 56/57] Sync with upstream release 112.0 Signed-off-by: Cleber Rosa --- .gitignore | 1 + python-avocado.spec | 211 ++++++++++++++++++++++++++++++++------------ sources | 2 +- tests/tests.yml | 10 ++- 4 files changed, 163 insertions(+), 61 deletions(-) diff --git a/.gitignore b/.gitignore index bd8b053..00ef136 100644 --- a/.gitignore +++ b/.gitignore @@ -32,3 +32,4 @@ /avocado-92.1.tar.gz /avocado-92.1-python312.patch /avocado-92.3.tar.gz +/avocado-112.0.tar.gz diff --git a/python-avocado.spec b/python-avocado.spec index 4c1803a..8dd8cf4 100644 --- a/python-avocado.spec +++ b/python-avocado.spec @@ -9,10 +9,10 @@ %global gittar avocado-%{version}.tar.gz %else %if ! 0%{?commit:1} - %global commit 5b21f030001d6eed69c0357cc45b6128c73dc860 + %global commit e4ede79f097dcc1dbd30e43ffe3b7daf52d2204d %endif %if ! 0%{?commit_date:1} - %global commit_date 20240819 + %global commit_date 20251010 %endif %global shortcommit %(c=%{commit};echo ${c:0:9}) %global gitrel .%{commit_date}git%{shortcommit} @@ -24,18 +24,20 @@ # the functional tests are time and resource sensitive and can # cause race conditions and random build failures. They are # enabled by default. -%global with_tests 1 +# You can disable them with rpmbuild ... --without tests +%bcond_without tests -# resultsdb is not available for RHEL -%if ! 0%{?rhel} +# Only Fedora 36 and later have a suitable python3-resutlsdb_api +# package +%if 0%{?fedora} >= 36 %global with_resultsdb 1 %else %global with_resultsdb 0 %endif Name: python-avocado -Version: 92.3 -Release: 6%{?gitrel}%{?dist} +Version: 112.0 +Release: 1%{?gitrel}%{?dist} Summary: Framework with tools and libraries for Automated Testing # Found licenses: # avocado/core/tapparser.py: MIT @@ -45,7 +47,7 @@ Summary: Framework with tools and libraries for Automated Testing # optional_plugins/html/avocado_result_html/templates/bootstrap.min.js: MIT # selftests/.data/jenkins-junit.xsd: MIT # Other files: GPLv2 and GPLv2+ -License: GPL-2.0-or-later AND GPL-2.0-only AND MIT +License: GPLv2+ and GPLv2 and MIT URL: https://avocado-framework.github.io/ Source0: https://github.com/avocado-framework/avocado/archive/%{gitref}/%{gittar} BuildArch: noarch @@ -58,23 +60,35 @@ BuildRequires: python3-jinja2 BuildRequires: python3-lxml BuildRequires: python3-psutil BuildRequires: python3-setuptools +%if ! 0%{?rhel} +BuildRequires: python-aexpect +%endif %if %{with_resultsdb} BuildRequires: python3-resultsdb_api BuildRequires: python3-pycdlib %endif -%if 0%{?with_tests} +%if %{with tests} +BuildRequires: python3-jsonschema +%if ! 0%{?rhel} >= 9 BuildRequires: genisoimage +%endif BuildRequires: libcdio BuildRequires: psmisc %if ! 0%{?rhel} BuildRequires: perl-Test-Harness +BuildRequires: python3-xmlschema +BuildRequires: ansible-core %endif BuildRequires: glibc-all-langpacks BuildRequires: python3-netifaces BuildRequires: python3-yaml +BuildRequires: nmap-ncat +BuildRequires: gcc +BuildRequires: gdb +BuildRequires: gdb-gdbserver %endif -# with_tests +# with tests %description Avocado is a set of tools and libraries (what people call @@ -84,14 +98,12 @@ these days a framework) to perform automated testing. %prep %setup -q -n avocado-%{gitref} %if 0%{?rhel} -sed -e "s/'PyYAML>=4.2b2'/'PyYAML>=3.12'/" -i optional_plugins/varianter_yaml_to_mux/setup.py +sed -e 's/"PyYAML>=4.2b2"/"PyYAML>=3.12"/' -i optional_plugins/varianter_yaml_to_mux/setup.py +%endif +%if 0%{?fedora} >= 42 +sed -e '/"markupsafe<3.0.0"/d' -i optional_plugins/html/setup.py +sed -e '/"markupsafe<3.0.0"/d' -i optional_plugins/ansible/setup.py %endif -# drop unnecessary install requirement -sed -e "s/'markupsafe<2.0.0', //" -i optional_plugins/html/setup.py -# loosen jinja2 version requirement -sed -e "s/'jinja2<3.0.0'/'jinja2'/" -i optional_plugins/html/setup.py -# loosen pyyaml version requirement -sed -e "s/'PyYAML>=4.2b2,<6.0.2'/'PyYAML>=4.2b2'/" -i optional_plugins/varianter_yaml_to_mux/setup.py %build %py3_build @@ -109,6 +121,11 @@ popd pushd optional_plugins/golang %py3_build popd +%if ! 0%{?rhel} +pushd optional_plugins/ansible + %py3_build +popd +%endif pushd optional_plugins/varianter_pict %py3_build popd @@ -118,22 +135,33 @@ popd pushd optional_plugins/result_upload %py3_build popd +pushd optional_plugins/mail + %py3_build +popd +%if ! 0%{?rhel} +pushd optional_plugins/spawner_remote + %py3_build +popd +%endif rst2man man/avocado.rst man/avocado.1 %install %py3_install for exe in \ avocado \ - avocado-runner \ avocado-runner-noop \ avocado-runner-dry-run \ avocado-runner-exec-test \ avocado-runner-python-unittest \ avocado-runner-avocado-instrumented \ avocado-runner-tap \ - avocado-runner-requirement-asset \ - avocado-runner-requirement-package \ + avocado-runner-asset \ + avocado-runner-package \ + avocado-runner-pip \ + avocado-runner-podman-image \ avocado-runner-sysinfo \ + avocado-runner-vmimage \ + avocado-external-runner \ avocado-software-manager do mv %{buildroot}%{_bindir}/$exe %{buildroot}%{_bindir}/$exe-%{python3_version} @@ -145,9 +173,6 @@ done rm -rf %{buildroot}%{python3_sitelib}/avocado/etc # ditto for libexec files rm -rf %{buildroot}%{python3_sitelib}/avocado/libexec -# adjust permissions for file containing shebang line needed for -# spawning tasks in podman containers -chmod -c +x %{buildroot}%{python3_sitelib}/avocado/core/nrunner.py pushd optional_plugins/html %py3_install popd @@ -162,6 +187,11 @@ popd pushd optional_plugins/golang %py3_install popd +%if ! 0%{?rhel} +pushd optional_plugins/ansible + %py3_install +popd +%endif pushd optional_plugins/varianter_pict %py3_install popd @@ -171,6 +201,14 @@ popd pushd optional_plugins/result_upload %py3_install popd +pushd optional_plugins/mail + %py3_install +popd +%if ! 0%{?rhel} +pushd optional_plugins/spawner_remote + %py3_install +popd +%endif # cleanup plugin test cruft rm -rf %{buildroot}%{python3_sitelib}/tests mkdir -p %{buildroot}%{_sysconfdir}/avocado @@ -194,12 +232,12 @@ cp -r examples/plugins %{buildroot}%{_docdir}/avocado/plugins cp -r examples/tests %{buildroot}%{_docdir}/avocado/tests cp -r examples/varianter_cit %{buildroot}%{_docdir}/avocado/varianter_cit cp -r examples/varianter_pict %{buildroot}%{_docdir}/avocado/varianter_pict -cp -r examples/wrappers %{buildroot}%{_docdir}/avocado/wrappers cp -r examples/yaml_to_mux %{buildroot}%{_docdir}/avocado/yaml_to_mux +mkdir -p %{buildroot}%{_datarootdir}/avocado +mv %{buildroot}%{python3_sitelib}/avocado/schemas %{buildroot}%{_datarootdir}/avocado find %{buildroot}%{_docdir}/avocado -type f -name '*.py' -exec chmod -c -x {} ';' - -%if 0%{?with_tests} +%if %{with tests} %check # LANG: to make the results predictable, we pin the language # that is used during test execution. @@ -210,9 +248,7 @@ find %{buildroot}%{_docdir}/avocado -type f -name '*.py' -exec chmod -c -x {} '; PYTHONPATH=%{buildroot}%{python3_sitelib}:. \ LANG=en_US.UTF-8 \ AVOCADO_CHECK_LEVEL=0 \ - %{python3} selftests/check.py --job-api --nrunner-interface \ - --unit --jobs --functional --optional-plugins \ - --disable-plugin-checks robot + %{python3} selftests/check.py --skip static-checks --disable-plugin-checks robot %endif @@ -238,9 +274,6 @@ these days a framework) to perform automated testing. %{_bindir}/avocado-%{python3_version} %{_bindir}/avocado-3 %{_bindir}/avocado -%{_bindir}/avocado-runner-%{python3_version} -%{_bindir}/avocado-runner-3 -%{_bindir}/avocado-runner %{_bindir}/avocado-runner-noop-%{python3_version} %{_bindir}/avocado-runner-noop-3 %{_bindir}/avocado-runner-noop @@ -259,24 +292,35 @@ these days a framework) to perform automated testing. %{_bindir}/avocado-runner-tap-%{python3_version} %{_bindir}/avocado-runner-tap-3 %{_bindir}/avocado-runner-tap -%{_bindir}/avocado-runner-requirement-asset-%{python3_version} -%{_bindir}/avocado-runner-requirement-asset-3 -%{_bindir}/avocado-runner-requirement-asset -%{_bindir}/avocado-runner-requirement-package-%{python3_version} -%{_bindir}/avocado-runner-requirement-package-3 -%{_bindir}/avocado-runner-requirement-package +%{_bindir}/avocado-runner-asset-%{python3_version} +%{_bindir}/avocado-runner-asset-3 +%{_bindir}/avocado-runner-asset +%{_bindir}/avocado-runner-package-%{python3_version} +%{_bindir}/avocado-runner-package-3 +%{_bindir}/avocado-runner-package +%{_bindir}/avocado-runner-pip-%{python3_version} +%{_bindir}/avocado-runner-pip-3 +%{_bindir}/avocado-runner-pip +%{_bindir}/avocado-runner-podman-image-%{python3_version} +%{_bindir}/avocado-runner-podman-image-3 +%{_bindir}/avocado-runner-podman-image %{_bindir}/avocado-runner-sysinfo-%{python3_version} %{_bindir}/avocado-runner-sysinfo-3 %{_bindir}/avocado-runner-sysinfo +%{_bindir}/avocado-runner-vmimage-%{python3_version} +%{_bindir}/avocado-runner-vmimage-3 +%{_bindir}/avocado-runner-vmimage %{_bindir}/avocado-software-manager-%{python3_version} %{_bindir}/avocado-software-manager-3 %{_bindir}/avocado-software-manager +%{_bindir}/avocado-external-runner-%{python3_version} +%{_bindir}/avocado-external-runner-3 +%{_bindir}/avocado-external-runner %package -n python-avocado-common Summary: Avocado common files -# Automatically converted from old format: GPLv2+ - review is highly recommended. -License: GPL-2.0-or-later +License: GPLv2+ %description -n python-avocado-common Common files (such as configuration) for the Avocado Testing Framework. @@ -292,6 +336,10 @@ Common files (such as configuration) for the Avocado Testing Framework. %dir %{_sysconfdir}/avocado/scripts/job %dir %{_sysconfdir}/avocado/scripts/job/pre.d %dir %{_sysconfdir}/avocado/scripts/job/post.d +%dir %{_sharedstatedir}/avocado/data +%dir %{_datarootdir}/avocado +%dir %{_datarootdir}/avocado/schemas +%{_datarootdir}/avocado/schemas/* %config(noreplace) %{_sysconfdir}/avocado/sysinfo/commands %config(noreplace) %{_sysconfdir}/avocado/sysinfo/files %config(noreplace) %{_sysconfdir}/avocado/sysinfo/profilers @@ -301,7 +349,7 @@ Common files (such as configuration) for the Avocado Testing Framework. %package -n python3-avocado-plugins-output-html Summary: Avocado HTML report plugin -License: GPL-2.0-or-later AND MIT +License: GPLv2+ and MIT Requires: python3-avocado == %{version}-%{release} %description -n python3-avocado-plugins-output-html @@ -317,8 +365,7 @@ arbitrary filesystem location. %if %{with_resultsdb} %package -n python3-avocado-plugins-resultsdb Summary: Avocado plugin to propagate job results to ResultsDB -# Automatically converted from old format: GPLv2+ - review is highly recommended. -License: GPL-2.0-or-later +License: GPLv2+ Requires: python3-avocado == %{version}-%{release} %description -n python3-avocado-plugins-resultsdb @@ -334,8 +381,7 @@ server. %package -n python3-avocado-plugins-varianter-yaml-to-mux Summary: Avocado plugin to generate variants out of yaml files -# Automatically converted from old format: GPLv2+ - review is highly recommended. -License: GPL-2.0-or-later +License: GPLv2+ Requires: python3-avocado == %{version}-%{release} %description -n python3-avocado-plugins-varianter-yaml-to-mux @@ -349,8 +395,7 @@ defined in a yaml file(s). %package -n python3-avocado-plugins-golang Summary: Avocado plugin for execution of golang tests -# Automatically converted from old format: GPLv2+ - review is highly recommended. -License: GPL-2.0-or-later +License: GPLv2+ Requires: python3-avocado == %{version}-%{release} Requires: golang @@ -364,10 +409,27 @@ also run them. %{_bindir}/avocado-runner-golang +%if ! 0%{?rhel} +%package -n python3-avocado-plugins-ansible +Summary: Avocado Ansible Dependency plugin +License: GPLv2+ +Requires: python3-avocado == %{version}-%{release} +Requires: ansible-core + +%description -n python3-avocado-plugins-ansible +Adds to Avocado the ability to use ansible modules as dependecies for +tests. + +%files -n python3-avocado-plugins-ansible +%{python3_sitelib}/avocado_ansible* +%{python3_sitelib}/avocado_framework_plugin_ansible* +%{_bindir}/avocado-runner-ansible-module +%endif + + %package -n python3-avocado-plugins-varianter-pict Summary: Varianter with combinatorial capabilities by PICT -# Automatically converted from old format: GPLv2+ - review is highly recommended. -License: GPL-2.0-or-later +License: GPLv2+ Requires: python3-avocado == %{version}-%{release} %description -n python3-avocado-plugins-varianter-pict @@ -381,8 +443,7 @@ Pair-Wise algorithms, also known as Combinatorial Independent Testing. %package -n python3-avocado-plugins-varianter-cit Summary: Varianter with Combinatorial Independent Testing capabilities -# Automatically converted from old format: GPLv2+ - review is highly recommended. -License: GPL-2.0-or-later +License: GPLv2+ Requires: python3-avocado == %{version}-%{release} %description -n python3-avocado-plugins-varianter-cit @@ -397,8 +458,7 @@ collaboration with CVUT Prague. %package -n python3-avocado-plugins-result-upload Summary: Avocado plugin propagate job results to a remote host -# Automatically converted from old format: GPLv2+ - review is highly recommended. -License: GPL-2.0-or-later +License: GPLv2+ Requires: python3-avocado == %{version}-%{release} %description -n python3-avocado-plugins-result-upload @@ -409,11 +469,36 @@ a dedicated sever. %{python3_sitelib}/avocado_result_upload/ %{python3_sitelib}/avocado_framework_plugin_result_upload-%{version}-py%{python3_version}.egg-info +%package -n python3-avocado-plugins-result-mail +Summary: Avocado Mail Notification for Jobs +License: GPLv2+ +Requires: python3-avocado == %{version}-%{release} + +%description -n python3-avocado-plugins-result-mail +The Mail result plugin enables you to receive email notifications +for job start and completion events within the Avocado testing framework. + +%files -n python3-avocado-plugins-result-mail +%{python3_sitelib}/avocado_result_mail* +%{python3_sitelib}/avocado_framework_plugin_result_mail* + +%if ! 0%{?rhel} +%package -n python3-avocado-plugins-spawner-remote +Summary: Avocado Plugin to spawn tests on a remote host +License: GPLv2+ +Requires: python3-avocado == %{version}-%{release} + +%description -n python3-avocado-plugins-spawner-remote +This optional plugin is intended to spawn tests on a remote host. + +%files -n python3-avocado-plugins-spawner-remote +%{python3_sitelib}/avocado_spawner_remote* +%{python3_sitelib}/avocado_framework_plugin_spawner_remote* +%endif %package -n python-avocado-examples Summary: Avocado Test Framework Example Tests -# Automatically converted from old format: GPLv2+ - review is highly recommended. -License: GPL-2.0-or-later +License: GPLv2+ # documentation does not require main package, but needs to be in lock-step if present Conflicts: python3-avocado < %{version}-%{release}, python3-avocado > %{version}-%{release} @@ -430,13 +515,12 @@ examples of how to write tests on your own. %{_docdir}/avocado/tests %{_docdir}/avocado/varianter_cit %{_docdir}/avocado/varianter_pict -%{_docdir}/avocado/wrappers %{_docdir}/avocado/yaml_to_mux %package -n python-avocado-bash Summary: Avocado Test Framework Bash Utilities -License: GPL-2.0-or-later AND GPL-2.0-only +License: GPLv2+ and GPLv2 Requires: python-avocado-common == %{version}-%{release} %description -n python-avocado-bash @@ -454,6 +538,19 @@ Again Shell code (and possibly other similar shells). %changelog +* Fri Oct 10 2025 Cleber Rosa - 112.0-1 +- Sync with upstream release 112.0 +- Removed python3-elementpath build requirement +- Made the remote spawner a proper sub package +- Packaged JSON schema files +- Introduced new sub package for mail plugin +- Removed the pinning of markupsafe on Fedora 42 and later +- Packaged avocado-runner-pip +- Packaged avocado-runner-vmimage +- Provide requirements for running the functional test + nrunner.py:TaskRunStatusService.test_task_status_service_lost +- Require gcc, gdb and gdb-gdbserver for tests + * Fri Jul 25 2025 Fedora Release Engineering - 92.3-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild diff --git a/sources b/sources index 4a738a2..6494afc 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (avocado-92.3.tar.gz) = 97a0c113bc826537a02ebf6efcd7cf49b505a93e5fd9686c3a4c7e70902f2d367f78eb2fb23ddf9253b97f45e27b2e328fd6bd1c420ecbeb59e25e991b29c262 +SHA512 (avocado-112.0.tar.gz) = 1872eda730f5cd28f0562732464ce14b2c7731cedb298fcc4b093a04235d26cc5e3db7f92c3ae3edcd6104ad2db4fce66fa7a6148da754e4bdb8120fa12a75a3 diff --git a/tests/tests.yml b/tests/tests.yml index 7ff61ce..be4a031 100644 --- a/tests/tests.yml +++ b/tests/tests.yml @@ -3,8 +3,8 @@ - role: standard-test-avocado tests: - gdbtest.py:GdbTest.test_start_exit - - gdbtest.py:GdbTest.test_existing_commands_raw - gdbtest.py:GdbTest.test_existing_commands + - gdbtest.py:GdbTest.test_existing_commands_raw - gdbtest.py:GdbTest.test_load_set_breakpoint_run_exit_raw - gdbtest.py:GdbTest.test_load_set_breakpoint_run_exit - gdbtest.py:GdbTest.test_generate_core @@ -15,9 +15,13 @@ - gdbtest.py:GdbTest.test_stream_messages - gdbtest.py:GdbTest.test_connect_multiple_clients - gdbtest.py:GdbTest.test_server_exit - - gdbtest.py:GdbTest.test_multiple_servers - - gdbtest.py:GdbTest.test_server_stderr - gdbtest.py:GdbTest.test_server_stdout + - gdbtest.py:GdbTest.test_server_stderr + - gdbtest.py:GdbTest.test_multiple_servers + - gdbtest.py:GdbTest.test_interactive + - gdbtest.py:GdbTest.test_interactive_args + - gdbtest.py:GdbTest.test_exit_status + - gdbtest.py:GdbTest.test_interactive_stdout - gdbtest.py:GdbTest.test_remote required_packages: - gcc From 60ceb66d1436bd8329fd57b223811243bdf725b6 Mon Sep 17 00:00:00 2001 From: Cleber Rosa Date: Fri, 7 Nov 2025 16:18:39 -0500 Subject: [PATCH 57/57] Update license format to match SPDX MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Suggested-by: Miroslav Suchý Signed-off-by: Cleber Rosa --- python-avocado.spec | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/python-avocado.spec b/python-avocado.spec index 62fe7d9..f55cf9a 100644 --- a/python-avocado.spec +++ b/python-avocado.spec @@ -37,7 +37,7 @@ Name: python-avocado Version: 112.0 -Release: 1%{?gitrel}%{?dist} +Release: 2%{?gitrel}%{?dist} Summary: Framework with tools and libraries for Automated Testing # Found licenses: # avocado/core/tapparser.py: MIT @@ -47,7 +47,7 @@ Summary: Framework with tools and libraries for Automated Testing # optional_plugins/html/avocado_result_html/templates/bootstrap.min.js: MIT # selftests/.data/jenkins-junit.xsd: MIT # Other files: GPLv2 and GPLv2+ -License: GPLv2+ and GPLv2 and MIT +License: GPL-2.0-or-later AND GPL-2.0-only AND MIT URL: https://avocado-framework.github.io/ Source0: https://github.com/avocado-framework/avocado/archive/%{gitref}/%{gittar} BuildArch: noarch @@ -349,7 +349,7 @@ Common files (such as configuration) for the Avocado Testing Framework. %package -n python3-avocado-plugins-output-html Summary: Avocado HTML report plugin -License: GPLv2+ and MIT +License: GPL-2.0-or-later AND MIT Requires: python3-avocado == %{version}-%{release} %description -n python3-avocado-plugins-output-html @@ -365,7 +365,7 @@ arbitrary filesystem location. %if %{with_resultsdb} %package -n python3-avocado-plugins-resultsdb Summary: Avocado plugin to propagate job results to ResultsDB -License: GPLv2+ +License: GPL-2.0-or-later Requires: python3-avocado == %{version}-%{release} %description -n python3-avocado-plugins-resultsdb @@ -381,7 +381,7 @@ server. %package -n python3-avocado-plugins-varianter-yaml-to-mux Summary: Avocado plugin to generate variants out of yaml files -License: GPLv2+ +License: GPL-2.0-or-later Requires: python3-avocado == %{version}-%{release} %description -n python3-avocado-plugins-varianter-yaml-to-mux @@ -395,7 +395,7 @@ defined in a yaml file(s). %package -n python3-avocado-plugins-golang Summary: Avocado plugin for execution of golang tests -License: GPLv2+ +License: GPL-2.0-or-later Requires: python3-avocado == %{version}-%{release} Requires: golang @@ -412,7 +412,7 @@ also run them. %if ! 0%{?rhel} %package -n python3-avocado-plugins-ansible Summary: Avocado Ansible Dependency plugin -License: GPLv2+ +License: GPL-2.0-or-later Requires: python3-avocado == %{version}-%{release} Requires: ansible-core @@ -429,7 +429,7 @@ tests. %package -n python3-avocado-plugins-varianter-pict Summary: Varianter with combinatorial capabilities by PICT -License: GPLv2+ +License: GPL-2.0-or-later Requires: python3-avocado == %{version}-%{release} %description -n python3-avocado-plugins-varianter-pict @@ -443,7 +443,7 @@ Pair-Wise algorithms, also known as Combinatorial Independent Testing. %package -n python3-avocado-plugins-varianter-cit Summary: Varianter with Combinatorial Independent Testing capabilities -License: GPLv2+ +License: GPL-2.0-or-later Requires: python3-avocado == %{version}-%{release} %description -n python3-avocado-plugins-varianter-cit @@ -458,7 +458,7 @@ collaboration with CVUT Prague. %package -n python3-avocado-plugins-result-upload Summary: Avocado plugin propagate job results to a remote host -License: GPLv2+ +License: GPL-2.0-or-later Requires: python3-avocado == %{version}-%{release} %description -n python3-avocado-plugins-result-upload @@ -471,7 +471,7 @@ a dedicated sever. %package -n python3-avocado-plugins-result-mail Summary: Avocado Mail Notification for Jobs -License: GPLv2+ +License: GPL-2.0-or-later Requires: python3-avocado == %{version}-%{release} %description -n python3-avocado-plugins-result-mail @@ -485,7 +485,7 @@ for job start and completion events within the Avocado testing framework. %if ! 0%{?rhel} %package -n python3-avocado-plugins-spawner-remote Summary: Avocado Plugin to spawn tests on a remote host -License: GPLv2+ +License: GPL-2.0-or-later Requires: python3-avocado == %{version}-%{release} %description -n python3-avocado-plugins-spawner-remote @@ -498,7 +498,7 @@ This optional plugin is intended to spawn tests on a remote host. %package -n python-avocado-examples Summary: Avocado Test Framework Example Tests -License: GPLv2+ +License: GPL-2.0-or-later # documentation does not require main package, but needs to be in lock-step if present Conflicts: python3-avocado < %{version}-%{release}, python3-avocado > %{version}-%{release} @@ -520,7 +520,7 @@ examples of how to write tests on your own. %package -n python-avocado-bash Summary: Avocado Test Framework Bash Utilities -License: GPLv2+ and GPLv2 +License: GPL-2.0-or-later AND GPLv-2.0-only Requires: python-avocado-common == %{version}-%{release} %description -n python-avocado-bash @@ -538,6 +538,9 @@ Again Shell code (and possibly other similar shells). %changelog +* Fri Nov 07 2025 Cleber Rosa - 112.0-2 +- Update license format to match The System Package Data Exchange (SPDX) + * Fri Oct 10 2025 Cleber Rosa - 112.0-1 - Sync with upstream release 112.0 - Removed python3-elementpath build requirement