[v6,12/13] zdtm/net/ipv6: add test for confs

Submitted by Pavel Tikhomirov on April 25, 2016, 2:56 p.m.

Details

Message ID 1461596214-20999-13-git-send-email-ptikhomirov@virtuozzo.com
State Rejected
Series "net/ipv6: c/r dev/default/all conf ops"
Headers show

Commit Message

Pavel Tikhomirov April 25, 2016, 2:56 p.m.
https://jira.sw.ru/browse/PSBM-30942
Signed-off-by: Pavel Tikhomirov <ptikhomirov@virtuozzo.com>
---
 test/zdtm/static/netns-dev.c | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)

Patch hide | download patch | download mbox

diff --git a/test/zdtm/static/netns-dev.c b/test/zdtm/static/netns-dev.c
index 7716946..456b1d0 100644
--- a/test/zdtm/static/netns-dev.c
+++ b/test/zdtm/static/netns-dev.c
@@ -6,6 +6,8 @@ 
 
 #define LO_CONF_DIR_PATH "/proc/sys/net/ipv4/conf/lo"
 #define DEF_CONF_DIR_PATH "/proc/sys/net/ipv4/conf/default"
+#define LO_CONF6_DIR_PATH "/proc/sys/net/ipv6/conf/lo"
+#define DEF_CONF6_DIR_PATH "/proc/sys/net/ipv6/conf/default"
 
 #define INT_MAX ((int)(~0U>>1))
 #define INT_MIN (-INT_MAX - 1)
@@ -181,7 +183,10 @@  struct range rand_range6[] = {
 struct test_conf {
 	int ipv4_conf[ARRAY_SIZE(devconfs4)];
 	int ipv4_conf_rand[ARRAY_SIZE(devconfs4)];
+	int ipv6_conf[ARRAY_SIZE(devconfs6)];
+	int ipv6_conf_rand[ARRAY_SIZE(devconfs6)];
 	char *dir4;
+	char *dir6;
 } lo, def;
 
 static int save_conf(FILE *fp, int *conf, int *conf_rand,
@@ -310,6 +315,33 @@  static int for_each_option_do(int (*f)(FILE *fp, int *conf, int *conf_rand,
 		fclose(fp);
 	}
 
+	for (i = 0; devconfs6[i]; i++) {
+		FILE *fp;
+		char path[PATH_MAX];
+
+		ret = snprintf(path, sizeof(path), "%s/%s", tc->dir6, devconfs6[i]);
+		if (ret < 0) {
+			pr_perror("snprintf");
+			return -1;
+		}
+
+		ret = access(path, W_OK);
+		if (ret < 0)
+			continue;
+
+		fp = fopen(path, "r+");
+		if (fp == NULL) {
+			pr_perror("fopen");
+			return -1;
+		}
+
+		ret = (*f)(fp, &tc->ipv6_conf[i], &tc->ipv6_conf_rand[i], &rand_range6[i], path);
+		if (ret < 0)
+			return -1;
+
+		fclose(fp);
+	}
+
 	return 0;
 }
 
@@ -319,6 +351,8 @@  int main(int argc, char **argv)
 
 	lo.dir4 = LO_CONF_DIR_PATH;
 	def.dir4 = DEF_CONF_DIR_PATH;
+	lo.dir6 = LO_CONF6_DIR_PATH;
+	def.dir6 = DEF_CONF6_DIR_PATH;
 
 	test_init(argc, argv);