On 06/10/2014 10:24 PM, [email protected] wrote:
> Hi!
>> It is not expected to use stdout as the file description to test the
>> system call fstatfs().Using ltp temporary file instead.
>>
>> Signed-off-by: Shuang Qiu <[email protected]>
>> ---
>>   testcases/kernel/syscalls/fstatfs/fstatfs02.c |   10 ++++++++++
>>   1 file changed, 10 insertions(+)
>>
>> diff --git a/testcases/kernel/syscalls/fstatfs/fstatfs02.c 
>> b/testcases/kernel/syscalls/fstatfs/fstatfs02.c
>> index f851c97..9e00a67 100644
>> --- a/testcases/kernel/syscalls/fstatfs/fstatfs02.c
>> +++ b/testcases/kernel/syscalls/fstatfs/fstatfs02.c
>> @@ -27,6 +27,7 @@
>>   #include <errno.h>
>>   #include "test.h"
>>   #include "usctest.h"
>> +#include "safe_macros.h"
>>   
>>   static void setup(void);
>>   static void cleanup(void);
>> @@ -48,6 +49,7 @@ static struct test_case_t {
>>   #ifndef UCLINUX
>>          /* Skip since uClinux does not implement memory protection */
>>          /* EFAULT - address for buf is invalid */
>> +        /* Using the init "1" as fd is not actually expected,will assign a 
>> tmp file later */
>>      {
>>      1, (void *)-1, EFAULT}
>>   #endif
>> @@ -107,11 +109,19 @@ static void setup(void)
>>      TEST_PAUSE;
>>   
>>      tst_tmpdir();
>> +#ifndef UCLINUX
>> +    TC[1].fd = SAFE_OPEN(cleanup, "tempfile", O_RDWR | O_CREAT, 0700);
>> +#endif
>>   }
>>   
>>   static void cleanup(void)
>>   {
>>      TEST_CLEANUP;
>>   
>> +#ifndef UCLINUX
>> +    if (TC[1].fd > 0 && close(TC[1].fd))
>               ^
>            This does not work as expected because the fd is
>            initialized to 1. If we get here after the open() has
>            failed it will close stdout at this point.
>
>            You should change the initial value in the test strucure to
>            -1 (you don't have to add the comment in this case too).
oh,yes.
I did not notice such trap,will update.
Thanks.
>
>> +            tst_resm(TWARN | TERRNO, "Failed to close fd");
>> +#endif
>> +
>>      tst_rmdir();
>>   }
> The rest is Ok.
>


------------------------------------------------------------------------------
HPCC Systems Open Source Big Data Platform from LexisNexis Risk Solutions
Find What Matters Most in Your Big Data with HPCC Systems
Open Source. Fast. Scalable. Simple. Ideal for Dirty Data.
Leverages Graph Analysis for Fast Processing & Easy Data Exploration
http://p.sf.net/sfu/hpccsystems
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list

Reply via email to