diff options
Diffstat (limited to 'meta/recipes-extended/mdadm/files/0005-mdadm-test-Mark-and-ignore-broken-test-failures.patch')
| -rw-r--r-- | meta/recipes-extended/mdadm/files/0005-mdadm-test-Mark-and-ignore-broken-test-failures.patch | 128 |
1 files changed, 128 insertions, 0 deletions
diff --git a/meta/recipes-extended/mdadm/files/0005-mdadm-test-Mark-and-ignore-broken-test-failures.patch b/meta/recipes-extended/mdadm/files/0005-mdadm-test-Mark-and-ignore-broken-test-failures.patch new file mode 100644 index 0000000000..c55bfb125b --- /dev/null +++ b/meta/recipes-extended/mdadm/files/0005-mdadm-test-Mark-and-ignore-broken-test-failures.patch | |||
| @@ -0,0 +1,128 @@ | |||
| 1 | From feab1f72fcf032a4d21d0a69eb61b23a5ddb3352 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Logan Gunthorpe <logang@deltatee.com> | ||
| 3 | Date: Wed, 22 Jun 2022 14:25:18 -0600 | ||
| 4 | Subject: [PATCH 5/6] mdadm/test: Mark and ignore broken test failures | ||
| 5 | |||
| 6 | Add functionality to continue if a test marked as broken fails. | ||
| 7 | |||
| 8 | To mark a test as broken, a file with the same name but with the suffix | ||
| 9 | '.broken' should exist. The first line in the file will be printed with | ||
| 10 | a KNOWN BROKEN message; the rest of the file can describe the how the | ||
| 11 | test is broken. | ||
| 12 | |||
| 13 | Also adds --skip-broken and --skip-always-broken to skip all the tests | ||
| 14 | that have a .broken file or to skip all tests whose .broken file's first | ||
| 15 | line contains the keyword always. | ||
| 16 | |||
| 17 | Signed-off-by: Logan Gunthorpe <logang@deltatee.com> | ||
| 18 | Signed-off-by: Jes Sorensen <jes@trained-monkey.org> | ||
| 19 | |||
| 20 | Upstream-Status: Backport | ||
| 21 | |||
| 22 | Reference to upstream patch: | ||
| 23 | https://git.kernel.org/pub/scm/utils/mdadm/mdadm.git/commit/?id=28520bf114b3 | ||
| 24 | |||
| 25 | [OP: adjusted context for mdadm-4.2] | ||
| 26 | Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com> | ||
| 27 | --- | ||
| 28 | test | 37 +++++++++++++++++++++++++++++++++++-- | ||
| 29 | 1 file changed, 35 insertions(+), 2 deletions(-) | ||
| 30 | |||
| 31 | diff --git a/test b/test | ||
| 32 | index 8f189d9..ee8fba1 100755 | ||
| 33 | --- a/test | ||
| 34 | +++ b/test | ||
| 35 | @@ -10,6 +10,8 @@ devlist= | ||
| 36 | |||
| 37 | savelogs=0 | ||
| 38 | exitonerror=1 | ||
| 39 | +ctrl_c_error=0 | ||
| 40 | +skipbroken=0 | ||
| 41 | prefix='[0-9][0-9]' | ||
| 42 | |||
| 43 | # use loop devices by default if doesn't specify --dev | ||
| 44 | @@ -35,6 +37,7 @@ die() { | ||
| 45 | |||
| 46 | ctrl_c() { | ||
| 47 | exitonerror=1 | ||
| 48 | + ctrl_c_error=1 | ||
| 49 | } | ||
| 50 | |||
| 51 | # mdadm always adds --quiet, and we want to see any unexpected messages | ||
| 52 | @@ -79,8 +82,21 @@ mdadm() { | ||
| 53 | do_test() { | ||
| 54 | _script=$1 | ||
| 55 | _basename=`basename $_script` | ||
| 56 | + _broken=0 | ||
| 57 | + | ||
| 58 | if [ -f "$_script" ] | ||
| 59 | then | ||
| 60 | + if [ -f "${_script}.broken" ]; then | ||
| 61 | + _broken=1 | ||
| 62 | + _broken_msg=$(head -n1 "${_script}.broken" | tr -d '\n') | ||
| 63 | + if [ "$skipbroken" == "all" ]; then | ||
| 64 | + return | ||
| 65 | + elif [ "$skipbroken" == "always" ] && | ||
| 66 | + [[ "$_broken_msg" == *always* ]]; then | ||
| 67 | + return | ||
| 68 | + fi | ||
| 69 | + fi | ||
| 70 | + | ||
| 71 | rm -f $targetdir/stderr | ||
| 72 | # this might have been reset: restore the default. | ||
| 73 | echo 2000 > /proc/sys/dev/raid/speed_limit_max | ||
| 74 | @@ -97,10 +113,15 @@ do_test() { | ||
| 75 | else | ||
| 76 | save_log fail | ||
| 77 | _fail=1 | ||
| 78 | + if [ "$_broken" == "1" ]; then | ||
| 79 | + echo " (KNOWN BROKEN TEST: $_broken_msg)" | ||
| 80 | + fi | ||
| 81 | fi | ||
| 82 | [ "$savelogs" == "1" ] && | ||
| 83 | mv -f $targetdir/log $logdir/$_basename.log | ||
| 84 | - [ "$_fail" == "1" -a "$exitonerror" == "1" ] && exit 1 | ||
| 85 | + [ "$ctrl_c_error" == "1" ] && exit 1 | ||
| 86 | + [ "$_fail" == "1" -a "$exitonerror" == "1" \ | ||
| 87 | + -a "$_broken" == "0" ] && exit 1 | ||
| 88 | fi | ||
| 89 | } | ||
| 90 | |||
| 91 | @@ -117,6 +138,8 @@ do_help() { | ||
| 92 | --logdir=directory Directory to save all logfiles in | ||
| 93 | --save-logs Usually use with --logdir together | ||
| 94 | --keep-going | --no-error Don't stop on error, ie. run all tests | ||
| 95 | + --skip-broken Skip tests that are known to be broken | ||
| 96 | + --skip-always-broken Skip tests that are known to always fail | ||
| 97 | --dev=loop|lvm|ram|disk Use loop devices (default), LVM, RAM or disk | ||
| 98 | --disks= Provide a bunch of physical devices for test | ||
| 99 | --volgroup=name LVM volume group for LVM test | ||
| 100 | @@ -211,6 +234,12 @@ parse_args() { | ||
| 101 | --keep-going | --no-error ) | ||
| 102 | exitonerror=0 | ||
| 103 | ;; | ||
| 104 | + --skip-broken ) | ||
| 105 | + skipbroken=all | ||
| 106 | + ;; | ||
| 107 | + --skip-always-broken ) | ||
| 108 | + skipbroken=always | ||
| 109 | + ;; | ||
| 110 | --disable-multipath ) | ||
| 111 | unset MULTIPATH | ||
| 112 | ;; | ||
| 113 | @@ -275,7 +304,11 @@ main() { | ||
| 114 | if [ $script == "$testdir/11spare-migration" ];then | ||
| 115 | continue | ||
| 116 | fi | ||
| 117 | - do_test $script | ||
| 118 | + case $script in | ||
| 119 | + *.broken) ;; | ||
| 120 | + *) | ||
| 121 | + do_test $script | ||
| 122 | + esac | ||
| 123 | done | ||
| 124 | fi | ||
| 125 | |||
| 126 | -- | ||
| 127 | 2.39.1 | ||
| 128 | |||
