Mantid
Loading...
Searching...
No Matches
MockMemory.h
Go to the documentation of this file.
1#pragma once
2// Mantid Repository : https://github.com/mantidproject/mantid
3//
4// Copyright © 2026 ISIS Rutherford Appleton Laboratory UKRI,
5// NScD Oak Ridge National Laboratory, European Spallation Source,
6// Institut Laue - Langevin & CSNS, Institute of High Energy Physics, CAS
7// SPDX-License-Identifier: GPL-3.0+
8
9#include <cstddef>
10
12
13constexpr std::size_t g_default_value{12};
16constexpr std::size_t g_fallback_bin_count{static_cast<std::size_t>(1e12)};
17
18extern "C" void enable_mem_override(std::size_t value = g_default_value);
19extern "C" void disable_mem_override();
20
25struct MockMemory {
30 // delete copies and moves to fill out rule-of-five
31 MockMemory(MockMemory const &) = delete;
32 MockMemory(MockMemory &&) = delete;
33 MockMemory &operator=(MockMemory const &) = delete;
35#if defined(__linux__) || defined(__gnu_linux__)
36 std::size_t numberOfFloats() const {
37 return static_cast<std::size_t>(static_cast<double>(m_value * 1024) / sizeof(double) + 1);
38 }
39#else
40 // a very large number, sure to always exhaust memory
41 std::size_t numberOfFloats() const { return g_fallback_bin_count; }
42#endif
43private:
45};
46
47} // namespace Mantid::TestMemory
double value
The value of the point.
Definition FitMW.cpp:51
void disable_mem_override()
void enable_mem_override(std::size_t value=g_default_value)
constexpr std::size_t g_fallback_bin_count
Fallback bin count on non-Linux platforms where the memory mock is unavailable; large enough to relia...
Definition MockMemory.h:16
constexpr std::size_t g_default_value
Definition MockMemory.h:13
Mock the availMem function with RAII.
Definition MockMemory.h:25
MockMemory(MockMemory const &)=delete
MockMemory & operator=(MockMemory &&)=delete
MockMemory(std::size_t value=g_default_value)
Patch the available memory while in scope.
Definition MockMemory.h:28
MockMemory(MockMemory &&)=delete
MockMemory & operator=(MockMemory const &)=delete
std::size_t numberOfFloats() const
Definition MockMemory.h:41