On 03/09/2016 09:36 AM, Wen Congyang wrote:
On 03/08/2016 05:54 PM, Peter Maydell wrote:
On 8 March 2016 at 16:06, Zhang Chen <zhangchen.f...@cn.fujitsu.com> wrote:
I found the reason for this problem is that
unix_connect() have not connect to sock_path before iov_send().
It need time to establish connection. so can we fix it with usleep()
like this:
recv_sock = unix_connect(sock_path, NULL);
g_assert_cmpint(recv_sock, !=, -1);
+ usleep(1000);
ret = iov_send(send_sock[0], iov, 2, 0, sizeof(size) +
sizeof(send_buf));
g_assert_cmpint(ret, ==, sizeof(send_buf) + sizeof(size));
close(send_sock[0]);
ret = qemu_recv(recv_sock, &len, sizeof(len), 0);
I would prefer it if we could find a way to fix this race
reliably rather than just inserting a delay and hoping it
is sufficient. Otherwise the test is likely to be unreliable
if run on a heavily loaded or slow machine.
Yes, but there is no way to know when tcp_chr_accept() is called. Add a event
to notify it?
Thanks
Wen Congyang
Hi, Jason, PMM
As Congyang said that this is a bug of testcase instead of filter-mirror.
Maybe we should re-wrok the testcase, for example
- using -chardev pipe instead of -chardev socket, because we are
intend to test the packet mirror fuction instead of -chardev socket
How about that ?
thanks
-- PMM