diff mbox

[U-Boot,v2,5/5] test/fs: Check writes using "." (same dir) relative path

Message ID 3532d25bad7a4bd6a2728f0a38e6b3fe@rwthex-w2-b.rwth-ad.de
State Accepted
Commit 2365a4b8ea7d8b1f5e796a4fec176f613dea838c
Delegated to: Tom Rini
Headers show

Commit Message

Stefan Brüns Sept. 13, 2016, 11:01 p.m. UTC
<path>/<fname> and <path>/./<fname> should reference the same file.

Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de>
---
 test/fs/fs-test.sh | 29 ++++++++++++++++++++++++++++-
 1 file changed, 28 insertions(+), 1 deletion(-)

Comments

Tom Rini Sept. 23, 2016, 7:56 p.m. UTC | #1
On Wed, Sep 14, 2016 at 01:01:31AM +0200, Stefan Brüns wrote:

> <path>/<fname> and <path>/./<fname> should reference the same file.
> 
> Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de>

Applied to u-boot/master, thanks!
diff mbox

Patch

diff --git a/test/fs/fs-test.sh b/test/fs/fs-test.sh
index 69abdab..520344b 100755
--- a/test/fs/fs-test.sh
+++ b/test/fs/fs-test.sh
@@ -299,6 +299,23 @@  setenv filesize
 # The write should fail, but the lookup should work
 # Test Case 12 - Check directory traversal
 ${PREFIX}${WRITE} host${SUFFIX} $addr ${FPATH}. 0x10
+
+# Read 1MB from small file
+${PREFIX}load host${SUFFIX} $addr ${FPATH}$FILE_SMALL
+# Write it via "same directory", i.e. "." dirent
+# Test Case 13a - Check directory traversal
+${PREFIX}${WRITE} host${SUFFIX} $addr ${FPATH}./${FILE_WRITE}2 \$filesize
+mw.b $addr 00 100
+${PREFIX}load host${SUFFIX} $addr ${FPATH}./${FILE_WRITE}2
+# Test Case 13b - Check md5 of written to is same as the one read from
+md5sum $addr \$filesize
+setenv filesize
+mw.b $addr 00 100
+${PREFIX}load host${SUFFIX} $addr ${FPATH}${FILE_WRITE}2
+# Test Case 13c - Check md5 of written to is same as the one read from
+md5sum $addr \$filesize
+setenv filesize
+#
 reset
 
 EOF
@@ -335,9 +352,10 @@  function create_files() {
 			&> /dev/null
 	fi
 
-	# Delete the small file which possibly is written as part of a
+	# Delete the small file copies which possibly are written as part of a
 	# previous test.
 	sudo rm -f "${MB1}.w"
+	sudo rm -f "${MB1}.w2"
 
 	# Generate the md5sums of reads that we will test against small file
 	dd if="${MB1}" bs=1M skip=0 count=1 2> /dev/null | md5sum > "$2"
@@ -482,6 +500,15 @@  function check_results() {
 	# Check lookup of 'dot' directory
 	grep -A4 "Test Case 12 " "$1" | grep -q 'Unable to write file'
 	pass_fail "TC12: 1MB write to . - write denied"
+
+	# Check directory traversal
+	grep -A2 "Test Case 13a " "$1" | grep -q '1048576 bytes written'
+	pass_fail "TC13: 1MB write to ./$3.w2 - write succeeded"
+	check_md5 "Test Case 13b " "$1" "$2" 1 \
+		"TC13: 1MB read from ./$3.w2 - content verified"
+	check_md5 "Test Case 13c " "$1" "$2" 1 \
+		"TC13: 1MB read from $3.w2 - content verified"
+
 	echo "** End $1"
 }