Compare commits
17 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
60ceb66d14 | ||
|
|
5984dca591 | ||
|
|
9781dbb34b | ||
|
|
f981628259 | ||
|
|
4adc731d21 | ||
|
|
34e099cd8b |
||
|
|
110dbb6393 |
||
|
|
0df2004e57 | ||
|
|
abde5697f4 | ||
|
|
21ebe30b86 | ||
|
|
6a0c944592 | ||
|
|
d8dea0a273 | ||
|
|
471c4169f0 | ||
|
|
ad5c2de8e6 | ||
|
|
bf1deffff4 | ||
|
|
34b61b19ca | ||
|
|
dd1a190a67 |
5 changed files with 401 additions and 289 deletions
15
.gitignore
vendored
15
.gitignore
vendored
|
|
@ -28,3 +28,18 @@
|
|||
/avocado-79.0.tar.gz
|
||||
/avocado-80.0.tar.gz
|
||||
/avocado-82.0.tar.gz
|
||||
/avocado-83.0.tar.gz
|
||||
/avocado-84.0.tar.gz
|
||||
/avocado-85.0.tar.gz
|
||||
/avocado-86.0.tar.gz
|
||||
/avocado-87.0.tar.gz
|
||||
/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
|
||||
/avocado-96.0.tar.gz
|
||||
/avocado-97.0.tar.gz
|
||||
/avocado-98.0.tar.gz
|
||||
/avocado-102.0.tar.gz
|
||||
/avocado-112.0.tar.gz
|
||||
|
|
|
|||
24
avocado-89.0-passtest-path-fix.patch
Normal file
24
avocado-89.0-passtest-path-fix.patch
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
From 8e2d7da5868ca2ae1c66c24a3e5c2957daffc7d7 Mon Sep 17 00:00:00 2001
|
||||
From: Merlin Mathesius <mmathesi@redhat.com>
|
||||
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 <mmathesi@redhat.com>
|
||||
---
|
||||
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
|
||||
|
|
@ -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,45 +6,50 @@
|
|||
# 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
|
||||
%global commit e4ede79f097dcc1dbd30e43ffe3b7daf52d2204d
|
||||
%endif
|
||||
%if ! 0%{?commit_date:1}
|
||||
%global commit_date 20200911
|
||||
%global commit_date 20251010
|
||||
%endif
|
||||
%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
|
||||
# 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 only available for Fedora
|
||||
%if 0%{?fedora}
|
||||
# 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-%{pkgname}
|
||||
Version: 82.0
|
||||
Release: 1%{?gitrel}%{?dist}
|
||||
Name: python-avocado
|
||||
Version: 112.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: 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
|
||||
|
|
@ -56,32 +58,37 @@ 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
|
||||
%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%{?fedora}
|
||||
%if ! 0%{?rhel}
|
||||
BuildRequires: perl-Test-Harness
|
||||
BuildRequires: python3-xmlschema
|
||||
BuildRequires: ansible-core
|
||||
%endif
|
||||
%if 0%{?fedora} >= 30 || 0%{?rhel}
|
||||
BuildRequires: glibc-all-langpacks
|
||||
%endif
|
||||
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
|
||||
|
|
@ -89,9 +96,13 @@ these days a framework) to perform automated testing.
|
|||
|
||||
|
||||
%prep
|
||||
%setup -q -n %{srcname}-%{gitref}
|
||||
%if (0%{?fedora} && 0%{?fedora} < 29) || 0%{?rhel}
|
||||
sed -e "s/'PyYAML>=4.2b2'/'PyYAML>=3.12'/" -i optional_plugins/varianter_yaml_to_mux/setup.py
|
||||
%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
|
||||
%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
|
||||
|
|
@ -99,20 +110,22 @@ 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
|
||||
popd
|
||||
%endif
|
||||
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
|
||||
%if ! 0%{?rhel}
|
||||
pushd optional_plugins/ansible
|
||||
%py3_build
|
||||
popd
|
||||
%endif
|
||||
pushd optional_plugins/varianter_pict
|
||||
%py3_build
|
||||
popd
|
||||
|
|
@ -122,50 +135,63 @@ popd
|
|||
pushd optional_plugins/result_upload
|
||||
%py3_build
|
||||
popd
|
||||
pushd optional_plugins/glib
|
||||
pushd optional_plugins/mail
|
||||
%py3_build
|
||||
popd
|
||||
%{__make} man
|
||||
%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-exec \
|
||||
avocado-runner-dry-run \
|
||||
avocado-runner-exec-test \
|
||||
avocado-runner-python-unittest \
|
||||
avocado-runner-avocado-instrumented \
|
||||
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
|
||||
%{__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
|
||||
pushd optional_plugins/html
|
||||
%py3_install
|
||||
popd
|
||||
pushd optional_plugins/resultsdb
|
||||
%if %{with_resultsdb}
|
||||
pushd optional_plugins/resultsdb
|
||||
%py3_install
|
||||
popd
|
||||
%endif
|
||||
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
|
||||
%if ! 0%{?rhel}
|
||||
pushd optional_plugins/ansible
|
||||
%py3_install
|
||||
popd
|
||||
%endif
|
||||
pushd optional_plugins/varianter_pict
|
||||
%py3_install
|
||||
popd
|
||||
|
|
@ -175,115 +201,85 @@ popd
|
|||
pushd optional_plugins/result_upload
|
||||
%py3_install
|
||||
popd
|
||||
pushd optional_plugins/glib
|
||||
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
|
||||
%{__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/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
|
||||
%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
|
||||
# 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/run
|
||||
PATH=%{buildroot}%{_bindir}:%{buildroot}%{_libexecdir}/avocado:$PATH \
|
||||
PYTHONPATH=%{buildroot}%{python3_sitelib}:. \
|
||||
LANG=en_US.UTF-8 \
|
||||
AVOCADO_CHECK_LEVEL=0 \
|
||||
%{python3} selftests/check.py --skip 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}
|
||||
%{_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-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
|
||||
|
|
@ -296,18 +292,41 @@ 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-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-%{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,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
|
||||
|
|
@ -324,173 +347,188 @@ 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: GPL-2.0-or-later 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: GPL-2.0-or-later
|
||||
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: GPL-2.0-or-later
|
||||
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
|
||||
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
|
||||
%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: GPL-2.0-or-later
|
||||
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
|
||||
%if ! 0%{?rhel}
|
||||
%package -n python3-avocado-plugins-ansible
|
||||
Summary: Avocado Ansible Dependency plugin
|
||||
License: GPL-2.0-or-later
|
||||
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
|
||||
%{?python_provide:%python_provide python3-%{pkgname}-plugins-varianter-pict}
|
||||
Requires: python3-%{pkgname} == %{version}-%{release}
|
||||
License: GPL-2.0-or-later
|
||||
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: GPL-2.0-or-later
|
||||
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: GPL-2.0-or-later
|
||||
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-avocado-plugins-result-mail
|
||||
Summary: Avocado Mail Notification for Jobs
|
||||
License: GPL-2.0-or-later
|
||||
Requires: python3-avocado == %{version}-%{release}
|
||||
|
||||
%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-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.
|
||||
|
||||
%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-avocado-plugins-result-mail
|
||||
%{python3_sitelib}/avocado_result_mail*
|
||||
%{python3_sitelib}/avocado_framework_plugin_result_mail*
|
||||
|
||||
%files -n python3-%{pkgname}-plugins-glib
|
||||
%{python3_sitelib}/avocado_glib/
|
||||
%{python3_sitelib}/avocado_framework_plugin_glib-%{version}-py%{python3_version}.egg-info
|
||||
%if ! 0%{?rhel}
|
||||
%package -n python3-avocado-plugins-spawner-remote
|
||||
Summary: Avocado Plugin to spawn tests on a remote host
|
||||
License: GPL-2.0-or-later
|
||||
Requires: python3-avocado == %{version}-%{release}
|
||||
|
||||
%description -n python3-avocado-plugins-spawner-remote
|
||||
This optional plugin is intended to spawn tests on a remote host.
|
||||
|
||||
%package -n python-%{pkgname}-examples
|
||||
%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
|
||||
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-%{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
|
||||
%{_docdir}/avocado/tests
|
||||
%{_docdir}/avocado/varianter_cit
|
||||
%{_docdir}/avocado/varianter_pict
|
||||
%{_docdir}/avocado/wrappers
|
||||
%{_docdir}/avocado/yaml_to_mux
|
||||
%{_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: GPL-2.0-or-later AND GPLv-2.0-only
|
||||
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
|
||||
|
|
@ -500,6 +538,93 @@ Again Shell code (and possibly other similar shells).
|
|||
|
||||
|
||||
%changelog
|
||||
* Fri Nov 07 2025 Cleber Rosa <crosa@redhat.com> - 112.0-2
|
||||
- Update license format to match The System Package Data Exchange (SPDX)
|
||||
|
||||
* Fri Oct 10 2025 Cleber Rosa <crosa@redhat.com> - 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 <crosa@redhat.com> - 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 <crosa@redhat.com> - 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 <crosa@redhat.com> - 97.0-1
|
||||
- Sync with upstream release 97.0
|
||||
- Require python3-jsonschema when running tests
|
||||
- Removed wrapper examples
|
||||
|
||||
* Tue Apr 5 2022 Cleber Rosa <crosa@redhat.com> - 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 <crosa@redhat.com> - 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 <crosa@redhat.com> - 90.0-1
|
||||
- Sync with upstream release 90.0.
|
||||
- Removed patch already included upstream
|
||||
|
||||
* Tue Jun 29 2021 Merlin Mathesius <mmathesi@redhat.com> - 89.0-2
|
||||
- Spec file cleanup identified during package review to bring back
|
||||
non-modular version of package.
|
||||
|
||||
* Tue Jun 22 2021 Cleber Rosa <cleber@redhat.com> - 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 <cleber@redhat.com> - 88.1-1
|
||||
- Sync with upstream release 88.1.
|
||||
- Included avocado-runner-requirement-package executables
|
||||
|
||||
* Wed Apr 14 2021 Cleber Rosa <cleber@redhat.com> - 87.0-1
|
||||
- Sync with upstream release 87.0.
|
||||
|
||||
* Tue Mar 16 2021 Cleber Rosa <cleber@redhat.com> - 86.0-1
|
||||
- Sync with upstream release 86.0.
|
||||
- Do not depend on make to build man page
|
||||
|
||||
* Wed Feb 10 2021 Cleber Rosa <cleber@redhat.com> - 85.0-1
|
||||
- Sync with upstream release 85.0.
|
||||
|
||||
* Wed Feb 10 2021 Cleber Rosa <cleber@redhat.com> - 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 <cleber@redhat.com> - 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 <cleber@redhat.com> - 82.0-1
|
||||
- Sync with upstream release 82.0.
|
||||
- Removed python libvirt depedency as the vm runner has been removed
|
||||
|
|
|
|||
2
sources
2
sources
|
|
@ -1 +1 @@
|
|||
SHA512 (avocado-82.0.tar.gz) = 099ab131b2b941602550e71507e4ca517d5d2cd5152b255edace0473c9de93aac8163a61689414b5b58f9211f58981c3c30c1c3ca8a191283f609722ce07f173
|
||||
SHA512 (avocado-112.0.tar.gz) = 1872eda730f5cd28f0562732464ce14b2c7731cedb298fcc4b093a04235d26cc5e3db7f92c3ae3edcd6104ad2db4fce66fa7a6148da754e4bdb8120fa12a75a3
|
||||
|
|
|
|||
122
tests/gdbtest.py
122
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()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue