X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/3a1ea70a418f393ca1677074e928c664022295bd..39a55a31e73d079c92a37793c58453f219c341aa:/src/xbt/dict_test.cpp diff --git a/src/xbt/dict_test.cpp b/src/xbt/dict_test.cpp index 168a9b4ef5..4e7613791e 100644 --- a/src/xbt/dict_test.cpp +++ b/src/xbt/dict_test.cpp @@ -1,6 +1,6 @@ /* dict - a generic dictionary, variation over hash table */ -/* Copyright (c) 2004-2020. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2004-2023. The SimGrid Team. All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ @@ -12,7 +12,7 @@ #include #include -#include "catch.hpp" +#include "src/3rd-party/catch.hpp" #define STR(str) ((str) ? (str) : "(null)") @@ -93,21 +93,6 @@ static void search_not_found(const_xbt_dict_t head, const char* data) REQUIRE(xbt_dict_get_or_null(head, data) == nullptr); } -static void count(const_xbt_dict_t dict, int length) -{ - INFO("Count elements (expecting " << length << ")"); - REQUIRE(xbt_dict_length(dict) == length); // Announced length differs - - xbt_dict_cursor_t cursor; - char* key; - void* data; - int effective = 0; - xbt_dict_foreach (dict, cursor, key, data) - effective++; - - REQUIRE(effective == length); // Effective length differs -} - static int countelems(const_xbt_dict_t head) { xbt_dict_cursor_t cursor; @@ -121,6 +106,13 @@ static int countelems(const_xbt_dict_t head) return res; } +static void count(const_xbt_dict_t dict, int length) +{ + INFO("Count elements (expecting " << length << ")"); + REQUIRE(xbt_dict_length(dict) == length); // Announced length differs + REQUIRE(countelems(dict) == length); // Effective length differs +} + TEST_CASE("xbt::dict: dict data container", "dict") { SECTION("Basic usage: change, retrieve and traverse homogeneous dicts") @@ -295,9 +287,9 @@ TEST_CASE("xbt::dict: dict data container", "dict") xbt_dict_t head = xbt_dict_new_homogeneous(&free); INFO("Fill " << NB_ELM << " elements, with keys being the number of element"); for (int j = 0; j < NB_ELM; j++) { - auto* key = static_cast(xbt_malloc(10)); + auto* key = static_cast(xbt_malloc(12)); - snprintf(key, 10, "%d", j); + snprintf(key, 12, "%d", j); xbt_dict_set(head, key, key); } @@ -305,10 +297,10 @@ TEST_CASE("xbt::dict: dict data container", "dict") INFO("There is " << countelems(head) << " elements"); INFO("Search my " << NB_ELM << " elements 20 times"); - auto* key = static_cast(xbt_malloc(10)); + auto* key = static_cast(xbt_malloc(12)); for (int i = 0; i < 20; i++) { for (int j = 0; j < NB_ELM; j++) { - snprintf(key, 10, "%d", j); + snprintf(key, 12, "%d", j); void* data = xbt_dict_get_or_null(head, key); REQUIRE((data && not strcmp(key, (char*)data))); // with get, key != data data = xbt_dict_get_or_null_ext(head, key, strlen(key)); @@ -318,9 +310,9 @@ TEST_CASE("xbt::dict: dict data container", "dict") xbt_free(key); INFO("Remove my " << NB_ELM << " elements"); - key = (char*)xbt_malloc(10); + key = (char*)xbt_malloc(12); for (int j = 0; j < NB_ELM; j++) { - snprintf(key, 10, "%d", j); + snprintf(key, 12, "%d", j); xbt_dict_remove_ext(head, key, strlen(key)); } xbt_free(key);