[CRIU] [PATCH]v2 zdtm: test semi-closed unix stream connection for data loss

Ruslan Kuprieiev kupruser at gmail.com
Mon Aug 26 18:03:14 EDT 2013


On 08/27/2013 01:07 AM, Andrew Vagin wrote:
> On Mon, Aug 26, 2013 at 09:27:27PM +0400, Ruslan Kuprieiev wrote:
>> Hi!
>>
>> Added test for data loss in semi-closed stream unix connection.
> Why do you decide to add a new test? In a previous attempt you tryed to
> expand the socket02 test and I think it was the right way.
> You replaced one check on another and I suggested to add one more check
> and do nothing with the previous one.
I can't do nothing with previous one check if (ret != 0 || errno !=0), 
because i send data, so ret != 0 and it will be false fail.
Did you mean, i need to add check like this if( ret != 0 || errno != 0 
|| aux != data)?
>> Signed-off-by: Ruslan Kuprieiev <kupruser at gmail.com>
>>
>> diff --git a/test/zdtm/live/static/Makefile b/test/zdtm/live/static/Makefile
>> index f76e61b..68c147e 100644
>> --- a/test/zdtm/live/static/Makefile
>> +++ b/test/zdtm/live/static/Makefile
>> @@ -48,6 +48,7 @@ TST_NOFILE	=				\
>>   		pstree				\
>>   		sockets01			\
>>   		sockets02			\
>> +		sockets03			\
>>   		sockets_spair			\
>>   		socket_queues			\
>>   		socket_queues02			\
>> diff --git a/test/zdtm/live/static/sockets03.c b/test/zdtm/live/static/sockets03.c
>> new file mode 100644
>> index 0000000..82d67db
>> --- /dev/null
>> +++ b/test/zdtm/live/static/sockets03.c
>> @@ -0,0 +1,52 @@
>> +#define _GNU_SOURCE
>> +
>> +#include <stdio.h>
>> +#include <stdlib.h>
>> +#include <ctype.h>
>> +#include <errno.h>
>> +#include <unistd.h>
>> +#include <sys/types.h>
>> +#include <sys/socket.h>
>> +#include <sys/wait.h>
>> +#include <sys/un.h>
>> +#include <sys/stat.h>
>> +#include <limits.h>
>> +#include <fcntl.h>
>> +#include <time.h>
>> +
>> +#include "zdtmtst.h"
>> +
>> +const char *test_doc	= "Test semi-closed unix stream connection "
>> +			  "for data loss\n";
>> +const char *test_author	= "Ruslan Kuprieiev <kupruser at gmail.com>\n";
>> +
>> +int main(int argc, char *argv[])
>> +{
>> +	int ssk_pair[2], ret;
>> +	char wdata, rdata;
>> +
>> +	srandom(time(NULL));
>> +	wdata = (char)random();
>> +
>> +	test_init(argc, argv);
>> +
>> +	if (socketpair(AF_UNIX, SOCK_STREAM, 0, ssk_pair) == -1) {
>> +		fail("socketpair\n");
>> +		exit(1);
>> +	}
>> +
>> +	write(ssk_pair[1], &wdata, sizeof(wdata));
>> +	close(ssk_pair[1]);
>> +
>> +	test_daemon();
>> +	test_waitsig();
>> +
>> +	ret = read(ssk_pair[0], &rdata, sizeof(rdata));
>> +	if (rdata != wdata || ret != sizeof(rdata)) {
>> +		fail("Data loss (write %d/read %d)", wdata, rdata);
>> +		return 0;
>> +	}
>> +
>> +	pass();
>> +	return 0;
>> +}
>> _______________________________________________
>> CRIU mailing list
>> CRIU at openvz.org
>> https://lists.openvz.org/mailman/listinfo/criu



More information about the CRIU mailing list