Re: [U-Boot] [PATCH v2 2/4] fs-test: Add FAT16 support

2017-09-26 Thread Tom Rini
On Mon, Sep 25, 2017 at 10:06:32PM +0300, Tuomas Tynkkynen wrote:

> Currently we can only test FAT32 which is the default FAT version that
> mkfs.vfat creates by default. Instead make it explicitly create either a
> FAT16 or a FAT32 volume. This allows us to exercise more code, for
> instance the root directory handling is done differently in FAT32 than
> the older FATs.
> 
> Adding FAT12 support is a much bigger job since the test creates a 2.5GB
> file and the FAT12 maximum partition size is way smaller than that.
> 
> Signed-off-by: Tuomas Tynkkynen 

Reviewed-by: Tom Rini 

-- 
Tom


signature.asc
Description: Digital signature
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


[U-Boot] [PATCH v2 2/4] fs-test: Add FAT16 support

2017-09-25 Thread Tuomas Tynkkynen
Currently we can only test FAT32 which is the default FAT version that
mkfs.vfat creates by default. Instead make it explicitly create either a
FAT16 or a FAT32 volume. This allows us to exercise more code, for
instance the root directory handling is done differently in FAT32 than
the older FATs.

Adding FAT12 support is a much bigger job since the test creates a 2.5GB
file and the FAT12 maximum partition size is way smaller than that.

Signed-off-by: Tuomas Tynkkynen 
---
v2: Update result summary in the header
---
 test/fs/fs-test.sh | 55 +++---
 1 file changed, 36 insertions(+), 19 deletions(-)

diff --git a/test/fs/fs-test.sh b/test/fs/fs-test.sh
index b19486419e..0ac34983a1 100755
--- a/test/fs/fs-test.sh
+++ b/test/fs/fs-test.sh
@@ -12,11 +12,15 @@
 # fs-test.sb.ext4.out: Summary: PASS: 23 FAIL: 0
 # fs-test.ext4.out: Summary: PASS: 23 FAIL: 0
 # fs-test.fs.ext4.out: Summary: PASS: 23 FAIL: 0
-# FAT tests:
-# fs-test.sb.fat.out: Summary: PASS: 23 FAIL: 0
-# fs-test.fat.out: Summary: PASS: 20 FAIL: 3
-# fs-test.fs.fat.out: Summary: PASS: 20 FAIL: 3
-# Total Summary: TOTAL PASS: 132 TOTAL FAIL: 6
+# FAT16 tests:
+# fs-test.sb.fat16.out: Summary: PASS: 23 FAIL: 0
+# fs-test.fat16.out: Summary: PASS: 20 FAIL: 3
+# fs-test.fs.fat16.out: Summary: PASS: 20 FAIL: 3
+# FAT32 tests:
+# fs-test.sb.fat32.out: Summary: PASS: 23 FAIL: 0
+# fs-test.fat32.out: Summary: PASS: 20 FAIL: 3
+# fs-test.fs.fat32.out: Summary: PASS: 20 FAIL: 3
+# Total Summary: TOTAL PASS: 195 TOTAL FAIL: 12
 
 # pre-requisite binaries list.
 PREREQ_BINS="md5sum mkfs mount umount dd fallocate mkdir"
@@ -41,7 +45,7 @@ SMALL_FILE="1MB.file"
 BIG_FILE="2.5GB.file"
 
 # $MD5_FILE will have the expected md5s when we do the test
-# They shall have a suffix which represents their file system (ext4/fat)
+# They shall have a suffix which represents their file system (ext4/fat16/...)
 MD5_FILE="${OUT_DIR}/md5s.list"
 
 # $OUT shall be the prefix of the test output. Their suffix will be .out
@@ -104,15 +108,25 @@ function prepare_env() {
 }
 
 # 1st parameter is the name of the image file to be created
-# 2nd parameter is the filesystem - fat ext4 etc
+# 2nd parameter is the filesystem - fat16 ext4 etc
 # -F cant be used with fat as it means something else.
 function create_image() {
# Create image if not already present - saves time, while debugging
-   if [ "$2" = "ext4" ]; then
+   case "$2" in
+   fat16)
+   MKFS_OPTION="-F 16"
+   FS_TYPE="fat"
+   ;;
+   fat32)
+   MKFS_OPTION="-F 32"
+   FS_TYPE="fat"
+   ;;
+   ext4)
MKFS_OPTION="-F"
-   else
-   MKFS_OPTION=""
-   fi
+   FS_TYPE="ext4"
+   ;;
+   esac
+
if [ ! -f "$1" ]; then
fallocate -l 3G "$1" &> /dev/null
if [ $? -ne 0 ]; then
@@ -123,8 +137,8 @@ function create_image() {
exit $?
fi
fi
-   mkfs -t "$2" $MKFS_OPTION "$1" &> /dev/null
-   if [ $? -ne 0 -a "$2" = "fat" ]; then
+   mkfs -t "$FS_TYPE" $MKFS_OPTION "$1" &> /dev/null
+   if [ $? -ne 0 -a "$FS_TYPE" = "fat" ]; then
# If we fail and we did fat, try vfat.
mkfs -t vfat $MKFS_OPTION "$1" &> /dev/null
fi
@@ -136,7 +150,7 @@ function create_image() {
 }
 
 # 1st parameter is image file
-# 2nd parameter is file system type - fat/ext4
+# 2nd parameter is file system type - fat16/ext4/...
 # 3rd parameter is name of small file
 # 4th parameter is name of big file
 # 5th parameter is fs/nonfs/sb - to dictate generic fs commands or
@@ -149,7 +163,7 @@ function test_image() {
length="0x0010"
 
case "$2" in
-   fat)
+   fat*)
FPATH=""
PREFIX="fat"
WRITE="write"
@@ -550,7 +564,7 @@ TOTAL_PASS=0
 # In each loop, for a given file system image, we test both the
 # fs command, like load/size/write, the file system specific command
 # like: ext4load/ext4size/ext4write and the sb load/ls/save commands.
-for fs in ext4 fat; do
+for fs in ext4 fat16 fat32; do
 
echo "Creating $fs image if not already present."
IMAGE=${IMG}.${fs}.img
@@ -563,11 +577,14 @@ for fs in ext4 fat; do
 
# Lets mount the image and test sb hostfs commands
mkdir -p "$MOUNT_DIR"
-   if [ "$fs" = "fat" ]; then
+   case "$fs" in
+   fat*)
uid="uid=`id -u`"
-   else
+   ;;
+   *)
uid=""
-   fi
+   ;;
+   esac
sudo mount -o loop,rw,$uid "$IMAGE" "$MOUNT_DIR"
sudo chmod 777 "$MOUNT_DIR"
 
-- 
2.13.0

___
U-Boot mailing list
U-Boot@lists.denx.de
https://li