diff options
Diffstat (limited to '')
-rw-r--r-- | debian/changelog | 15 | ||||
-rw-r--r-- | debian/control | 4 | ||||
-rw-r--r-- | debian/gbp.conf | 5 | ||||
-rwxr-xr-x | debian/tests/check_flaky.py | 23 | ||||
-rw-r--r-- | debian/tests/control | 62 | ||||
-rwxr-xr-x | debian/tests/flaky_tests_list.py | 27 | ||||
-rwxr-xr-x | debian/tests/unit-tests-flaky | 42 | ||||
-rwxr-xr-x | debian/tests/unit-tests-flaky.py | 60 | ||||
-rwxr-xr-x | debian/tests/unit-tests-stable | 60 | ||||
-rwxr-xr-x | debian/tests/unit-tests-stable.py | 63 |
10 files changed, 243 insertions, 118 deletions
diff --git a/debian/changelog b/debian/changelog index 5df1e4163..4dad6f667 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,18 @@ +ansible (9.5.1+dfsg-1) unstable; urgency=medium + + * New upstream version 9.5.1+dfsg + * autopkgtests: Update dependencies + * autopkgtests: Update test dependencies + * Add helper script to check the flaky test list and remove non-existant tests + * autopkgtests: Update list of flaky tests + * Rewrite stable/flaky autopkgtests in python + * d/gbp.conf: Switch to DEP-14 branch layout + * d/gbp.conf: Sign tags by default + * Bump Standards-Version (no changes needed) + * d/control: Bump minimum version dependency of ansible-core + + -- Lee Garrett <debian@rocketjump.eu> Thu, 25 Apr 2024 22:34:37 +0200 + ansible (9.4.0+dfsg-1~progress7.99u1) graograman-backports; urgency=medium * Uploading to graograman-backports, remaining changes: diff --git a/debian/control b/debian/control index dd196428b..956f73312 100644 --- a/debian/control +++ b/debian/control @@ -18,7 +18,7 @@ Build-Depends: debhelper-compat (= 13), python3-straight.plugin, python3-yaml, Rules-Requires-Root: no -Standards-Version: 4.6.2 +Standards-Version: 4.7.0 Vcs-Browser: https://git.progress-linux.org/packages/graograman-backports/ansible Vcs-Git: https://git.progress-linux.org/packages/graograman-backports/ansible XSBC-Original-Vcs-Browser: https://salsa.debian.org/debian/ansible @@ -29,7 +29,7 @@ Package: ansible Architecture: all Depends: ${misc:Depends}, ${python3:Depends}, - ansible-core (>= 2.11.5-1~), + ansible-core (>= 2.16.6-1~), openssh-client | python3-paramiko (>= 2.6.0), python3-dnspython, python3-httplib2, diff --git a/debian/gbp.conf b/debian/gbp.conf index 2e3926b48..fbd98f560 100644 --- a/debian/gbp.conf +++ b/debian/gbp.conf @@ -1,9 +1,10 @@ # Configuration for git-buildpackage and affiliated tools [DEFAULT] -debian-branch = master -upstream-branch = upstream +debian-branch = debian/latest pristine-tar = True +sign-tags = True +upstream-branch = upstream/latest [import-orig] merge-mode = replace diff --git a/debian/tests/check_flaky.py b/debian/tests/check_flaky.py new file mode 100755 index 000000000..b7099d5de --- /dev/null +++ b/debian/tests/check_flaky.py @@ -0,0 +1,23 @@ +#!/usr/bin/python3 + +# check if the list of flaky tests is actually valid +# Must be run from base of git dir + +import os +import subprocess +import sys + +sys.dont_write_bytecode = True +from flaky_tests_list import flaky_test_dirs + +rc = 0 + +for i in flaky_test_dirs: + + testdir = os.path.join(i, 'tests', 'unit') + + if not os.path.isdir(testdir): + print(testdir, 'does not exist. Consider removing it from flaky_test_dirs.py') + rc=1 + +exit(rc) diff --git a/debian/tests/control b/debian/tests/control index 0aeacb7bd..4b85b722e 100644 --- a/debian/tests/control +++ b/debian/tests/control @@ -1,23 +1,61 @@ -Tests: unit-tests-stable +Tests: unit-tests-stable.py Depends: @, git, - python3-boto3, + python3-azure, python3-bcrypt, + python3-boto3, + python3-cryptography, + python3-dateutil, python3-flake8, + python3-gitlab, + python3-google-auth, + python3-httmock, + python3-hvac, + python3-jsonschema, + python3-kubernetes, + python3-lxml, python3-mock, + python3-msrestazure, + python3-openssl, + python3-paramiko, + python3-proxmoxer, python3-pytest-forked, python3-pytest-mock, python3-pytest-xdist, + python3-pyvmomi, + python3-redis, + python3-textfsm, + python3-xmltodict, yamllint # failing tests due to missing packages or other reasons -#Tests: unit-tests-flaky -#Depends: @, -# git, -# python3-boto3, -# python3-flake8, -# python3-mock, -# python3-pytest-xdist, -# python3-pyvmomi, -# yamllint -#Restrictions: flaky +Tests: unit-tests-flaky.py +Depends: @, + git, + python3-azure, + python3-bcrypt, + python3-boto3, + python3-cryptography, + python3-dateutil, + python3-flake8, + python3-gitlab, + python3-google-auth, + python3-httmock, + python3-hvac, + python3-jsonschema, + python3-kubernetes, + python3-lxml, + python3-mock, + python3-msrestazure, + python3-openssl, + python3-paramiko, + python3-proxmoxer, + python3-pytest-forked, + python3-pytest-mock, + python3-pytest-xdist, + python3-pyvmomi, + python3-redis, + python3-textfsm, + python3-xmltodict, + yamllint +Restrictions: flaky diff --git a/debian/tests/flaky_tests_list.py b/debian/tests/flaky_tests_list.py new file mode 100755 index 000000000..3a49c9b2d --- /dev/null +++ b/debian/tests/flaky_tests_list.py @@ -0,0 +1,27 @@ +#!/usr/bin/python3 + +# This is a list of unit tests that currently fail for various reasons. +# This list is skipped in unit-tests-stable.py +# This list is run in unit-tests-flaky.py + +flaky_test_dirs = [ + 'ansible_collections/cisco/aci', # Test likely needs updating; lxml error message on invalid parse changed. + 'ansible_collections/cisco/dnac', # TypeError: TestDnacDiscoveryIntent.__init__() takes 1 positional argument but 2 were given + 'ansible_collections/community/dns', # [1] + 'ansible_collections/community/general', # import broken + 'ansible_collections/community/hrobot', # import broken + 'ansible_collections/community/library_inventory_filtering_v1', # [1] + 'ansible_collections/community/sap', # E ModuleNotFoundError: No module named 'ansible_collections.community.sap.plugins.modules.*' + 'ansible_collections/junipernetworks/junos', # test broken + 'ansible_collections/netapp_eseries/santricity', # [0] + 'ansible_collections/netapp/ontap', # missing netapp_lib + 'ansible_collections/ngine_io/cloudstack', # [0] + 'ansible_collections/purestorage/fusion', # E ModuleNotFoundError: No module named 'fusion' + 'ansible_collections/sensu/sensu_go', # [2] + 'ansible_collections/splunk/es', # assert result["changed"] is True +] + +# [0] test/units/compat/mock.py from ansible-core source is not installed +# in the binary package. Need to check why. +# [1] E ModuleNotFoundError: No module named 'ansible_collections.community.internal_test_tools' +# [2] E ansible_collections.sensu.sensu_go.tests.unit.plugins.modules.common.utils.AnsibleFailJson: {'msg': "argument 'pool_size' is of type <class 'NoneType'> and we were unable to convert to int: <class 'NoneType'> cannot be converted to an int", 'failed': True} diff --git a/debian/tests/unit-tests-flaky b/debian/tests/unit-tests-flaky deleted file mode 100755 index b4cc64c70..000000000 --- a/debian/tests/unit-tests-flaky +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/sh - -# Don't let them fail -# set -e - -BASEPATH=$(pwd) - -unit_test_dirs=" -ansible_collections/ngine_io/cloudstack # missing python3-units -ansible_collections/ansible/netcommon # test broken -ansible_collections/netapp/ontap # missing netapp_lib -ansible_collections/netapp_eseries/santricity # missing python3-units -ansible_collections/community/aws # import broken -ansible_collections/community/vmware # missing python3-units -ansible_collections/community/hrobot # import broken -ansible_collections/community/general # import broken -ansible_collections/community/skydive # STDERR: WARNING: All targets skipped. -ansible_collections/junipernetworks/junos # test broken -ansible_collections/dellemc/os6 # import broken -ansible_collections/dellemc/os10 # missing python3-units -ansible_collections/dellemc/os9 # import broken -" - -for i in $unit_test_dirs; do - - cd $i 2> /dev/null || continue - - echo "\n\n" - echo "############################################################" - echo "############################################################" - echo "#### Running FLAKY tests in $i" - echo "############################################################" - echo "############################################################" - - /usr/bin/ansible-test units \ - --python-interpreter /usr/bin/python3 \ - --local - - cd $BASEPATH -done - -exit 0 diff --git a/debian/tests/unit-tests-flaky.py b/debian/tests/unit-tests-flaky.py new file mode 100755 index 000000000..db740ee5a --- /dev/null +++ b/debian/tests/unit-tests-flaky.py @@ -0,0 +1,60 @@ +#!/usr/bin/python3 + +import os +import subprocess +import sys + +sys.dont_write_bytecode = True +from flaky_tests_list import flaky_test_dirs + +cwd = os.getcwd() + +overall_test_rc = 0 +succeeded_tests = [] +failed_tests = [] + +for i in flaky_test_dirs: + + os.chdir(i) + + print ("\n\n", flush=True) + print ("############################################################", flush=True) + print ("############################################################", flush=True) + print ("#### Running FLAKY tests in", i, flush=True) + print ("############################################################", flush=True) + print ("############################################################", flush=True) + + rc = subprocess.run([ + '/usr/bin/ansible-test', + 'units', + '--python-interpreter', + '/usr/bin/python3', + '--local' + ]) + + # don't fail on failed test, continue instead + print ("## return code is", rc.returncode) + + if rc.returncode == 0: + succeeded_tests.append(i) + else: + failed_tests.append(i) + overall_test_rc = rc.returncode + + os.chdir(cwd) + +print ("############################################################", flush=True) +print ("############################################################", flush=True) +print ("#### failed tests are:", flush=True) +for i in failed_tests: + print ("####", i, flush=True) +if len(succeeded_tests) > 0: + print ("#### succeeded tests are:", flush=True) + for i in succeeded_tests: + print ("####", i, flush=True) + print ("#### consider removing them from the flaky tests list.", flush=True) +print ("############################################################", flush=True) +print ("############################################################", flush=True) + + +exit(overall_test_rc) diff --git a/debian/tests/unit-tests-stable b/debian/tests/unit-tests-stable deleted file mode 100755 index d8e4a5b7f..000000000 --- a/debian/tests/unit-tests-stable +++ /dev/null @@ -1,60 +0,0 @@ -#!/bin/sh - -set -e - -BASEPATH=$(pwd) - -unit_test_dirs=" -ansible_collections/amazon/aws -ansible_collections/ansible/posix -ansible_collections/ansible/windows -ansible_collections/arista/eos -ansible_collections/cisco/aci -ansible_collections/cisco/asa -ansible_collections/cisco/ios -ansible_collections/cisco/iosxr -ansible_collections/cisco/nso -ansible_collections/cisco/nxos -ansible_collections/community/crypto -ansible_collections/community/docker -ansible_collections/community/fortios -ansible_collections/community/google -ansible_collections/community/grafana -ansible_collections/community/kubevirt -ansible_collections/community/libvirt -ansible_collections/community/mysql -ansible_collections/community/network -ansible_collections/community/postgresql -ansible_collections/community/rabbitmq -ansible_collections/community/routeros -ansible_collections/community/windows -ansible_collections/f5networks/f5_modules -ansible_collections/frr/frr -ansible_collections/google/cloud -ansible_collections/mellanox/onyx -ansible_collections/netapp/aws -ansible_collections/netapp/elementsw -ansible_collections/netbox/netbox -ansible_collections/openvswitch/openvswitch -ansible_collections/vyos/vyos -" - -for i in $unit_test_dirs; do - - cd $i 2> /dev/null || continue - - echo "\n\n" - echo "############################################################" - echo "############################################################" - echo "#### Running tests in $i" - echo "############################################################" - echo "############################################################" - - /usr/bin/ansible-test units \ - --python-interpreter /usr/bin/python3 \ - --local - - cd $BASEPATH -done - -exit 0 diff --git a/debian/tests/unit-tests-stable.py b/debian/tests/unit-tests-stable.py new file mode 100755 index 000000000..f44044991 --- /dev/null +++ b/debian/tests/unit-tests-stable.py @@ -0,0 +1,63 @@ +#!/usr/bin/python3 + +import glob +import os +import subprocess +import sys + +sys.dont_write_bytecode = True +from flaky_tests_list import flaky_test_dirs + +cwd = os.getcwd() + +overall_test_rc = 0 +failed_tests = [] + +# find all dirs that have unit tests +for i in glob.glob('ansible_collections/**/tests/unit', recursive=True): + + # base path to run ansible-test is two levels up + testdir = os.path.normpath( + os.path.join(i, '..', '..') + ) + + # skip any tests that are flagged as flaky + if testdir in flaky_test_dirs: + print("Skipping", testdir) + continue + + os.chdir(testdir) + + print ("\n\n", flush=True) + print ("############################################################", flush=True) + print ("############################################################", flush=True) + print ("#### Running tests in", testdir, flush=True) + print ("############################################################", flush=True) + print ("############################################################", flush=True) + + rc = subprocess.run([ + '/usr/bin/ansible-test', + 'units', + '--python-interpreter', + '/usr/bin/python3', + '--local' + ]) + + + if rc.returncode != 0: + failed_tests.append(i) + overall_test_rc = rc.returncode + + os.chdir(cwd) + + +if overall_test_rc != 0: + print ("############################################################", flush=True) + print ("############################################################", flush=True) + print ("#### failed tests are:", flush=True) + for i in failed_tests: + print ("####", i, flush=True) + print ("############################################################", flush=True) + print ("############################################################", flush=True) + +exit(overall_test_rc) |