/* dict - a generic dictionary, variation over hash table */
-/* Copyright (c) 2004-2020. The SimGrid Team. All rights reserved. */
+/* Copyright (c) 2004-2021. 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. */
#include "xbt/dict.h"
#include "simgrid/Exception.hpp"
+#include "xbt/random.hpp"
#include <cstdio>
#include <cstring>
-#include <random>
#include "catch.hpp"
static void search_ext(const_xbt_dict_t head, const char* key, const char* data)
{
INFO("Search " << STR(key));
- char* found = (char*)xbt_dict_get_or_null(head, key);
+ auto* found = static_cast<char*>(xbt_dict_get_or_null(head, key));
INFO("Found " << STR(found));
if (data) {
REQUIRE(found); // data do not match expectations: found null while searching for data
SECTION("Crash test")
{
- std::random_device rd;
- std::default_random_engine rnd_engine(rd());
-
for (int i = 0; i < 10; i++) {
INFO("CRASH test number " << i + 1 << " (" << 10 - i - 1 << " to go)");
INFO("Fill the struct, count its elems and frees the structure");
xbt_dict_t head = xbt_dict_new_homogeneous(free);
for (int j = 0; j < 1000; j++) {
const char* data = nullptr;
- char* key = (char*)xbt_malloc(SIZEOFKEY);
+ auto* key = static_cast<char*>(xbt_malloc(SIZEOFKEY));
do {
for (int k = 0; k < SIZEOFKEY - 1; k++) {
- key[k] = rnd_engine() % ('z' - 'a') + 'a';
+ key[k] = simgrid::xbt::random::uniform_int('a', 'z');
}
key[SIZEOFKEY - 1] = '\0';
data = (char*)xbt_dict_get_or_null(head, key);
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++) {
- char* key = (char*)xbt_malloc(10);
+ auto* key = static_cast<char*>(xbt_malloc(10));
snprintf(key, 10, "%d", j);
xbt_dict_set(head, key, key);
INFO("There is " << countelems(head) << " elements");
INFO("Search my " << NB_ELM << " elements 20 times");
- char* key = (char*)xbt_malloc(10);
+ auto* key = static_cast<char*>(xbt_malloc(10));
for (int i = 0; i < 20; i++) {
for (int j = 0; j < NB_ELM; j++) {
snprintf(key, 10, "%d", j);