diff --git a/tests/README.md b/tests/README.md index 4acbdb50..8701b6f2 100644 --- a/tests/README.md +++ b/tests/README.md @@ -117,6 +117,7 @@ used during the test. | T\_NR\_MOUNTS | number of mounts | -n | 3 | | T\_O[0-9] | mount options | created per run | -o server\_addr= | | T\_QUORUM | quorum count | -q | 2 | +| T\_EXTRA | per-test file dir | revision ctled | tests/extra/t | | T\_TMP | per-test tmp prefix | made for test | results/tmp/t/tmp | | T\_TMPDIR | per-test tmp dir dir | made for test | results/tmp/t | diff --git a/tests/extra/xfstests/expected-results b/tests/extra/xfstests/expected-results new file mode 100644 index 00000000..c4032ca9 --- /dev/null +++ b/tests/extra/xfstests/expected-results @@ -0,0 +1,882 @@ +Ran: +generic/001 +generic/002 +generic/004 +generic/005 +generic/006 +generic/007 +generic/008 +generic/009 +generic/011 +generic/012 +generic/013 +generic/014 +generic/015 +generic/016 +generic/018 +generic/020 +generic/021 +generic/022 +generic/023 +generic/024 +generic/025 +generic/026 +generic/028 +generic/029 +generic/030 +generic/031 +generic/032 +generic/033 +generic/034 +generic/035 +generic/037 +generic/039 +generic/040 +generic/041 +generic/050 +generic/052 +generic/053 +generic/056 +generic/057 +generic/058 +generic/059 +generic/060 +generic/061 +generic/062 +generic/063 +generic/064 +generic/065 +generic/066 +generic/067 +generic/069 +generic/070 +generic/071 +generic/073 +generic/076 +generic/078 +generic/079 +generic/080 +generic/081 +generic/082 +generic/084 +generic/086 +generic/087 +generic/088 +generic/090 +generic/091 +generic/092 +generic/094 +generic/096 +generic/097 +generic/098 +generic/099 +generic/101 +generic/104 +generic/105 +generic/106 +generic/107 +generic/110 +generic/111 +generic/113 +generic/114 +generic/115 +generic/116 +generic/117 +generic/118 +generic/119 +generic/120 +generic/121 +generic/122 +generic/123 +generic/124 +generic/126 +generic/128 +generic/129 +generic/130 +generic/131 +generic/134 +generic/135 +generic/136 +generic/138 +generic/139 +generic/140 +generic/141 +generic/142 +generic/143 +generic/144 +generic/145 +generic/146 +generic/147 +generic/148 +generic/149 +generic/150 +generic/151 +generic/152 +generic/153 +generic/154 +generic/155 +generic/156 +generic/157 +generic/158 +generic/159 +generic/160 +generic/161 +generic/162 +generic/163 +generic/169 +generic/171 +generic/172 +generic/173 +generic/174 +generic/177 +generic/178 +generic/179 +generic/180 +generic/181 +generic/182 +generic/183 +generic/184 +generic/185 +generic/188 +generic/189 +generic/190 +generic/191 +generic/193 +generic/194 +generic/195 +generic/196 +generic/197 +generic/198 +generic/199 +generic/200 +generic/201 +generic/202 +generic/203 +generic/205 +generic/206 +generic/207 +generic/210 +generic/211 +generic/212 +generic/214 +generic/215 +generic/216 +generic/217 +generic/218 +generic/219 +generic/220 +generic/221 +generic/222 +generic/223 +generic/225 +generic/227 +generic/228 +generic/229 +generic/230 +generic/235 +generic/236 +generic/237 +generic/238 +generic/240 +generic/244 +generic/245 +generic/246 +generic/247 +generic/248 +generic/249 +generic/250 +generic/252 +generic/253 +generic/254 +generic/255 +generic/256 +generic/257 +generic/258 +generic/259 +generic/260 +generic/261 +generic/262 +generic/263 +generic/264 +generic/265 +generic/266 +generic/267 +generic/268 +generic/271 +generic/272 +generic/276 +generic/277 +generic/278 +generic/279 +generic/281 +generic/282 +generic/283 +generic/284 +generic/286 +generic/287 +generic/288 +generic/289 +generic/290 +generic/291 +generic/292 +generic/293 +generic/294 +generic/295 +generic/296 +generic/301 +generic/302 +generic/303 +generic/304 +generic/305 +generic/306 +generic/307 +generic/308 +generic/309 +generic/312 +generic/313 +generic/314 +generic/315 +generic/316 +generic/317 +generic/319 +generic/322 +generic/324 +generic/325 +generic/326 +generic/327 +generic/328 +generic/329 +generic/330 +generic/331 +generic/332 +generic/335 +generic/336 +generic/337 +generic/341 +generic/342 +generic/343 +generic/346 +generic/348 +generic/353 +generic/355 +generic/358 +generic/359 +generic/360 +generic/361 +generic/362 +generic/363 +generic/364 +generic/365 +generic/366 +generic/367 +generic/368 +generic/369 +generic/370 +generic/371 +generic/372 +generic/373 +generic/374 +generic/375 +generic/376 +generic/377 +generic/378 +generic/379 +generic/380 +generic/381 +generic/382 +generic/383 +generic/384 +generic/385 +generic/386 +generic/389 +generic/391 +generic/392 +generic/393 +generic/394 +generic/395 +generic/396 +generic/397 +generic/398 +generic/400 +generic/401 +generic/402 +generic/403 +generic/404 +generic/406 +generic/407 +generic/408 +generic/412 +generic/413 +generic/414 +generic/417 +generic/419 +generic/420 +generic/421 +generic/422 +generic/424 +generic/425 +generic/426 +generic/427 +generic/428 +generic/436 +generic/437 +generic/439 +generic/440 +generic/443 +generic/445 +generic/446 +generic/448 +generic/449 +generic/450 +generic/451 +generic/452 +generic/453 +generic/454 +generic/456 +generic/458 +generic/460 +generic/462 +generic/463 +generic/465 +generic/466 +generic/468 +generic/469 +generic/470 +generic/471 +generic/474 +generic/477 +generic/478 +generic/479 +generic/480 +generic/481 +generic/483 +generic/485 +generic/486 +generic/487 +generic/488 +generic/489 +generic/490 +generic/491 +generic/492 +generic/498 +generic/499 +generic/501 +generic/502 +generic/503 +generic/504 +generic/505 +generic/506 +generic/507 +generic/508 +generic/509 +generic/510 +generic/511 +generic/512 +generic/513 +generic/514 +generic/515 +generic/516 +generic/517 +generic/518 +generic/519 +generic/520 +generic/523 +generic/524 +generic/525 +generic/526 +generic/527 +generic/528 +generic/529 +generic/530 +generic/531 +generic/533 +generic/534 +generic/535 +generic/536 +generic/537 +generic/538 +generic/539 +generic/540 +generic/541 +generic/542 +generic/543 +generic/544 +generic/545 +generic/546 +generic/547 +generic/548 +generic/549 +generic/550 +generic/552 +generic/553 +generic/555 +generic/556 +generic/557 +generic/566 +generic/567 +generic/571 +generic/572 +generic/573 +generic/574 +generic/575 +generic/576 +generic/577 +generic/578 +generic/580 +generic/581 +generic/582 +generic/583 +generic/584 +generic/586 +generic/587 +generic/588 +generic/591 +generic/592 +generic/593 +generic/594 +generic/595 +generic/596 +generic/597 +generic/598 +generic/599 +generic/600 +generic/601 +generic/602 +generic/603 +generic/604 +generic/605 +generic/606 +generic/607 +generic/608 +generic/609 +generic/610 +generic/611 +generic/612 +generic/613 +generic/614 +generic/618 +generic/621 +generic/623 +generic/624 +generic/625 +generic/626 +generic/628 +generic/629 +generic/630 +generic/632 +generic/634 +generic/635 +generic/637 +generic/638 +generic/639 +generic/640 +generic/644 +generic/645 +generic/646 +generic/647 +generic/651 +generic/652 +generic/653 +generic/654 +generic/655 +generic/657 +generic/658 +generic/659 +generic/660 +generic/661 +generic/662 +generic/663 +generic/664 +generic/665 +generic/666 +generic/667 +generic/668 +generic/669 +generic/673 +generic/674 +generic/675 +generic/676 +generic/677 +generic/678 +generic/679 +generic/680 +generic/681 +generic/682 +generic/683 +generic/684 +generic/685 +generic/686 +generic/687 +generic/688 +generic/689 +shared/002 +shared/032 +Not +run: +generic/008 +generic/009 +generic/012 +generic/015 +generic/016 +generic/018 +generic/021 +generic/022 +generic/025 +generic/026 +generic/031 +generic/033 +generic/050 +generic/052 +generic/058 +generic/059 +generic/060 +generic/061 +generic/063 +generic/064 +generic/078 +generic/079 +generic/081 +generic/082 +generic/091 +generic/094 +generic/096 +generic/110 +generic/111 +generic/113 +generic/114 +generic/115 +generic/116 +generic/118 +generic/119 +generic/121 +generic/122 +generic/123 +generic/128 +generic/130 +generic/134 +generic/135 +generic/136 +generic/138 +generic/139 +generic/140 +generic/142 +generic/143 +generic/144 +generic/145 +generic/146 +generic/147 +generic/148 +generic/149 +generic/150 +generic/151 +generic/152 +generic/153 +generic/154 +generic/155 +generic/156 +generic/157 +generic/158 +generic/159 +generic/160 +generic/161 +generic/162 +generic/163 +generic/171 +generic/172 +generic/173 +generic/174 +generic/177 +generic/178 +generic/179 +generic/180 +generic/181 +generic/182 +generic/183 +generic/185 +generic/188 +generic/189 +generic/190 +generic/191 +generic/193 +generic/194 +generic/195 +generic/196 +generic/197 +generic/198 +generic/199 +generic/200 +generic/201 +generic/202 +generic/203 +generic/205 +generic/206 +generic/207 +generic/210 +generic/211 +generic/212 +generic/214 +generic/216 +generic/217 +generic/218 +generic/219 +generic/220 +generic/222 +generic/223 +generic/225 +generic/227 +generic/229 +generic/230 +generic/235 +generic/238 +generic/240 +generic/244 +generic/250 +generic/252 +generic/253 +generic/254 +generic/255 +generic/256 +generic/259 +generic/260 +generic/261 +generic/262 +generic/263 +generic/264 +generic/265 +generic/266 +generic/267 +generic/268 +generic/271 +generic/272 +generic/276 +generic/277 +generic/278 +generic/279 +generic/281 +generic/282 +generic/283 +generic/284 +generic/287 +generic/288 +generic/289 +generic/290 +generic/291 +generic/292 +generic/293 +generic/295 +generic/296 +generic/301 +generic/302 +generic/303 +generic/304 +generic/305 +generic/312 +generic/314 +generic/316 +generic/317 +generic/324 +generic/326 +generic/327 +generic/328 +generic/329 +generic/330 +generic/331 +generic/332 +generic/353 +generic/355 +generic/358 +generic/359 +generic/361 +generic/362 +generic/363 +generic/364 +generic/365 +generic/366 +generic/367 +generic/368 +generic/369 +generic/370 +generic/371 +generic/372 +generic/373 +generic/374 +generic/378 +generic/379 +generic/380 +generic/381 +generic/382 +generic/383 +generic/384 +generic/385 +generic/386 +generic/391 +generic/392 +generic/395 +generic/396 +generic/397 +generic/398 +generic/400 +generic/402 +generic/404 +generic/406 +generic/407 +generic/408 +generic/412 +generic/413 +generic/414 +generic/417 +generic/419 +generic/420 +generic/421 +generic/422 +generic/424 +generic/425 +generic/427 +generic/439 +generic/440 +generic/446 +generic/449 +generic/450 +generic/451 +generic/453 +generic/454 +generic/456 +generic/458 +generic/462 +generic/463 +generic/465 +generic/466 +generic/468 +generic/469 +generic/470 +generic/471 +generic/474 +generic/485 +generic/487 +generic/488 +generic/491 +generic/492 +generic/499 +generic/501 +generic/503 +generic/505 +generic/506 +generic/507 +generic/508 +generic/511 +generic/513 +generic/514 +generic/515 +generic/516 +generic/517 +generic/518 +generic/519 +generic/520 +generic/528 +generic/530 +generic/536 +generic/537 +generic/538 +generic/539 +generic/540 +generic/541 +generic/542 +generic/543 +generic/544 +generic/545 +generic/546 +generic/548 +generic/549 +generic/550 +generic/552 +generic/553 +generic/555 +generic/556 +generic/566 +generic/567 +generic/572 +generic/573 +generic/574 +generic/575 +generic/576 +generic/577 +generic/578 +generic/580 +generic/581 +generic/582 +generic/583 +generic/584 +generic/586 +generic/587 +generic/588 +generic/591 +generic/592 +generic/593 +generic/594 +generic/595 +generic/596 +generic/597 +generic/598 +generic/599 +generic/600 +generic/601 +generic/602 +generic/603 +generic/605 +generic/606 +generic/607 +generic/608 +generic/609 +generic/610 +generic/612 +generic/613 +generic/621 +generic/623 +generic/624 +generic/625 +generic/626 +generic/628 +generic/629 +generic/630 +generic/635 +generic/644 +generic/645 +generic/646 +generic/647 +generic/651 +generic/652 +generic/653 +generic/654 +generic/655 +generic/657 +generic/658 +generic/659 +generic/660 +generic/661 +generic/662 +generic/663 +generic/664 +generic/665 +generic/666 +generic/667 +generic/668 +generic/669 +generic/673 +generic/674 +generic/675 +generic/677 +generic/678 +generic/679 +generic/680 +generic/681 +generic/682 +generic/683 +generic/684 +generic/685 +generic/686 +generic/687 +generic/688 +generic/689 +shared/002 +shared/032 +Passed all 512 tests diff --git a/tests/extra/xfstests/local.exclude b/tests/extra/xfstests/local.exclude new file mode 100644 index 00000000..fa274227 --- /dev/null +++ b/tests/extra/xfstests/local.exclude @@ -0,0 +1,44 @@ +generic/003 # missing atime update in buffered read +generic/075 # file content mismatch failures (fds, etc) +generic/103 # enospc causes trans commit failures +generic/108 # mount fails on failing device? +generic/112 # file content mismatch failures (fds, etc) +generic/213 # enospc causes trans commit failures +generic/318 # can't support user namespaces until v5.11 +generic/321 # requires selinux enabled for '+' in ls? +generic/338 # BUG_ON update inode error handling +generic/347 # _dmthin_mount doesn't work? +generic/356 # swap +generic/357 # swap +generic/409 # bind mounts not scripted yet +generic/410 # bind mounts not scripted yet +generic/411 # bind mounts not scripted yet +generic/423 # symlink inode size is strlen() + 1 on scoutfs +generic/430 # xfs_io copy_range missing in el7 +generic/431 # xfs_io copy_range missing in el7 +generic/432 # xfs_io copy_range missing in el7 +generic/433 # xfs_io copy_range missing in el7 +generic/434 # xfs_io copy_range missing in el7 +generic/441 # dm-mapper +generic/444 # el9's posix_acl_update_mode is buggy ? +generic/467 # open_by_handle ESTALE +generic/472 # swap +generic/484 # dm-mapper +generic/493 # swap +generic/494 # swap +generic/495 # swap +generic/496 # swap +generic/497 # swap +generic/532 # xfs_io statx attrib_mask missing in el7 +generic/554 # swap +generic/563 # cgroup+loopdev +generic/564 # xfs_io copy_range missing in el7 +generic/565 # xfs_io copy_range missing in el7 +generic/568 # falloc not resulting in block count increase +generic/569 # swap +generic/570 # swap +generic/620 # dm-hugedisk +generic/633 # id-mapped mounts missing in el7 +generic/636 # swap +generic/641 # swap +generic/643 # swap diff --git a/tests/funcs/exec.sh b/tests/funcs/exec.sh index 1e2d6f57..46949b5e 100644 --- a/tests/funcs/exec.sh +++ b/tests/funcs/exec.sh @@ -64,21 +64,27 @@ t_rc() } # -# redirect test output back to the output of the invoking script intead -# of the compared output. +# As run, stdout/err are redirected to a file that will be compared with +# the stored expected golden output of the test. This redirects +# stdout/err in the script to stdout of the invoking run-test. It's +# intended to give visible output of tests without being included in the +# golden output. # -t_restore_output() +# (see the goofy "exec" fd manipulation in the main run-tests as it runs +# each test) +# +t_stdout_invoked() { exec >&6 2>&1 } # -# redirect a command's output back to the compared output after the -# test has restored its output +# This undoes t_stdout_invokved, returning the test's stdout/err to the +# output file as it was when it was launched. # -t_compare_output() +t_stdout_compare() { - "$@" >&7 2>&1 + exec >&7 2>&1 } # diff --git a/tests/golden/xfstests b/tests/golden/xfstests index c4032ca9..e69de29b 100644 --- a/tests/golden/xfstests +++ b/tests/golden/xfstests @@ -1,882 +0,0 @@ -Ran: -generic/001 -generic/002 -generic/004 -generic/005 -generic/006 -generic/007 -generic/008 -generic/009 -generic/011 -generic/012 -generic/013 -generic/014 -generic/015 -generic/016 -generic/018 -generic/020 -generic/021 -generic/022 -generic/023 -generic/024 -generic/025 -generic/026 -generic/028 -generic/029 -generic/030 -generic/031 -generic/032 -generic/033 -generic/034 -generic/035 -generic/037 -generic/039 -generic/040 -generic/041 -generic/050 -generic/052 -generic/053 -generic/056 -generic/057 -generic/058 -generic/059 -generic/060 -generic/061 -generic/062 -generic/063 -generic/064 -generic/065 -generic/066 -generic/067 -generic/069 -generic/070 -generic/071 -generic/073 -generic/076 -generic/078 -generic/079 -generic/080 -generic/081 -generic/082 -generic/084 -generic/086 -generic/087 -generic/088 -generic/090 -generic/091 -generic/092 -generic/094 -generic/096 -generic/097 -generic/098 -generic/099 -generic/101 -generic/104 -generic/105 -generic/106 -generic/107 -generic/110 -generic/111 -generic/113 -generic/114 -generic/115 -generic/116 -generic/117 -generic/118 -generic/119 -generic/120 -generic/121 -generic/122 -generic/123 -generic/124 -generic/126 -generic/128 -generic/129 -generic/130 -generic/131 -generic/134 -generic/135 -generic/136 -generic/138 -generic/139 -generic/140 -generic/141 -generic/142 -generic/143 -generic/144 -generic/145 -generic/146 -generic/147 -generic/148 -generic/149 -generic/150 -generic/151 -generic/152 -generic/153 -generic/154 -generic/155 -generic/156 -generic/157 -generic/158 -generic/159 -generic/160 -generic/161 -generic/162 -generic/163 -generic/169 -generic/171 -generic/172 -generic/173 -generic/174 -generic/177 -generic/178 -generic/179 -generic/180 -generic/181 -generic/182 -generic/183 -generic/184 -generic/185 -generic/188 -generic/189 -generic/190 -generic/191 -generic/193 -generic/194 -generic/195 -generic/196 -generic/197 -generic/198 -generic/199 -generic/200 -generic/201 -generic/202 -generic/203 -generic/205 -generic/206 -generic/207 -generic/210 -generic/211 -generic/212 -generic/214 -generic/215 -generic/216 -generic/217 -generic/218 -generic/219 -generic/220 -generic/221 -generic/222 -generic/223 -generic/225 -generic/227 -generic/228 -generic/229 -generic/230 -generic/235 -generic/236 -generic/237 -generic/238 -generic/240 -generic/244 -generic/245 -generic/246 -generic/247 -generic/248 -generic/249 -generic/250 -generic/252 -generic/253 -generic/254 -generic/255 -generic/256 -generic/257 -generic/258 -generic/259 -generic/260 -generic/261 -generic/262 -generic/263 -generic/264 -generic/265 -generic/266 -generic/267 -generic/268 -generic/271 -generic/272 -generic/276 -generic/277 -generic/278 -generic/279 -generic/281 -generic/282 -generic/283 -generic/284 -generic/286 -generic/287 -generic/288 -generic/289 -generic/290 -generic/291 -generic/292 -generic/293 -generic/294 -generic/295 -generic/296 -generic/301 -generic/302 -generic/303 -generic/304 -generic/305 -generic/306 -generic/307 -generic/308 -generic/309 -generic/312 -generic/313 -generic/314 -generic/315 -generic/316 -generic/317 -generic/319 -generic/322 -generic/324 -generic/325 -generic/326 -generic/327 -generic/328 -generic/329 -generic/330 -generic/331 -generic/332 -generic/335 -generic/336 -generic/337 -generic/341 -generic/342 -generic/343 -generic/346 -generic/348 -generic/353 -generic/355 -generic/358 -generic/359 -generic/360 -generic/361 -generic/362 -generic/363 -generic/364 -generic/365 -generic/366 -generic/367 -generic/368 -generic/369 -generic/370 -generic/371 -generic/372 -generic/373 -generic/374 -generic/375 -generic/376 -generic/377 -generic/378 -generic/379 -generic/380 -generic/381 -generic/382 -generic/383 -generic/384 -generic/385 -generic/386 -generic/389 -generic/391 -generic/392 -generic/393 -generic/394 -generic/395 -generic/396 -generic/397 -generic/398 -generic/400 -generic/401 -generic/402 -generic/403 -generic/404 -generic/406 -generic/407 -generic/408 -generic/412 -generic/413 -generic/414 -generic/417 -generic/419 -generic/420 -generic/421 -generic/422 -generic/424 -generic/425 -generic/426 -generic/427 -generic/428 -generic/436 -generic/437 -generic/439 -generic/440 -generic/443 -generic/445 -generic/446 -generic/448 -generic/449 -generic/450 -generic/451 -generic/452 -generic/453 -generic/454 -generic/456 -generic/458 -generic/460 -generic/462 -generic/463 -generic/465 -generic/466 -generic/468 -generic/469 -generic/470 -generic/471 -generic/474 -generic/477 -generic/478 -generic/479 -generic/480 -generic/481 -generic/483 -generic/485 -generic/486 -generic/487 -generic/488 -generic/489 -generic/490 -generic/491 -generic/492 -generic/498 -generic/499 -generic/501 -generic/502 -generic/503 -generic/504 -generic/505 -generic/506 -generic/507 -generic/508 -generic/509 -generic/510 -generic/511 -generic/512 -generic/513 -generic/514 -generic/515 -generic/516 -generic/517 -generic/518 -generic/519 -generic/520 -generic/523 -generic/524 -generic/525 -generic/526 -generic/527 -generic/528 -generic/529 -generic/530 -generic/531 -generic/533 -generic/534 -generic/535 -generic/536 -generic/537 -generic/538 -generic/539 -generic/540 -generic/541 -generic/542 -generic/543 -generic/544 -generic/545 -generic/546 -generic/547 -generic/548 -generic/549 -generic/550 -generic/552 -generic/553 -generic/555 -generic/556 -generic/557 -generic/566 -generic/567 -generic/571 -generic/572 -generic/573 -generic/574 -generic/575 -generic/576 -generic/577 -generic/578 -generic/580 -generic/581 -generic/582 -generic/583 -generic/584 -generic/586 -generic/587 -generic/588 -generic/591 -generic/592 -generic/593 -generic/594 -generic/595 -generic/596 -generic/597 -generic/598 -generic/599 -generic/600 -generic/601 -generic/602 -generic/603 -generic/604 -generic/605 -generic/606 -generic/607 -generic/608 -generic/609 -generic/610 -generic/611 -generic/612 -generic/613 -generic/614 -generic/618 -generic/621 -generic/623 -generic/624 -generic/625 -generic/626 -generic/628 -generic/629 -generic/630 -generic/632 -generic/634 -generic/635 -generic/637 -generic/638 -generic/639 -generic/640 -generic/644 -generic/645 -generic/646 -generic/647 -generic/651 -generic/652 -generic/653 -generic/654 -generic/655 -generic/657 -generic/658 -generic/659 -generic/660 -generic/661 -generic/662 -generic/663 -generic/664 -generic/665 -generic/666 -generic/667 -generic/668 -generic/669 -generic/673 -generic/674 -generic/675 -generic/676 -generic/677 -generic/678 -generic/679 -generic/680 -generic/681 -generic/682 -generic/683 -generic/684 -generic/685 -generic/686 -generic/687 -generic/688 -generic/689 -shared/002 -shared/032 -Not -run: -generic/008 -generic/009 -generic/012 -generic/015 -generic/016 -generic/018 -generic/021 -generic/022 -generic/025 -generic/026 -generic/031 -generic/033 -generic/050 -generic/052 -generic/058 -generic/059 -generic/060 -generic/061 -generic/063 -generic/064 -generic/078 -generic/079 -generic/081 -generic/082 -generic/091 -generic/094 -generic/096 -generic/110 -generic/111 -generic/113 -generic/114 -generic/115 -generic/116 -generic/118 -generic/119 -generic/121 -generic/122 -generic/123 -generic/128 -generic/130 -generic/134 -generic/135 -generic/136 -generic/138 -generic/139 -generic/140 -generic/142 -generic/143 -generic/144 -generic/145 -generic/146 -generic/147 -generic/148 -generic/149 -generic/150 -generic/151 -generic/152 -generic/153 -generic/154 -generic/155 -generic/156 -generic/157 -generic/158 -generic/159 -generic/160 -generic/161 -generic/162 -generic/163 -generic/171 -generic/172 -generic/173 -generic/174 -generic/177 -generic/178 -generic/179 -generic/180 -generic/181 -generic/182 -generic/183 -generic/185 -generic/188 -generic/189 -generic/190 -generic/191 -generic/193 -generic/194 -generic/195 -generic/196 -generic/197 -generic/198 -generic/199 -generic/200 -generic/201 -generic/202 -generic/203 -generic/205 -generic/206 -generic/207 -generic/210 -generic/211 -generic/212 -generic/214 -generic/216 -generic/217 -generic/218 -generic/219 -generic/220 -generic/222 -generic/223 -generic/225 -generic/227 -generic/229 -generic/230 -generic/235 -generic/238 -generic/240 -generic/244 -generic/250 -generic/252 -generic/253 -generic/254 -generic/255 -generic/256 -generic/259 -generic/260 -generic/261 -generic/262 -generic/263 -generic/264 -generic/265 -generic/266 -generic/267 -generic/268 -generic/271 -generic/272 -generic/276 -generic/277 -generic/278 -generic/279 -generic/281 -generic/282 -generic/283 -generic/284 -generic/287 -generic/288 -generic/289 -generic/290 -generic/291 -generic/292 -generic/293 -generic/295 -generic/296 -generic/301 -generic/302 -generic/303 -generic/304 -generic/305 -generic/312 -generic/314 -generic/316 -generic/317 -generic/324 -generic/326 -generic/327 -generic/328 -generic/329 -generic/330 -generic/331 -generic/332 -generic/353 -generic/355 -generic/358 -generic/359 -generic/361 -generic/362 -generic/363 -generic/364 -generic/365 -generic/366 -generic/367 -generic/368 -generic/369 -generic/370 -generic/371 -generic/372 -generic/373 -generic/374 -generic/378 -generic/379 -generic/380 -generic/381 -generic/382 -generic/383 -generic/384 -generic/385 -generic/386 -generic/391 -generic/392 -generic/395 -generic/396 -generic/397 -generic/398 -generic/400 -generic/402 -generic/404 -generic/406 -generic/407 -generic/408 -generic/412 -generic/413 -generic/414 -generic/417 -generic/419 -generic/420 -generic/421 -generic/422 -generic/424 -generic/425 -generic/427 -generic/439 -generic/440 -generic/446 -generic/449 -generic/450 -generic/451 -generic/453 -generic/454 -generic/456 -generic/458 -generic/462 -generic/463 -generic/465 -generic/466 -generic/468 -generic/469 -generic/470 -generic/471 -generic/474 -generic/485 -generic/487 -generic/488 -generic/491 -generic/492 -generic/499 -generic/501 -generic/503 -generic/505 -generic/506 -generic/507 -generic/508 -generic/511 -generic/513 -generic/514 -generic/515 -generic/516 -generic/517 -generic/518 -generic/519 -generic/520 -generic/528 -generic/530 -generic/536 -generic/537 -generic/538 -generic/539 -generic/540 -generic/541 -generic/542 -generic/543 -generic/544 -generic/545 -generic/546 -generic/548 -generic/549 -generic/550 -generic/552 -generic/553 -generic/555 -generic/556 -generic/566 -generic/567 -generic/572 -generic/573 -generic/574 -generic/575 -generic/576 -generic/577 -generic/578 -generic/580 -generic/581 -generic/582 -generic/583 -generic/584 -generic/586 -generic/587 -generic/588 -generic/591 -generic/592 -generic/593 -generic/594 -generic/595 -generic/596 -generic/597 -generic/598 -generic/599 -generic/600 -generic/601 -generic/602 -generic/603 -generic/605 -generic/606 -generic/607 -generic/608 -generic/609 -generic/610 -generic/612 -generic/613 -generic/621 -generic/623 -generic/624 -generic/625 -generic/626 -generic/628 -generic/629 -generic/630 -generic/635 -generic/644 -generic/645 -generic/646 -generic/647 -generic/651 -generic/652 -generic/653 -generic/654 -generic/655 -generic/657 -generic/658 -generic/659 -generic/660 -generic/661 -generic/662 -generic/663 -generic/664 -generic/665 -generic/666 -generic/667 -generic/668 -generic/669 -generic/673 -generic/674 -generic/675 -generic/677 -generic/678 -generic/679 -generic/680 -generic/681 -generic/682 -generic/683 -generic/684 -generic/685 -generic/686 -generic/687 -generic/688 -generic/689 -shared/002 -shared/032 -Passed all 512 tests diff --git a/tests/run-tests.sh b/tests/run-tests.sh index f7e6d354..3a6f0377 100755 --- a/tests/run-tests.sh +++ b/tests/run-tests.sh @@ -613,6 +613,9 @@ for t in $tests; do # mark in dmesg as to what test we are running echo "run scoutfs test $test_name" > /dev/kmsg + # let the test get at its extra files + T_EXTRA="$T_TESTS/extra/$test_name" + for iter in $(seq 1 $T_LOOP_ITER); do # create a temporary dir and file path for the test diff --git a/tests/tests/xfstests.sh b/tests/tests/xfstests.sh index bd02a1a3..efc22cc6 100644 --- a/tests/tests/xfstests.sh +++ b/tests/tests/xfstests.sh @@ -63,73 +63,47 @@ export MOUNT_OPTIONS="-o quorum_slot_nr=0,metadev_path=$T_MB0" export TEST_FS_MOUNT_OPTS="-o quorum_slot_nr=0,metadev_path=$T_MB0" EOF -cat << EOF > local.exclude -generic/003 # missing atime update in buffered read -generic/075 # file content mismatch failures (fds, etc) -generic/103 # enospc causes trans commit failures -generic/108 # mount fails on failing device? -generic/112 # file content mismatch failures (fds, etc) -generic/213 # enospc causes trans commit failures -generic/318 # can't support user namespaces until v5.11 -generic/321 # requires selinux enabled for '+' in ls? -generic/338 # BUG_ON update inode error handling -generic/347 # _dmthin_mount doesn't work? -generic/356 # swap -generic/357 # swap -generic/409 # bind mounts not scripted yet -generic/410 # bind mounts not scripted yet -generic/411 # bind mounts not scripted yet -generic/423 # symlink inode size is strlen() + 1 on scoutfs -generic/430 # xfs_io copy_range missing in el7 -generic/431 # xfs_io copy_range missing in el7 -generic/432 # xfs_io copy_range missing in el7 -generic/433 # xfs_io copy_range missing in el7 -generic/434 # xfs_io copy_range missing in el7 -generic/441 # dm-mapper -generic/444 # el9's posix_acl_update_mode is buggy ? -generic/467 # open_by_handle ESTALE -generic/472 # swap -generic/484 # dm-mapper -generic/493 # swap -generic/494 # swap -generic/495 # swap -generic/496 # swap -generic/497 # swap -generic/532 # xfs_io statx attrib_mask missing in el7 -generic/554 # swap -generic/563 # cgroup+loopdev -generic/564 # xfs_io copy_range missing in el7 -generic/565 # xfs_io copy_range missing in el7 -generic/568 # falloc not resulting in block count increase -generic/569 # swap -generic/570 # swap -generic/620 # dm-hugedisk -generic/633 # id-mapped mounts missing in el7 -generic/636 # swap -generic/641 # swap -generic/643 # swap -EOF +cp "$T_EXTRA/local.exclude" local.exclude -t_restore_output +t_stdout_invoked echo " (showing output of xfstests)" args="-E local.exclude ${T_XFSTESTS_ARGS:--g quick}" ./check $args # the fs is unmounted when check finishes +t_stdout_compare + # -# ./check writes the results of the run to check.log. It lists -# the tests it ran, skipped, or failed. Then it writes a line saying -# everything passed or some failed. We scrape the most recent run and -# use it as the output to compare to make sure that we run the right -# tests and get the right results. +# ./check writes the results of the run to check.log. It lists the +# tests it ran, skipped, or failed. Then it writes a line saying +# everything passed or some failed. +# + +# +# If XFSTESTS_ARGS were specified then we just pass/fail to match the +# check run. +# +if [ -n "$T_XFSTESTS_ARGS" ]; then + if tail -1 results/check.log | grep -q "Failed"; then + t_fail + else + t_pass + fi +fi + +# +# Otherwise, typically, when there were no args then we scrape the most +# recent run and use it as the output to compare to make sure that we +# run the right tests and get the right results. # awk ' /^(Ran|Not run|Failures):.*/ { if (pf) { res="" pf="" - } res = res "\n" $0 + } + res = res "\n" $0 } /^(Passed|Failed).*tests$/ { pf=$0 @@ -139,10 +113,14 @@ awk ' }' < results/check.log > "$T_TMPDIR/results" # put a test per line so diff shows tests that differ -egrep "^(Ran|Not run|Failures):" "$T_TMPDIR/results" | \ - fmt -w 1 > "$T_TMPDIR/results.fmt" -egrep "^(Passed|Failed).*tests$" "$T_TMPDIR/results" >> "$T_TMPDIR/results.fmt" +grep -E "^(Ran|Not run|Failures):" "$T_TMPDIR/results" | fmt -w 1 > "$T_TMPDIR/results.fmt" +grep -E "^(Passed|Failed).*tests$" "$T_TMPDIR/results" >> "$T_TMPDIR/results.fmt" -t_compare_output cat "$T_TMPDIR/results.fmt" +diff -u "$T_EXTRA/expected-results" "$T_TMPDIR/results.fmt" > "$T_TMPDIR/results.diff" +if [ -s "$T_TMPDIR/results.diff" ]; then + echo "tests that were skipped/run differed from expected:" + cat "$T_TMPDIR/results.diff" + t_fail +fi t_pass