X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/515cd2622ad1000f5f3ba58ecfaf488ac922b963..1c27bfd8bf760d9b7f8220f17025acaf0da83cd2:/src/mc/sosp/Snapshot_test.cpp diff --git a/src/mc/sosp/Snapshot_test.cpp b/src/mc/sosp/Snapshot_test.cpp index 95c10a06ab..d2f7d0e24c 100644 --- a/src/mc/sosp/Snapshot_test.cpp +++ b/src/mc/sosp/Snapshot_test.cpp @@ -16,6 +16,7 @@ using simgrid::mc::Region; class snap_test_helper { static simgrid::mc::PageStore page_store_; + static std::unique_ptr memory_; public: static void init_memory(void* mem, size_t size); @@ -34,18 +35,12 @@ public: static void compare_region_parts(); static void read_pointer(); - static void cleanup() - { - delete mc_model_checker; - mc_model_checker = nullptr; - } - - static std::unique_ptr process; + static void cleanup() { memory_ = nullptr; } }; // static member variables init. -std::unique_ptr snap_test_helper::process = nullptr; simgrid::mc::PageStore snap_test_helper::page_store_(500); +std::unique_ptr snap_test_helper::memory_ = nullptr; void snap_test_helper::init_memory(void* mem, size_t size) { @@ -60,9 +55,7 @@ void snap_test_helper::Init() REQUIRE(xbt_pagesize == getpagesize()); REQUIRE(1 << xbt_pagebits == xbt_pagesize); - process = std::make_unique(getpid()); - process->init(nullptr); - mc_model_checker = new ::simgrid::mc::ModelChecker(std::move(process), -1); + memory_ = std::make_unique(getpid(), nullptr); } snap_test_helper::prologue_return snap_test_helper::prologue(int n) @@ -75,11 +68,12 @@ snap_test_helper::prologue_return snap_test_helper::prologue(int n) // Init memory and take snapshots: init_memory(source, byte_size); - auto* region0 = new simgrid::mc::Region(page_store_, simgrid::mc::RegionType::Data, source, byte_size); + auto* region0 = + new simgrid::mc::Region(page_store_, *memory_.get(), simgrid::mc::RegionType::Data, source, byte_size); for (int i = 0; i < n; i += 2) { init_memory((char*)source + i * xbt_pagesize, xbt_pagesize); } - auto* region = new simgrid::mc::Region(page_store_, simgrid::mc::RegionType::Data, source, byte_size); + auto* region = new simgrid::mc::Region(page_store_, *memory_.get(), simgrid::mc::RegionType::Data, source, byte_size); void* destination = mmap(nullptr, byte_size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); INFO("Could not allocate destination memory"); @@ -157,13 +151,15 @@ void snap_test_helper::compare_region_parts() } } +const int some_global_variable = 42; +const void* some_global_pointer = &some_global_variable; void snap_test_helper::read_pointer() { prologue_return ret = prologue(1); - memcpy(ret.src, &mc_model_checker, sizeof(void*)); - const simgrid::mc::Region region2(page_store_, simgrid::mc::RegionType::Data, ret.src, ret.size); + memcpy(ret.src, &some_global_pointer, sizeof(void*)); + const simgrid::mc::Region region2(page_store_, *memory_.get(), simgrid::mc::RegionType::Data, ret.src, ret.size); INFO("Mismtach in MC_region_read_pointer()"); - REQUIRE(MC_region_read_pointer(®ion2, ret.src) == mc_model_checker); + REQUIRE(MC_region_read_pointer(®ion2, ret.src) == some_global_pointer); munmap(ret.dstn, ret.size); munmap(ret.src, ret.size);