[PATCH] New fstest to check rename POSIX conformance
Andre Marques
andre.lousa.marques at gmail.com
Wed Feb 19 10:27:12 UTC 2014
Sorry for the delay.
I'm almost ready to send the patch with the test, but there are some
questions.
On 02/10/14 08:14, Sebastian Huber wrote:
> Hello Andre,
>
> thanks for the test case.
>
> On 2014-02-08 13:26, Andre Marques wrote:
>> Hi,
>>
>> As discussed in [1], I created a new fstest to check the rename()
>> implementation against the POSIX specification [2].
>>
>> What the attached patch does not test:
>>
>> - Testing the existance of a link visible to other processes during
>> the rename
>> process (ensuring that there is always a reference to the file). Not
>> sure about
>> the best way to test this.
>
> The file system instance is locked during the rename operation, so
> other threads cannot interfere here.
>
Should I test the lock then?
> What happens if you rename a file with an open file descriptor should
> be tested.
That is already covered on the test.
>
>>
>> - Testing that after all processes close their references to a file
>> after it
>> was removed by rename() the file contents are removed (or marked as
>> free space,
>> I guess). I only found platform dependent ways of dealing with disk
>> block's.
>
> Maybe you can use the statvfs() function for this.
The statvfs() function gives "not implemented" on the IMFS filesystem,
so I changed the used filesystem to MOUNTED RFS.
>
>>
>> - Testing errno values in error situations. There is already a fstest
>> named
>> fserror which purpose seems to be checking errno values for a bunch of
>> functions (rename included, but with some errno values missing). Not
>> sure if I
>> should put them in this test or add to fserror.
>
> I would move all rename related tests to this new test program.
About the errno value testing, I'm currently missing EIO, ENOSPC, EROFS
and EXDEV.
EROFS and EXDEV require mounting a second filesystem. How can I do this
in RTEMS? Can it be done at runtime? I've been looking at the fileio
sample, which uses the fsmount() function, but I need a disk to mount
with it.
For ENOSPC I'm thinking in mounting a small disk and testing that way,
but for EIO I don't know how to simulate a physical error. How can I
generate an I/O error?
>
>>
>>
>> This test uses the MOUNTED IMFS filesystem, for no particular reason,
>> so if
>> that's an issue please let me know.
>>
>> [1] -
>> http://www.rtems.org/pipermail/rtems-users/2014-January/012378.html
>>
>> [2] -
>> http://pubs.opengroup.org/onlinepubs/9699919799/functions/rename.html
>>
>> --André Marques
[...]
More information about the devel
mailing list