Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[tests] add knet_link_set_priority tests
Signed-off-by: Fabio M. Di Nitto <fdinitto@redhat.com>
- Loading branch information
Showing
2 changed files
with
155 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,150 @@ | ||
/* | ||
* Copyright (C) 2016 Red Hat, Inc. All rights reserved. | ||
* | ||
* Authors: Fabio M. Di Nitto <fabbione@kronosnet.org> | ||
* | ||
* This software licensed under GPL-2.0+, LGPL-2.0+ | ||
*/ | ||
|
||
#include "config.h" | ||
|
||
#include <errno.h> | ||
#include <stdio.h> | ||
#include <stdlib.h> | ||
#include <string.h> | ||
#include <unistd.h> | ||
|
||
#include "libknet.h" | ||
|
||
#include "internals.h" | ||
#include "link.h" | ||
#include "netutils.h" | ||
#include "test-common.h" | ||
|
||
static void test(void) | ||
{ | ||
knet_handle_t knet_h; | ||
int logfds[2]; | ||
struct sockaddr_storage src, dst; | ||
|
||
memset(&src, 0, sizeof(struct sockaddr_storage)); | ||
|
||
if (strtoaddr("127.0.0.1", "50000", (struct sockaddr *)&src, sizeof(struct sockaddr_storage)) < 0) { | ||
printf("Unable to convert src to sockaddr: %s\n", strerror(errno)); | ||
exit(FAIL); | ||
} | ||
|
||
memset(&dst, 0, sizeof(struct sockaddr_storage)); | ||
|
||
if (strtoaddr("127.0.0.1", "50001", (struct sockaddr *)&dst, sizeof(struct sockaddr_storage)) < 0) { | ||
printf("Unable to convert dst to sockaddr: %s\n", strerror(errno)); | ||
exit(FAIL); | ||
} | ||
|
||
printf("Test knet_link_set_priority incorrect knet_h\n"); | ||
|
||
if ((!knet_link_set_priority(NULL, 1, 0, 1)) || (errno != EINVAL)) { | ||
printf("knet_link_set_priority accepted invalid knet_h or returned incorrect error: %s\n", strerror(errno)); | ||
exit(FAIL); | ||
} | ||
|
||
setup_logpipes(logfds); | ||
|
||
knet_h = knet_handle_new(1, logfds[1], KNET_LOG_DEBUG); | ||
|
||
if (!knet_h) { | ||
printf("knet_handle_new failed: %s\n", strerror(errno)); | ||
flush_logs(logfds[0], stdout); | ||
close_logpipes(logfds); | ||
exit(FAIL); | ||
} | ||
|
||
printf("Test knet_link_set_priority with unconfigured host_id\n"); | ||
|
||
if ((!knet_link_set_priority(knet_h, 1, 0, 1)) || (errno != EINVAL)) { | ||
printf("knet_link_set_priority accepted invalid host_id or returned incorrect error: %s\n", strerror(errno)); | ||
knet_handle_free(knet_h); | ||
flush_logs(logfds[0], stdout); | ||
close_logpipes(logfds); | ||
exit(FAIL); | ||
} | ||
|
||
flush_logs(logfds[0], stdout); | ||
|
||
printf("Test knet_link_set_priority with incorrect linkid\n"); | ||
|
||
if (knet_host_add(knet_h, 1) < 0) { | ||
printf("Unable to add host_id 1: %s\n", strerror(errno)); | ||
knet_handle_free(knet_h); | ||
flush_logs(logfds[0], stdout); | ||
close_logpipes(logfds); | ||
exit(FAIL); | ||
} | ||
|
||
if ((!knet_link_set_priority(knet_h, 1, KNET_MAX_LINK, 2)) || (errno != EINVAL)) { | ||
printf("knet_link_set_priority accepted invalid linkid or returned incorrect error: %s\n", strerror(errno)); | ||
knet_host_remove(knet_h, 1); | ||
knet_handle_free(knet_h); | ||
flush_logs(logfds[0], stdout); | ||
close_logpipes(logfds); | ||
exit(FAIL); | ||
} | ||
|
||
flush_logs(logfds[0], stdout); | ||
|
||
printf("Test knet_link_set_priority with unconfigured link\n"); | ||
|
||
if ((!knet_link_set_priority(knet_h, 1, 0, 1)) || (errno != EINVAL)) { | ||
printf("knet_link_set_priority accepted unconfigured link or returned incorrect error: %s\n", strerror(errno)); | ||
knet_host_remove(knet_h, 1); | ||
knet_handle_free(knet_h); | ||
flush_logs(logfds[0], stdout); | ||
close_logpipes(logfds); | ||
exit(FAIL); | ||
} | ||
|
||
flush_logs(logfds[0], stdout); | ||
|
||
printf("Test knet_link_set_priority with correct values\n"); | ||
|
||
if (knet_link_set_config(knet_h, 1, 0, &src, &dst) < 0) { | ||
printf("Unable to configure link: %s\n", strerror(errno)); | ||
knet_host_remove(knet_h, 1); | ||
knet_handle_free(knet_h); | ||
flush_logs(logfds[0], stdout); | ||
close_logpipes(logfds); | ||
exit(FAIL); | ||
} | ||
|
||
if (knet_link_set_priority(knet_h, 1, 0, 3) < 0) { | ||
printf("knet_link_set_priority failed: %s\n", strerror(errno)); | ||
knet_host_remove(knet_h, 1); | ||
knet_handle_free(knet_h); | ||
flush_logs(logfds[0], stdout); | ||
close_logpipes(logfds); | ||
exit(FAIL); | ||
} | ||
|
||
if (knet_h->host_index[1]->link[0].priority != 3) { | ||
printf("knet_link_set_priority failed to set correct values\n"); | ||
knet_host_remove(knet_h, 1); | ||
knet_handle_free(knet_h); | ||
flush_logs(logfds[0], stdout); | ||
close_logpipes(logfds); | ||
exit(FAIL); | ||
} | ||
|
||
knet_host_remove(knet_h, 1); | ||
knet_handle_free(knet_h); | ||
flush_logs(logfds[0], stdout); | ||
close_logpipes(logfds); | ||
} | ||
|
||
int main(int argc, char *argv[]) | ||
{ | ||
need_root(); | ||
|
||
test(); | ||
|
||
return PASS; | ||
} |