From f22b60676159f729c081ba62fba4642629daa914 Mon Sep 17 00:00:00 2001 From: Ross Burton Date: Tue, 21 Mar 2023 12:37:35 +0000 Subject: [PATCH] python3-cryptography: use python3-unittest-automake-output Instead of using sed to reformat the output use this new module. This shows that the previous sed expression wasn't sufficient because it didn't handle tests throwing an error, and now the bench/ tests fail because we don't have pytest-benchmark. These tests are more of a benchmark than a unit test, so just skip them. Also show a skip message instead of nothing if the tests were skipped due to a lack of memory. Signed-off-by: Ross Burton Signed-off-by: Richard Purdie --- .../python/python3-cryptography/check-memfree.py | 2 +- .../recipes-devtools/python/python3-cryptography/run-ptest | 7 ++++++- .../recipes-devtools/python/python3-cryptography_39.0.2.bb | 1 + 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/meta/recipes-devtools/python/python3-cryptography/check-memfree.py b/meta/recipes-devtools/python/python3-cryptography/check-memfree.py index c111a9074c1..ed680d8d5b9 100755 --- a/meta/recipes-devtools/python/python3-cryptography/check-memfree.py +++ b/meta/recipes-devtools/python/python3-cryptography/check-memfree.py @@ -4,7 +4,7 @@ import sys meminfo = dict((i.split()[0].rstrip(':'),int(i.split()[1])) for i in open('/proc/meminfo').readlines()) mem_free = meminfo['MemTotal']/1024./1024. if mem_free < 2.: - raise RuntimeError("Insufficient free memory({:.3f}): requires > 2 GB".format(mem_free)) + print("Insufficient free memory({:.3f}): requires > 2 GB".format(mem_free)) sys.exit(1) else: print("Free memory: {:.3f} GB".format(mem_free)) diff --git a/meta/recipes-devtools/python/python3-cryptography/run-ptest b/meta/recipes-devtools/python/python3-cryptography/run-ptest index 3089df87819..fe191a5dc44 100644 --- a/meta/recipes-devtools/python/python3-cryptography/run-ptest +++ b/meta/recipes-devtools/python/python3-cryptography/run-ptest @@ -1,4 +1,9 @@ #!/bin/sh + if ./check-memfree.py; then - pytest -vvvv tests/ -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}' + # Skip the bench test module, we don't yet have pytest3-benchmark in core + # and these are more benchmarks than unit tests. + pytest --automake -k 'not bench' +else + echo "SKIP: crytography.not_enough_memory" fi diff --git a/meta/recipes-devtools/python/python3-cryptography_39.0.2.bb b/meta/recipes-devtools/python/python3-cryptography_39.0.2.bb index 4b591bc59bf..449e3ba1bcc 100644 --- a/meta/recipes-devtools/python/python3-cryptography_39.0.2.bb +++ b/meta/recipes-devtools/python/python3-cryptography_39.0.2.bb @@ -43,6 +43,7 @@ RDEPENDS:${PN}-ptest += " \ ${PYTHON_PN}-pretend \ ${PYTHON_PN}-psutil \ ${PYTHON_PN}-pytest \ + ${PYTHON_PN}-unittest-automake-output \ ${PYTHON_PN}-pytest-subtests \ ${PYTHON_PN}-pytz \ " -- 2.47.3