[LTP] [PATCH v3 3/3] syscalls/pipe2_03: Add new test for pipe2 O_DIRECT flag

Yang Xu xuyang2018.jy@cn.fujitsu.com
Wed Apr 22 11:31:16 CEST 2020


Hi Li


> Hi Li
> 
> 
>> Hi Li
>>
>>> Hi Xu,
>>>
>>> Yang Xu <xuyang2018.jy@cn.fujitsu.com 
>>> <mailto:xuyang2018.jy@cn.fujitsu.com>> wrote:
>>>
>>>     ...
>>>      >
>>>      > # ./pipe2_03
>>>      > tst_test.c:1246: INFO: Timeout per run is 0h 05m 00s
>>>      > pipe2_03.c:48: PASS: Each write(2) uses a separate packet
>>>      > pipe2_03.c:61: PASS: Each read(2) reads a separate packet
>>>      > pipe2_03.c:81: PASS: write(higner than PIPE_BUF) split into
>>>     multiple packet
>>>      > pipe2_03.c:108: FAIL: the excess bytes in the packet is 
>>> discarded by
>>>      > read, expect 1 got 1%A
>>>     Even I use one fork and exit(0), I don't meet this problem. Or, I 
>>> miss
>>>     something?
>>>
>>>
>>> I think I got the point.
>>>
>>> In your test code for pipe2(), you didn't use pipe in the correct 
>>> way. Even that we define the fds[2] as a global variable, there still 
>>> have a new copy for fds[2] in the child process, we should close one 
>>> of the pipes in child and parent to make the connection is built 
>>> correspondingly, then that will work normally for us.
>>>
>>> I suggest redesigning some of the test structs. What do you think?
>> Yes.
>>>
>>> Fyi: 
>>> https://github.com/linux-test-project/ltp/blob/master/testcases/kernel/syscalls/pipe/pipe02.c 
> 
> BTW, pipe02.c can use SAFE_PIPE macro and remove  UCLINUX ifdef.
>>>
>> In principle, we should use the following format
>> step1      pipe(fds);
>> step2      SAFE_FORK();
>>        child process
>> step3         close one fd and do something
>>        parent process
>> step4         close another fd and do something
>>
>> Also, we should not do write opeartion in step 1~2, otherwise child 
>> process will inherit data.
modify this case ,url as below:
https://github.com/xuyang0410/ltp/commit/6e701803b39123b5abf74bd292c36fee73b54065

How about it?

ps: I meet a problem that string without the trailing string zero 
terminator, so I want to use memcmp or strncmp.
>>>
>>> -- 
>>> Regards,
>>> Li Wang
>>
>>
>>




More information about the ltp mailing list