aboutsummaryrefslogtreecommitdiffstats
path: root/src/catch2/internal/catch_context.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/catch2/internal/catch_context.cpp')
-rw-r--r--src/catch2/internal/catch_context.cpp35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/catch2/internal/catch_context.cpp b/src/catch2/internal/catch_context.cpp
new file mode 100644
index 0000000..8acf1ed
--- /dev/null
+++ b/src/catch2/internal/catch_context.cpp
@@ -0,0 +1,35 @@
+
+// Copyright Catch2 Authors
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE.txt or copy at
+// https://www.boost.org/LICENSE_1_0.txt)
+
+// SPDX-License-Identifier: BSL-1.0
+#include <catch2/internal/catch_context.hpp>
+#include <catch2/internal/catch_noncopyable.hpp>
+#include <catch2/internal/catch_random_number_generator.hpp>
+
+namespace Catch {
+
+ Context* Context::currentContext = nullptr;
+
+ void cleanUpContext() {
+ delete Context::currentContext;
+ Context::currentContext = nullptr;
+ }
+ void Context::createContext() {
+ currentContext = new Context();
+ }
+
+ Context& getCurrentMutableContext() {
+ if ( !Context::currentContext ) { Context::createContext(); }
+ // NOLINTNEXTLINE(clang-analyzer-core.uninitialized.UndefReturn)
+ return *Context::currentContext;
+ }
+
+ SimplePcg32& sharedRng() {
+ static SimplePcg32 s_rng;
+ return s_rng;
+ }
+
+}