Module: xenomai-2.6 Branch: master Commit: 4e7acf65a07f58bccc99a83903a8b6a9a6e16f69 URL: http://git.xenomai.org/?p=xenomai-2.6.git;a=commit;h=4e7acf65a07f58bccc99a83903a8b6a9a6e16f69
Author: Philippe Gerum <r...@xenomai.org> Date: Fri Jul 26 18:56:49 2013 +0200 testsuite/regression: xddp_test: use port auto-selection Let the XDDP driver pick an idle port for communication, so that we won't conflict with other message pipe users (e.g. xeno_klat). --- src/testsuite/regression/posix/xddp_test.c | 12 ++++++++---- 1 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/testsuite/regression/posix/xddp_test.c b/src/testsuite/regression/posix/xddp_test.c index 194584e..e10a09a 100644 --- a/src/testsuite/regression/posix/xddp_test.c +++ b/src/testsuite/regression/posix/xddp_test.c @@ -22,14 +22,14 @@ static pthread_t rt, nrt; static sem_t opened; - -#define XDDP_PORT 0 /* [0..CONFIG-XENO_OPT_PIPE_NRDEV - 1] */ +static int xddp_port = -1; /* First pass uses auto-selection */ static void *realtime_thread(void *arg) { unsigned long count = (unsigned long)arg; struct sockaddr_ipc saddr; struct timespec ts; + socklen_t addrlen; size_t poolsz; int ret, s; @@ -57,7 +57,7 @@ static void *realtime_thread(void *arg) */ memset(&saddr, 0, sizeof(saddr)); saddr.sipc_family = AF_RTIPC; - saddr.sipc_port = XDDP_PORT; + saddr.sipc_port = xddp_port; ret = bind(s, (struct sockaddr *)&saddr, sizeof(saddr)); if (count == 1) { if (ret < 0 && errno == EADDRINUSE) { @@ -69,6 +69,10 @@ static void *realtime_thread(void *arg) exit(EXIT_FAILURE); } fprintf(stderr, "FAILURE: bind returned %d\n", ret); + } else { + addrlen = sizeof(saddr); + check_unix(getsockname(s, (struct sockaddr *)&saddr, &addrlen)); + xddp_port = saddr.sipc_port; } if (ret < 0) { fprintf(stderr, "FAILURE bind: %m\n"); @@ -91,7 +95,7 @@ static void *regular_thread(void *arg) char buf[128], *devname; int fd; - check_unix(asprintf(&devname, "/dev/rtp%d", XDDP_PORT)); + check_unix(asprintf(&devname, "/dev/rtp%d", xddp_port)); fd = check_unix(open(devname, O_RDWR)); free(devname); _______________________________________________ Xenomai-git mailing list Xenomai-git@xenomai.org http://www.xenomai.org/mailman/listinfo/xenomai-git