From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?iso-8859-1?Q?Br=FCns=2C_Stefan?= Date: Tue, 13 Sep 2016 19:00:13 +0000 Subject: [U-Boot] [PATCH 3/3] test/fs: Check writes using "." (same dir) relative path In-Reply-To: <91f4c12c-458b-72de-636e-238f263eff62@wwwdotorg.org> References: <20160911204606.4146-1-stefan.bruens@rwth-aachen.de> <2960090.po5o64fQlJ@pebbles.site> <91f4c12c-458b-72de-636e-238f263eff62@wwwdotorg.org> Message-ID: <2492528.PnxoPsXEx1@sbruens-linux> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de 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: > >>> / and /./ 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 / 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