From 756c09e672a08efd9e728a5cab50a641b022b84c Mon Sep 17 00:00:00 2001 From: Ronny Chevalier Date: Fri, 10 Apr 2015 16:53:17 +0200 Subject: core: set_put never returns -EEXIST When the value is already there it returns 0. Also add a test to ensure this --- src/test/test-set.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'src/test') diff --git a/src/test/test-set.c b/src/test/test-set.c index ac292ed680..0ee5ddcc9f 100644 --- a/src/test/test-set.c +++ b/src/test/test-set.c @@ -39,8 +39,25 @@ static void test_set_steal_first(void) { assert_se(set_isempty(m)); } +static void test_set_put(void) { + _cleanup_set_free_ Set *m = NULL; + + m = set_new(&string_hash_ops); + assert_se(m); + + assert_se(set_put(m, (void*) "1") == 1); + assert_se(set_put(m, (void*) "22") == 1); + assert_se(set_put(m, (void*) "333") == 1); + assert_se(set_put(m, (void*) "333") == 0); + assert_se(set_remove(m, (void*) "333")); + assert_se(set_put(m, (void*) "333") == 1); + assert_se(set_put(m, (void*) "333") == 0); + assert_se(set_put(m, (void*) "22") == 0); +} + int main(int argc, const char *argv[]) { test_set_steal_first(); + test_set_put(); return 0; } -- cgit v1.2.3-54-g00ecf