summaryrefslogtreecommitdiff
path: root/tests/fs-tests/integrity/integck.c
AgeCommit message (Collapse)Author
2011-04-22fs-tests: integck: make operate_on_entry handle all errorsArtem Bityutskiy
Make 'operate_on_entry()' handle handle errors from all functions it calls and return the error code to the caller. Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
2011-04-22fs-tests: integck: teach file_unlink_file return an errorArtem Bityutskiy
Teach 'file_unlink_file()' return an error to the caller if the file cannot be unlinked. Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
2011-04-22fs-tests: integck: teach dir_remove return error and fix a memory leakArtem Bityutskiy
Teach 'dir_remove()' to return an error to the caller if it fails to remove the directory. Also, there was a memory leak - the 'path' string was not freed - fix it as well. Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
2011-04-22fs-tests: integck: teach symlink_remove return error on removal failureArtem Bityutskiy
When 'symlink_remove()' fails to unling a symlink - return an error to the calling function. Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
2011-04-22fs-tests: integck: make rename_entry return error on failureArtem Bityutskiy
Make 'rename_entry()' return an error to the caller when it fails to rename a directory entry. Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
2011-04-22fs-tests: integck: make operate_on_dir propagate errors upArtem Bityutskiy
Make 'operate_on_dir()' functions propogate errors up if any of the functions it calls failed. This patch also makes 'operate_on_entry()' return an error code, but without actual implementation. Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
2011-04-22fs-tests: integck: teach link_new to return error on creation failureArtem Bityutskiy
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
2011-04-22fs-tests: integck: teach symlink_new to return error on creation failureArtem Bityutskiy
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
2011-04-22fs-tests: integck: teach dir_new return error on creation failureArtem Bityutskiy
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
2011-04-22fs-tests: integck: make file_new return error on create failureArtem Bityutskiy
Teach 'file_new()' to return -1 if it fails to create a file. Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
2011-04-22fs-tests: integck: fix placeholders when printingArtem Bityutskiy
There is a lot of code where %u is used for printing off_t variables, which may be actually 64-bit wide. Fix this by using %llu. Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
2011-04-22fs-tests: integck: use unsigned int everywhereArtem Bityutskiy
The test sometimes uses "unsigned" and sometimes "unsigned int". This patch makes the code more consistent by making it use "unsigned int" everywhere. Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
2011-04-22fs-tests: integck: rename BUFFER_SIZEArtem Bityutskiy
Rename 'BUFFER_SIZE' constant into 'IO_BUFFER_SIZE' to reflect what is the buffer this constant is about. Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
2011-04-22fs-tests: integck: teach file_write_data return an errorArtem Bityutskiy
Make 'file_write_data()' return an error in case of failure. Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
2011-04-22fs-tests: integck: handle errors in file_mmap_writeArtem Bityutskiy
Teach 'file_mmap_write()' to propagate failures up to the caller. Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
2011-04-22fs-tests: integck: handle all failures in operate_on_open_fileArtem Bityutskiy
Make 'operate_on_open_file()' to handle possible 'fsync()' and 'fdatasync()' errors by returning -1 up to the caller. Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
2011-04-22fs-tests: integck: handle errors in file_deleteArtem Bityutskiy
Teach 'file_delete()' and several other functions it calls (like 'file_unlink()) to handle write errors and propagate the up to the caller. Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
2011-04-22fs-tests: integck: teach file_truncate return error codeArtem Bityutskiy
Teach 'file_truncate()' return an error code in case of failure. Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
2011-04-22fs-tests: integck: make more functions propogate error upArtem Bityutskiy
Teach 'operate_on_open_file()', 'operate_on_an_open_file()', and 'do_an_operation()' propogate errors up. Also move whole 'operate_on_file()' to a more logical place. Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
2011-04-22fs-tests: integck: handle errors when creating test dataArtem Bityutskiy
Make 'update_test_data()' and 'update_test_data()' check for errors and return error in case of failure. Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
2011-04-22fs-tests: integck: handle errors in remount_tested_fsArtem Bityutskiy
Teach 'remount_tested_fs()' return error code when it fails to mount the file-system. Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
2011-04-22fs-tests: integck: handle write failures in dir_newArtem Bityutskiy
Do not die in 'dir_new()' if it cannot create a new directory and this is not because of ENOSPC. Return NULL for all errors. Note, not all callers are ready to properly handle all errors so far. Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
2011-04-22fs-tests: integck: check deletion errors in rm_minus_rf_dirArtem Bityutskiy
Modify the 'rm_minus_rf_dir()' function to return -1 in case of any errors during deletions. Make 'integck()' handle the errors. Also introduce a 'pcv()' function to print error message if -v command line option was specified. Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
2011-04-22fs-tests: integck: introduce power cut testing argumentsArtem Bityutskiy
Introduce new command line arguments for power cut testing: -p to enable the power cut testing mode and -v to be verbose about the errors. The real functionality is not implemented so far. Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
2011-04-18fs-tests: integck: do not expect max name length to be 256Artem Bityutskiy
The 'make_name()' function assumes that the maxumum file name length is 256 bytes, which is wrong. This patch fixes this. Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
2011-04-18fs-tests: integck: implement own version of CHECKArtem Bityutskiy
Remove the final dependency on the common code - the CHECK() macro. Now we are finally independent. The reason we needed this is that we are going to improve integck to handle errors more gracefully, in order to support failure testing better. And this requires changes in the common code, but it is ancient and shared by many tests, and we do not want to touch it. So we better make integck independent and concentrate on integck only. This patch also removes Makefile dependencies. And while on it, remove the broken 'tests' target. Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
2011-04-18fs-tests: integck: do not use tests_random_noArtem Bityutskiy
Do not use the shared 'tests_random_no()' function but use our own simple implementation instead. We do not need those rather complex and difficult to understand computations. Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
2011-04-18fs-tests: integck: do not use global common variablesArtem Bityutskiy
Do not use the 'tests_file_system_mount_dir' and 'tests_file_system_type' variables because we do not depend on them any longer. Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
2011-04-18fs-tests: integck: do not use tests_get_total_spaceArtem Bityutskiy
Do not use the common tests_get_total_space but extend our own get_free_space function and make it return both free and total amount of space. Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
2011-04-18fs-tests: integck: do not use tests_remountArtem Bityutskiy
Implement our own version of 'tests_remount()' instead of depending on the common implementation. Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
2011-04-18fs-tests: integck: do not use tests_fs_is_rootfsArtem Bityutskiy
Do not use the shared 'tests_fs_is_rootfs()' function - introduce 'fsinfo.is_rootfs' flag and utilize it instead. This is another step forward the goal to make integck independent of the common code. Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
2011-04-18fs-tests: integck: prefer to check for successArtem Bityutskiy
Many of standard C libraries return 0 on success and -1 on failure. Currently integck mostly checks for failure by comparing with -1, like: CHECK(fsync(fd) != -1) /* Don't die if not failure */ but in some places the check is like CHECK(fsync(fd) == 0) /* Don't die if success */ This patch harmonizes this an makes integck to use the second style which seems to be more logical. Besides, the binary is smaller in this case: [dedekind@eru fs-tests (master)]$ size integrity/integck-old text data bss dec hex filename 44677 1200 37408 83285 14555 integrity/integck [dedekind@eru fs-tests (master)]$ size integrity/integck-new text data bss dec hex filename 44661 1200 37408 83269 14545 integrity/integck Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
2011-04-18fs-tests: integck: do not use space after castArtem Bityutskiy
Since we are kernel people lets use the style we are accustomed to - no space between the cast and the variable: (type)a, not (type) a. Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
2011-04-18fs-tests: integck: do not use tests_clear_dirArtem Bityutskiy
Do not use shared 'tests_clear_dir()' function which removes a directory tree recursively, but instead use own implementation. This is because I'm trying to make integck independend on the shared code because I need this to do further improvements. Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
2011-04-18fs-tests: integck: clean up test directory creationArtem Bityutskiy
Move the test directory name to the fsinfo structure and do few other cleanups while on it. Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
2011-04-18fs-tests: integck: do not use tests_cat_pidArtem Bityutskiy
Do not use the shared 'tests_cat_pid' function but use a simple sprintf instead. This is another step to make integck independent of the common code. Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
2011-04-18fs-tests: integck: remove trailing backslashes from mount pointArtem Bityutskiy
The test is not working if the user specified mount point with a trailing back-slash at the end. Note, this had not worked before my changes as well. Fix this. Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
2011-04-18fs-tests: integck: move log10_initial_free to fsinfoArtem Bityutskiy
Similarly to the previous patches, move the log10_initial_free variable to the fsinfo data structure. Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
2011-04-18fs-tests: integck: add own get_free_space functionArtem Bityutskiy
Do not use the shared 'tests_get_free_space' function but use own implementation instead. This is another step to make integck independent on the common infrastructure. Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
2011-04-18fs-tests: integck: move more variables to fsinfoArtem Bityutskiy
Aggregate all the information about the tested file-system in the fsinf object for better readability and cleanness. Move 'can_mmap' and 'check_nospc_files' there as well. Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
2011-04-18fs-tests: integck: move mem_page_size to fsinfoArtem Bityutskiy
The fsinfo structure will aggregate all the information about the tested file-system. Move 'mem_page_size' which we use for 'mmap()' there as well. Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
2011-04-18fs-tests: integck: make integck function return errorArtem Bityutskiy
Turn the 'void integck(void)' function into 'static int integck(void)'. We need to teach the test to gracefully handle some error cases like 'EROFS' instead of failing and exiting straight away. And the ground work for this is making all functions return errors. This is the first tiny step in this direction. Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
2011-04-18fs-tests: integck: get rid of tests_check_test_file_systemArtem Bityutskiy
Stop using the shared 'tests_check_test_file_system()' function but instead, use own independed version of this function. This is another step forward the goal to make integck independent of the common shared code. Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
2011-04-18fs-tests: integck: clean-up copy_stringArtem Bityutskiy
This is a clean-up patch which: 1. Simplifies copy_string by useng strdup instead of malloc 2. Adds an assertion which checks the input parameter agains NULL, instead of checking it. 3. Re-names it to dup_string which looks more readable to me. Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
2011-04-18fs-tests: integck: implement own parameters parsingArtem Bityutskiy
Instead of using shared command line arguments parsing routine implement own. The reason is that I want to add more parameters, which are integck-specific. Also, longer-term plan is to make integck independent of the common tests.c file. Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
2011-04-18fs-tests: integck: change tests defaultsArtem Bityutskiy
Currently integck assumes that by default the file-system cannot do shared writable mmap-ing and does not preserve accurate file size after ENOSPC errors. And then it overrides these default settings if this is UBIFS. But it seems that only JFFS2 has those limitations. So make the defaults to be the opposite and override them for JFFS2 only. Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
2011-04-18fs-tests: integck: shrink write_info even moreArtem Bityutskiy
The 'struct write_info' data strucutre records information about truncation, and has a separate integer field to specify if this is a truncation or not. But it is too wasteful because we have huge amount of these objects. But it is easy to notice that the 'random_seed' field is not used for truncation records, so we can use that as the truncation flag. This patch introduces MAX_RANDOM_SEED macro and when the 'random_seed' field is greater than that, we treat it as the truncation flag. Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
2011-04-18fs-tests: integck: abuse random_offset field nicerArtem Bityutskiy
Currently integck uses the 'random_offset' filed to store the new file length sometimes, thus abusing this field. But we can do this nicer - introduce an anonymous union and add 'new_length' filed which will be used instead of 'random_offset' to make the code look nicer. Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
2011-04-18fs-tests: integck: srink file_info structure even moreArtem Bityutskiy
The 'check_run_no' field does not have to be 64-bit, it can be 32-bit instead and we can save 4 bytes per object. Actually, it could also be 16-bit, and we could make link_count 16-bit as well, but that would need a bit more work. Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
2011-04-18fs-tests: integck: shrink file_info structure sizeArtem Bityutskiy
We do not have to store boolean flags in 'int' variables which consume 4 bytes each, we can store those in bit-fields instead. Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>