mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-10-25 01:58:13 +01:00 
			
		
		
		
	We need to make sure that file writes,file creation, etc. are properly performed and do not corrupt the filesystem. To help with this, introduce the assert_fs_integrity() function that executes the appropriate fsck tool. It should be called at the end of any test that modify the content/organization of the filesystem. Currently only supports FATs and EXT4. Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com> Reviewed-by: Tom Rini <trini@konsulko.com>
		
			
				
	
	
		
			122 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			122 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # SPDX-License-Identifier:      GPL-2.0+
 | |
| # Copyright (c) 2018, Linaro Limited
 | |
| # Author: Takahiro Akashi <takahiro.akashi@linaro.org>
 | |
| #
 | |
| # U-Boot File System:mkdir Test
 | |
| 
 | |
| """
 | |
| This test verifies mkdir operation on file system.
 | |
| """
 | |
| 
 | |
| import pytest
 | |
| from fstest_helpers import assert_fs_integrity
 | |
| 
 | |
| @pytest.mark.boardspec('sandbox')
 | |
| @pytest.mark.slow
 | |
| class TestMkdir(object):
 | |
|     def test_mkdir1(self, u_boot_console, fs_obj_mkdir):
 | |
|         """
 | |
|         Test Case 1 - create a directory under a root
 | |
|         """
 | |
|         fs_type,fs_img = fs_obj_mkdir
 | |
|         with u_boot_console.log.section('Test Case 1 - mkdir'):
 | |
|             output = u_boot_console.run_command_list([
 | |
|                 'host bind 0 %s' % fs_img,
 | |
|                 '%smkdir host 0:0 dir1' % fs_type,
 | |
|                 '%sls host 0:0 /' % fs_type])
 | |
|             assert('dir1/' in ''.join(output))
 | |
| 
 | |
|             output = u_boot_console.run_command(
 | |
|                 '%sls host 0:0 dir1' % fs_type)
 | |
|             assert('./'   in output)
 | |
|             assert('../'  in output)
 | |
|             assert_fs_integrity(fs_type, fs_img)
 | |
| 
 | |
| 
 | |
|     def test_mkdir2(self, u_boot_console, fs_obj_mkdir):
 | |
|         """
 | |
|         Test Case 2 - create a directory under a sub-directory
 | |
|         """
 | |
|         fs_type,fs_img = fs_obj_mkdir
 | |
|         with u_boot_console.log.section('Test Case 2 - mkdir (sub-sub directory)'):
 | |
|             output = u_boot_console.run_command_list([
 | |
|                 'host bind 0 %s' % fs_img,
 | |
|                 '%smkdir host 0:0 dir1/dir2' % fs_type,
 | |
|                 '%sls host 0:0 dir1' % fs_type])
 | |
|             assert('dir2/' in ''.join(output))
 | |
| 
 | |
|             output = u_boot_console.run_command(
 | |
|                 '%sls host 0:0 dir1/dir2' % fs_type)
 | |
|             assert('./'   in output)
 | |
|             assert('../'  in output)
 | |
|             assert_fs_integrity(fs_type, fs_img)
 | |
| 
 | |
|     def test_mkdir3(self, u_boot_console, fs_obj_mkdir):
 | |
|         """
 | |
|         Test Case 3 - trying to create a directory with a non-existing
 | |
|         path should fail
 | |
|         """
 | |
|         fs_type,fs_img = fs_obj_mkdir
 | |
|         with u_boot_console.log.section('Test Case 3 - mkdir (non-existing path)'):
 | |
|             output = u_boot_console.run_command_list([
 | |
|                 'host bind 0 %s' % fs_img,
 | |
|                 '%smkdir host 0:0 none/dir3' % fs_type])
 | |
|             assert('Unable to create a directory' in ''.join(output))
 | |
|             assert_fs_integrity(fs_type, fs_img)
 | |
| 
 | |
|     def test_mkdir4(self, u_boot_console, fs_obj_mkdir):
 | |
|         """
 | |
|         Test Case 4 - trying to create "." should fail
 | |
|         """
 | |
|         fs_type,fs_img = fs_obj_mkdir
 | |
|         with u_boot_console.log.section('Test Case 4 - mkdir (".")'):
 | |
|             output = u_boot_console.run_command_list([
 | |
|                 'host bind 0 %s' % fs_img,
 | |
|                 '%smkdir host 0:0 .' % fs_type])
 | |
|             assert('Unable to create a directory' in ''.join(output))
 | |
|             assert_fs_integrity(fs_type, fs_img)
 | |
| 
 | |
|     def test_mkdir5(self, u_boot_console, fs_obj_mkdir):
 | |
|         """
 | |
|         Test Case 5 - trying to create ".." should fail
 | |
|         """
 | |
|         fs_type,fs_img = fs_obj_mkdir
 | |
|         with u_boot_console.log.section('Test Case 5 - mkdir ("..")'):
 | |
|             output = u_boot_console.run_command_list([
 | |
|                 'host bind 0 %s' % fs_img,
 | |
|                 '%smkdir host 0:0 ..' % fs_type])
 | |
|             assert('Unable to create a directory' in ''.join(output))
 | |
|             assert_fs_integrity(fs_type, fs_img)
 | |
| 
 | |
|     def test_mkdir6(self, u_boot_console, fs_obj_mkdir):
 | |
|         """
 | |
|         'Test Case 6 - create as many directories as amount of directory
 | |
|         entries goes beyond a cluster size)'
 | |
|         """
 | |
|         fs_type,fs_img = fs_obj_mkdir
 | |
|         with u_boot_console.log.section('Test Case 6 - mkdir (create many)'):
 | |
|             output = u_boot_console.run_command_list([
 | |
|                 'host bind 0 %s' % fs_img,
 | |
|                 '%smkdir host 0:0 dir6' % fs_type,
 | |
|                 '%sls host 0:0 /' % fs_type])
 | |
|             assert('dir6/' in ''.join(output))
 | |
| 
 | |
|             for i in range(0, 20):
 | |
|                 output = u_boot_console.run_command(
 | |
|                     '%smkdir host 0:0 dir6/0123456789abcdef%02x'
 | |
|                     % (fs_type, i))
 | |
|             output = u_boot_console.run_command('%sls host 0:0 dir6' % fs_type)
 | |
|             assert('0123456789abcdef00/'  in output)
 | |
|             assert('0123456789abcdef13/'  in output)
 | |
| 
 | |
|             output = u_boot_console.run_command(
 | |
|                 '%sls host 0:0 dir6/0123456789abcdef13/.' % fs_type)
 | |
|             assert('./'   in output)
 | |
|             assert('../'  in output)
 | |
| 
 | |
|             output = u_boot_console.run_command(
 | |
|                 '%sls host 0:0 dir6/0123456789abcdef13/..' % fs_type)
 | |
|             assert('0123456789abcdef00/'  in output)
 | |
|             assert('0123456789abcdef13/'  in output)
 | |
|             assert_fs_integrity(fs_type, fs_img)
 |