Message ID | 20190513054927.17890-5-takahiro.akashi@linaro.org |
---|---|
State | Superseded, archived |
Delegated to: | Heinrich Schuchardt |
Headers | show |
Series | fs: fat: fixes for write under root directory | expand |
On 5/13/19 7:49 AM, AKASHI Takahiro wrote: > Two test cases are added under test_fs_ext: > test case 10: for root directory > test case 11: for non-root directory When running `make tests` all of these tests seem to be skipped: test/py/tests/test_fs/test_basic.py sssssssssssssssssssssssssssssssssssssss [ 0%] test/py/tests/test_fs/test_ext.py ssssssssssssssssssssss [ 0%] test/py/tests/test_fs/test_mkdir.py ssssssssssss [ 0%] test/py/tests/test_fs/test_symlink.py ssss [ 0%] test/py/tests/test_fs/test_unlink.py ssssssssssssss How can they be executed? I think it is worthwhile to mention as a comment that you are testing long file names (not 8.3). Best regards Heinrich > > Those will verify a behavior fixed by the commits related to > root directory > ("fs: fat: allocate a new cluster for root directory of fat32" and > "fs: fat: flush a directory cluster properly"). > > Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org> > --- > test/py/tests/test_fs/test_ext.py | 84 +++++++++++++++++++++++++++++++ > 1 file changed, 84 insertions(+) > > diff --git a/test/py/tests/test_fs/test_ext.py b/test/py/tests/test_fs/test_ext.py > index 2c47738b8df2..361f440dd6d4 100644 > --- a/test/py/tests/test_fs/test_ext.py > +++ b/test/py/tests/test_fs/test_ext.py > @@ -233,3 +233,87 @@ class TestFsExt(object): > % (fs_type, ADDR, MIN_FILE)]) > assert('Unable to write "/dir1' in ''.join(output)) > assert_fs_integrity(fs_type, fs_img) > + > + def test_fs_ext10(self, u_boot_console, fs_obj_ext): > + """ > + 'Test Case 10 - create/delete as many directories under root directory > + as amount of directory entries goes beyond one cluster size)' > + """ > + fs_type,fs_img,md5val = fs_obj_ext > + with u_boot_console.log.section('Test Case 10 - create/delete (many)'): > + # Test Case 10a - Create many files > + # Please note that the size of directory entry is 32 bytes. > + # So one typical cluster may holds 64 (2048/32) entries. > + output = u_boot_console.run_command( > + 'host bind 0 %s' % fs_img) > + > + for i in range(0, 66): > + output = u_boot_console.run_command( > + '%swrite host 0:0 %x /FILE0123456789_%02x 100' > + % (fs_type, ADDR, i)) > + output = u_boot_console.run_command('%sls host 0:0 /' % fs_type) > + assert('FILE0123456789_00' in output) > + assert('FILE0123456789_41' in output) > + > + # Test Case 10b - Delete many files > + for i in range(0, 66): > + output = u_boot_console.run_command( > + '%srm host 0:0 /FILE0123456789_%02x' > + % (fs_type, i)) > + output = u_boot_console.run_command('%sls host 0:0 /' % fs_type) > + assert(not 'FILE0123456789_00' in output) > + assert(not 'FILE0123456789_41' in output) > + > + # Test Case 10c - Create many files again > + # Please note no.64 and 65 are intentionally re-created > + for i in range(64, 128): > + output = u_boot_console.run_command( > + '%swrite host 0:0 %x /FILE0123456789_%02x 100' > + % (fs_type, ADDR, i)) > + output = u_boot_console.run_command('%sls host 0:0 /' % fs_type) > + assert('FILE0123456789_40' in output) > + assert('FILE0123456789_79' in output) > + > + assert_fs_integrity(fs_type, fs_img) > + > + def test_fs_ext11(self, u_boot_console, fs_obj_ext): > + """ > + 'Test Case 11 - create/delete as many directories under non-root > + directory as amount of directory entries goes beyond one cluster size)' > + """ > + fs_type,fs_img,md5val = fs_obj_ext > + with u_boot_console.log.section('Test Case 10 - create/delete (many)'): > + # Test Case 11a - Create many files > + # Please note that the size of directory entry is 32 bytes. > + # So one typical cluster may holds 64 (2048/32) entries. > + output = u_boot_console.run_command( > + 'host bind 0 %s' % fs_img) > + > + for i in range(0, 66): > + output = u_boot_console.run_command( > + '%swrite host 0:0 %x /dir1/FILE0123456789_%02x 100' > + % (fs_type, ADDR, i)) > + output = u_boot_console.run_command('%sls host 0:0 /dir1' % fs_type) > + assert('FILE0123456789_00' in output) > + assert('FILE0123456789_41' in output) > + > + # Test Case 11b - Delete many files > + for i in range(0, 66): > + output = u_boot_console.run_command( > + '%srm host 0:0 /dir1/FILE0123456789_%02x' > + % (fs_type, i)) > + output = u_boot_console.run_command('%sls host 0:0 /dir1' % fs_type) > + assert(not 'FILE0123456789_00' in output) > + assert(not 'FILE0123456789_41' in output) > + > + # Test Case 11c - Create many files again > + # Please note no.64 and 65 are intentionally re-created > + for i in range(64, 128): > + output = u_boot_console.run_command( > + '%swrite host 0:0 %x /dir1/FILE0123456789_%02x 100' > + % (fs_type, ADDR, i)) > + output = u_boot_console.run_command('%sls host 0:0 /dir1' % fs_type) > + assert('FILE0123456789_40' in output) > + assert('FILE0123456789_79' in output) > + > + assert_fs_integrity(fs_type, fs_img) >
On Tue, May 14, 2019 at 08:09:53PM +0200, Heinrich Schuchardt wrote: > On 5/13/19 7:49 AM, AKASHI Takahiro wrote: > >Two test cases are added under test_fs_ext: > > test case 10: for root directory > > test case 11: for non-root directory > > When running `make tests` all of these tests seem to be skipped: > > test/py/tests/test_fs/test_basic.py > sssssssssssssssssssssssssssssssssssssss > [ 0%] > test/py/tests/test_fs/test_ext.py ssssssssssssssssssssss > > [ 0%] > test/py/tests/test_fs/test_mkdir.py ssssssssssss > > [ 0%] > test/py/tests/test_fs/test_symlink.py ssss > > [ 0%] > test/py/tests/test_fs/test_unlink.py ssssssssssssss > > How can they be executed? Install guestmount and set it up correctly. -Takahiro Akashi > I think it is worthwhile to mention as a comment that you are testing > long file names (not 8.3). > > Best regards > > Heinrich > > > > >Those will verify a behavior fixed by the commits related to > >root directory > >("fs: fat: allocate a new cluster for root directory of fat32" and > >"fs: fat: flush a directory cluster properly"). > > > >Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org> > >--- > > test/py/tests/test_fs/test_ext.py | 84 +++++++++++++++++++++++++++++++ > > 1 file changed, 84 insertions(+) > > > >diff --git a/test/py/tests/test_fs/test_ext.py b/test/py/tests/test_fs/test_ext.py > >index 2c47738b8df2..361f440dd6d4 100644 > >--- a/test/py/tests/test_fs/test_ext.py > >+++ b/test/py/tests/test_fs/test_ext.py > >@@ -233,3 +233,87 @@ class TestFsExt(object): > > % (fs_type, ADDR, MIN_FILE)]) > > assert('Unable to write "/dir1' in ''.join(output)) > > assert_fs_integrity(fs_type, fs_img) > >+ > >+ def test_fs_ext10(self, u_boot_console, fs_obj_ext): > >+ """ > >+ 'Test Case 10 - create/delete as many directories under root directory > >+ as amount of directory entries goes beyond one cluster size)' > >+ """ > >+ fs_type,fs_img,md5val = fs_obj_ext > >+ with u_boot_console.log.section('Test Case 10 - create/delete (many)'): > >+ # Test Case 10a - Create many files > >+ # Please note that the size of directory entry is 32 bytes. > >+ # So one typical cluster may holds 64 (2048/32) entries. > >+ output = u_boot_console.run_command( > >+ 'host bind 0 %s' % fs_img) > >+ > >+ for i in range(0, 66): > >+ output = u_boot_console.run_command( > >+ '%swrite host 0:0 %x /FILE0123456789_%02x 100' > >+ % (fs_type, ADDR, i)) > >+ output = u_boot_console.run_command('%sls host 0:0 /' % fs_type) > >+ assert('FILE0123456789_00' in output) > >+ assert('FILE0123456789_41' in output) > >+ > >+ # Test Case 10b - Delete many files > >+ for i in range(0, 66): > >+ output = u_boot_console.run_command( > >+ '%srm host 0:0 /FILE0123456789_%02x' > >+ % (fs_type, i)) > >+ output = u_boot_console.run_command('%sls host 0:0 /' % fs_type) > >+ assert(not 'FILE0123456789_00' in output) > >+ assert(not 'FILE0123456789_41' in output) > >+ > >+ # Test Case 10c - Create many files again > >+ # Please note no.64 and 65 are intentionally re-created > >+ for i in range(64, 128): > >+ output = u_boot_console.run_command( > >+ '%swrite host 0:0 %x /FILE0123456789_%02x 100' > >+ % (fs_type, ADDR, i)) > >+ output = u_boot_console.run_command('%sls host 0:0 /' % fs_type) > >+ assert('FILE0123456789_40' in output) > >+ assert('FILE0123456789_79' in output) > >+ > >+ assert_fs_integrity(fs_type, fs_img) > >+ > >+ def test_fs_ext11(self, u_boot_console, fs_obj_ext): > >+ """ > >+ 'Test Case 11 - create/delete as many directories under non-root > >+ directory as amount of directory entries goes beyond one cluster size)' > >+ """ > >+ fs_type,fs_img,md5val = fs_obj_ext > >+ with u_boot_console.log.section('Test Case 10 - create/delete (many)'): > >+ # Test Case 11a - Create many files > >+ # Please note that the size of directory entry is 32 bytes. > >+ # So one typical cluster may holds 64 (2048/32) entries. > >+ output = u_boot_console.run_command( > >+ 'host bind 0 %s' % fs_img) > >+ > >+ for i in range(0, 66): > >+ output = u_boot_console.run_command( > >+ '%swrite host 0:0 %x /dir1/FILE0123456789_%02x 100' > >+ % (fs_type, ADDR, i)) > >+ output = u_boot_console.run_command('%sls host 0:0 /dir1' % fs_type) > >+ assert('FILE0123456789_00' in output) > >+ assert('FILE0123456789_41' in output) > >+ > >+ # Test Case 11b - Delete many files > >+ for i in range(0, 66): > >+ output = u_boot_console.run_command( > >+ '%srm host 0:0 /dir1/FILE0123456789_%02x' > >+ % (fs_type, i)) > >+ output = u_boot_console.run_command('%sls host 0:0 /dir1' % fs_type) > >+ assert(not 'FILE0123456789_00' in output) > >+ assert(not 'FILE0123456789_41' in output) > >+ > >+ # Test Case 11c - Create many files again > >+ # Please note no.64 and 65 are intentionally re-created > >+ for i in range(64, 128): > >+ output = u_boot_console.run_command( > >+ '%swrite host 0:0 %x /dir1/FILE0123456789_%02x 100' > >+ % (fs_type, ADDR, i)) > >+ output = u_boot_console.run_command('%sls host 0:0 /dir1' % fs_type) > >+ assert('FILE0123456789_40' in output) > >+ assert('FILE0123456789_79' in output) > >+ > >+ assert_fs_integrity(fs_type, fs_img) > > >
On Wed, May 15, 2019 at 03:05:16PM +0900, AKASHI Takahiro wrote: > On Tue, May 14, 2019 at 08:09:53PM +0200, Heinrich Schuchardt wrote: > > On 5/13/19 7:49 AM, AKASHI Takahiro wrote: > > >Two test cases are added under test_fs_ext: > > > test case 10: for root directory > > > test case 11: for non-root directory > > > > When running `make tests` all of these tests seem to be skipped: > > > > test/py/tests/test_fs/test_basic.py > > sssssssssssssssssssssssssssssssssssssss > > [ 0%] > > test/py/tests/test_fs/test_ext.py ssssssssssssssssssssss > > > > [ 0%] > > test/py/tests/test_fs/test_mkdir.py ssssssssssss > > > > [ 0%] > > test/py/tests/test_fs/test_symlink.py ssss > > > > [ 0%] > > test/py/tests/test_fs/test_unlink.py ssssssssssssss > > > > How can they be executed? > > Install guestmount and set it up correctly. Is that documented somewhere in U-Boot? Are we doing that for travis? Thanks!
diff --git a/test/py/tests/test_fs/test_ext.py b/test/py/tests/test_fs/test_ext.py index 2c47738b8df2..361f440dd6d4 100644 --- a/test/py/tests/test_fs/test_ext.py +++ b/test/py/tests/test_fs/test_ext.py @@ -233,3 +233,87 @@ class TestFsExt(object): % (fs_type, ADDR, MIN_FILE)]) assert('Unable to write "/dir1' in ''.join(output)) assert_fs_integrity(fs_type, fs_img) + + def test_fs_ext10(self, u_boot_console, fs_obj_ext): + """ + 'Test Case 10 - create/delete as many directories under root directory + as amount of directory entries goes beyond one cluster size)' + """ + fs_type,fs_img,md5val = fs_obj_ext + with u_boot_console.log.section('Test Case 10 - create/delete (many)'): + # Test Case 10a - Create many files + # Please note that the size of directory entry is 32 bytes. + # So one typical cluster may holds 64 (2048/32) entries. + output = u_boot_console.run_command( + 'host bind 0 %s' % fs_img) + + for i in range(0, 66): + output = u_boot_console.run_command( + '%swrite host 0:0 %x /FILE0123456789_%02x 100' + % (fs_type, ADDR, i)) + output = u_boot_console.run_command('%sls host 0:0 /' % fs_type) + assert('FILE0123456789_00' in output) + assert('FILE0123456789_41' in output) + + # Test Case 10b - Delete many files + for i in range(0, 66): + output = u_boot_console.run_command( + '%srm host 0:0 /FILE0123456789_%02x' + % (fs_type, i)) + output = u_boot_console.run_command('%sls host 0:0 /' % fs_type) + assert(not 'FILE0123456789_00' in output) + assert(not 'FILE0123456789_41' in output) + + # Test Case 10c - Create many files again + # Please note no.64 and 65 are intentionally re-created + for i in range(64, 128): + output = u_boot_console.run_command( + '%swrite host 0:0 %x /FILE0123456789_%02x 100' + % (fs_type, ADDR, i)) + output = u_boot_console.run_command('%sls host 0:0 /' % fs_type) + assert('FILE0123456789_40' in output) + assert('FILE0123456789_79' in output) + + assert_fs_integrity(fs_type, fs_img) + + def test_fs_ext11(self, u_boot_console, fs_obj_ext): + """ + 'Test Case 11 - create/delete as many directories under non-root + directory as amount of directory entries goes beyond one cluster size)' + """ + fs_type,fs_img,md5val = fs_obj_ext + with u_boot_console.log.section('Test Case 10 - create/delete (many)'): + # Test Case 11a - Create many files + # Please note that the size of directory entry is 32 bytes. + # So one typical cluster may holds 64 (2048/32) entries. + output = u_boot_console.run_command( + 'host bind 0 %s' % fs_img) + + for i in range(0, 66): + output = u_boot_console.run_command( + '%swrite host 0:0 %x /dir1/FILE0123456789_%02x 100' + % (fs_type, ADDR, i)) + output = u_boot_console.run_command('%sls host 0:0 /dir1' % fs_type) + assert('FILE0123456789_00' in output) + assert('FILE0123456789_41' in output) + + # Test Case 11b - Delete many files + for i in range(0, 66): + output = u_boot_console.run_command( + '%srm host 0:0 /dir1/FILE0123456789_%02x' + % (fs_type, i)) + output = u_boot_console.run_command('%sls host 0:0 /dir1' % fs_type) + assert(not 'FILE0123456789_00' in output) + assert(not 'FILE0123456789_41' in output) + + # Test Case 11c - Create many files again + # Please note no.64 and 65 are intentionally re-created + for i in range(64, 128): + output = u_boot_console.run_command( + '%swrite host 0:0 %x /dir1/FILE0123456789_%02x 100' + % (fs_type, ADDR, i)) + output = u_boot_console.run_command('%sls host 0:0 /dir1' % fs_type) + assert('FILE0123456789_40' in output) + assert('FILE0123456789_79' in output) + + assert_fs_integrity(fs_type, fs_img)
Two test cases are added under test_fs_ext: test case 10: for root directory test case 11: for non-root directory Those will verify a behavior fixed by the commits related to root directory ("fs: fat: allocate a new cluster for root directory of fat32" and "fs: fat: flush a directory cluster properly"). Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org> --- test/py/tests/test_fs/test_ext.py | 84 +++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+)