summaryrefslogtreecommitdiff
path: root/src/test/test-set.c
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2020-04-29 08:50:37 +0200
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2020-05-06 16:55:07 +0200
commitde747a0008876ea06c9bc73fff0f3d6593a9c399 (patch)
tree1f5970e87feb62262308c9a42d1da86f106cc444 /src/test/test-set.c
parentbe32732168e07b7d52ec77fa67cf93a80a9a8293 (diff)
downloadsystemd-de747a0008876ea06c9bc73fff0f3d6593a9c399.tar.gz
test-set: make test-set not link to libshared and test test_set_put_strdup*()
The sets are such basic functionality that it is convenient to be able to build test-set without all the machinery in shared, and to test it without the mempool to validate memory accesses easier.
Diffstat (limited to 'src/test/test-set.c')
-rw-r--r--src/test/test-set.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/test/test-set.c b/src/test/test-set.c
index b4e7a52fd9..9c93685dbc 100644
--- a/src/test/test-set.c
+++ b/src/test/test-set.c
@@ -3,6 +3,8 @@
#include "set.h"
#include "strv.h"
+const bool mempool_use_allowed = VALGRIND;
+
static void test_set_steal_first(void) {
_cleanup_set_free_ Set *m = NULL;
int seen[3] = {};
@@ -86,11 +88,32 @@ static void test_set_put(void) {
assert_se(strv_length(t) == 3);
}
+static void test_set_put_strdup(void) {
+ _cleanup_set_free_ Set *m = NULL;
+
+ assert_se(set_put_strdup(&m, "aaa") == 1);
+ assert_se(set_put_strdup(&m, "aaa") == 0);
+ assert_se(set_put_strdup(&m, "bbb") == 1);
+ assert_se(set_put_strdup(&m, "bbb") == 0);
+ assert_se(set_put_strdup(&m, "aaa") == 0);
+ assert_se(set_size(m) == 2);
+}
+
+static void test_set_put_strdupv(void) {
+ _cleanup_set_free_ Set *m = NULL;
+
+ assert_se(set_put_strdupv(&m, STRV_MAKE("aaa", "aaa", "bbb", "bbb", "aaa")) == 2);
+ assert_se(set_put_strdupv(&m, STRV_MAKE("aaa", "aaa", "bbb", "bbb", "ccc")) == 1);
+ assert_se(set_size(m) == 3);
+}
+
int main(int argc, const char *argv[]) {
test_set_steal_first();
test_set_free_with_destructor();
test_set_free_with_hash_ops();
test_set_put();
+ test_set_put_strdup();
+ test_set_put_strdupv();
return 0;
}