git://git.onelab.eu
/
sliver-openvswitch.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ofproto: Fix potential leak during flow mods.
[sliver-openvswitch.git]
/
tests
/
test-hindex.c
diff --git
a/tests/test-hindex.c
b/tests/test-hindex.c
index
b5fe9f0
..
4c4fdf2
100644
(file)
--- a/
tests/test-hindex.c
+++ b/
tests/test-hindex.c
@@
-1,5
+1,5
@@
/*
/*
- * Copyright (c) 2008, 2009, 2010, 2013 Nicira, Inc.
+ * Copyright (c) 2008, 2009, 2010, 2013
, 2014
Nicira, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@
-21,7
+21,9
@@
#include "hindex.h"
#include <string.h>
#include "hash.h"
#include "hindex.h"
#include <string.h>
#include "hash.h"
+#include "random.h"
#include "util.h"
#include "util.h"
+#include "ovstest.h"
#undef NDEBUG
#include <assert.h>
#undef NDEBUG
#include <assert.h>
@@
-108,7
+110,7
@@
static void
shuffle(int *p, size_t n)
{
for (; n > 1; n--, p++) {
shuffle(int *p, size_t n)
{
for (; n > 1; n--, p++) {
- int *q = &p[rand
() % n
];
+ int *q = &p[rand
om_range(n)
];
int tmp = *p;
*p = *q;
*q = tmp;
int tmp = *p;
*p = *q;
*q = tmp;
@@
-136,7
+138,7
@@
print_hindex(const char *name, struct hindex *hindex)
printf("%s:", name);
HINDEX_FOR_EACH (e, node, hindex) {
printf("%s:", name);
HINDEX_FOR_EACH (e, node, hindex) {
- printf(" %d(%
zu
)", e->value, e->node.hash & hindex->mask);
+ printf(" %d(%
"PRIuSIZE"
)", e->value, e->node.hash & hindex->mask);
}
printf("\n");
}
}
printf("\n");
}
@@
-177,6
+179,12
@@
mod2_hash(int value)
return value % 2;
}
return value % 2;
}
+static size_t
+multipart_hash(int value)
+{
+ return (mod4_hash(value) << 16) | (constant_hash(value) & 0xFFFF);
+}
+
/* Tests basic hindex insertion and deletion. */
static void
test_hindex_insert_delete(hash_func *hash)
/* Tests basic hindex insertion and deletion. */
static void
test_hindex_insert_delete(hash_func *hash)
@@
-297,6
+305,7
@@
run_test(void (*function)(hash_func *))
mod4_hash,
mod3_hash,
mod2_hash,
mod4_hash,
mod3_hash,
mod2_hash,
+ multipart_hash,
};
size_t i;
};
size_t i;
@@
-307,13
+316,13
@@
run_test(void (*function)(hash_func *))
}
}
}
}
-int
-
main(void
)
+static void
+
test_hindex_main(int argc OVS_UNUSED, char *argv[] OVS_UNUSED
)
{
run_test(test_hindex_insert_delete);
run_test(test_hindex_for_each_safe);
run_test(test_hindex_reserve_shrink);
printf("\n");
{
run_test(test_hindex_insert_delete);
run_test(test_hindex_for_each_safe);
run_test(test_hindex_reserve_shrink);
printf("\n");
- return 0;
}
}
+OVSTEST_REGISTER("test-hindex", test_hindex_main);