[U-Boot] [PATCH 3/3] test/fs: Check writes using "." (same dir) relative path
Brüns, Stefan
Stefan.Bruens at rwth-aachen.de
Tue Sep 13 21:00:13 CEST 2016
On Dienstag, 13. September 2016 12:36:26 CEST you wrote:
> On 09/12/2016 04:04 PM, Stefan Bruens wrote:
> > On Montag, 12. September 2016 12:44:08 CEST you wrote:
> >> On 09/11/2016 02:46 PM, Stefan Brüns wrote:
> >>> <path>/<fname> and <path>/./<fname> should reference the same file.
> >>>
> >>> diff --git a/test/fs/fs-test.sh b/test/fs/fs-test.sh
> >>>
> >>> +# Read 1MB from small file
> >>> +${PREFIX}load host${SUFFIX} $addr ${FPATH}$FILE_SMALL
> >>
> >> I think the same issue with $FPATH ending/not-ending in / applies here
> >> too, and for all commands in this patch.
> >
> > FPATH is either "" for native fat, "/" for native ext4, or <somepath>/ for
> > hostfs, so this is correct. Specifically, for fat, we dont want any "/" in
> > front of $FILE_foo.
>
> I believe FPATH can be either "", "/" or "/foo/bar" here, due to the
> issue I just mentioned in the other email.
FPATH is either "", "/", "/foo/bar" + "/" or "/foo/bar" + "/" + "/". The last
one is not to too nice, but still correct.
FPATH is *never* "/foo/bar", i.e. without trailing slash.
> >>> @@ -482,6 +499,16 @@ function check_results() {
> >>>
> >>> + # Check directory traversal
> >>> + grep -A6 "Test Case 13a " "$1" | \
> >>> + egrep -q '1048576 bytes written|update journal'
> >>
> >> Why is "update journal" considered successful? Surely the "n bytes
> >> written" message is always printed irrespective of whether anything
> >> journal-related happened?
> >
> > Thats a question left to the author of Test Case 11, where the fragment
> > was
> > copied from.
>
> I don't quite agree; you're adding the new test, so should make sure the
> validation code makes sense.
I did not claim this is correct. I just stated this problem exists already for
the older test cases.
> > Ext4 unfortunately is quite verbose, it inserts "File system is
> > consistent"
> > and "update journal finished" lines in the output. I think these lines
> > where better stripped from the log prior to any further parsing.
>
> ext4 may print some extra output, but that doesn't mean that any of it
> should be used in the validation. I think the simplest thing is to just
> ignore it in the validation code. Using egrep -q '1048576 bytes written'
> should do that just fine, and not get a false-positive if ext4 does say
> "update journal" without saying the required "1048576 bytes written".
No, this will not work for ext4 *and* fat.
Every check starts with a "grep -Axx 'Test Case n'" match. If "-Axx" is
extended to *always* include the "yyy bytes written", then it will work for
ext4, but it will also match "Test Case n \n failed \n Test Case n+1 \n yyy
bytes written".
Kind Regards,
Stefan
More information about the U-Boot
mailing list