You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Given a j-lang version 1 test file, the Ace xfstest adapter generates two files: a numbered test script (e.g. 362) and a verified output for that test (362.out). xfstest determines a test has failed if its output does not match this verified output.
Ace's xfstest adapter always emits verified output files that say tests should emit no output. However, the generated tests do sometimes produce erroring output under correct execution. This leads to spurious failures reported by xfstest, even when there was no crash consistency bug.
Here are 3 sources of such issues I have found, all running xfstests on Ubuntu 16.04:
1. fsync is run on non-existent files.
For example, a j-lang file whose run section begins:
# run
open foo O_RDWR|O_CREAT 0777
mkdir A 0777
mkdir AC 0777
fsync ACfoo
will convert to a test with the following snippet:
Given a j-lang version 1 test file, the Ace xfstest adapter generates two files: a numbered test script (e.g. 362) and a verified output for that test (362.out). xfstest determines a test has failed if its output does not match this verified output.
Ace's xfstest adapter always emits verified output files that say tests should emit no output. However, the generated tests do sometimes produce erroring output under correct execution. This leads to spurious failures reported by xfstest, even when there was no crash consistency bug.
Here are 3 sources of such issues I have found, all running xfstests on Ubuntu 16.04:
1. fsync is run on non-existent files.
For example, a j-lang file whose
run
section begins:will convert to a test with the following snippet:
Here,
fsync
is run onA/C/foo
, butA/C/foo
is never created before hand, leading to the outputA/C/foo: No such file or directory
.2. renaming a directory into a subdirectory of itself
Tests with rename will often lead to j-lang snippets such as:
which translates into
rename
is implemented in terms ofmv
, which will (correctly) produce the following error:3. Clean-up after a test produces an error if test directory is empty
To clean up after a test, the generated xfstest scripts run:
But if
$SCRATCH_MNT
is empty, the call tofind
here will produce an error:find: '/mnt/scratch/*': No such file or directory
Probably the correct thing to do instead would be to replace
find $SCRATCH_MNT/*
withfind $SCRATCH_MNT/ -mindepth 1
The text was updated successfully, but these errors were encountered: