about summary refs log tree commit diff
path: root/third_party/immer/test/memory/refcounts.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/immer/test/memory/refcounts.cpp')
-rw-r--r--third_party/immer/test/memory/refcounts.cpp62
1 files changed, 0 insertions, 62 deletions
diff --git a/third_party/immer/test/memory/refcounts.cpp b/third_party/immer/test/memory/refcounts.cpp
deleted file mode 100644
index f9278ca779..0000000000
--- a/third_party/immer/test/memory/refcounts.cpp
+++ /dev/null
@@ -1,62 +0,0 @@
-//
-// immer: immutable data structures for C++
-// Copyright (C) 2016, 2017, 2018 Juan Pedro Bolivar Puente
-//
-// This software is distributed under the Boost Software License, Version 1.0.
-// See accompanying file LICENSE or copy at http://boost.org/LICENSE_1_0.txt
-//
-
-#include <immer/refcount/no_refcount_policy.hpp>
-#include <immer/refcount/refcount_policy.hpp>
-#include <immer/refcount/unsafe_refcount_policy.hpp>
-
-#include <catch.hpp>
-
-TEST_CASE("no refcount has no data")
-{
-    static_assert(std::is_empty<immer::no_refcount_policy>{}, "");
-}
-
-template <typename RefcountPolicy>
-void test_refcount()
-{
-    using refcount = RefcountPolicy;
-
-    SECTION("starts at one")
-    {
-        refcount elem{};
-        CHECK(elem.dec());
-    }
-
-    SECTION("disowned starts at zero")
-    {
-        refcount elem{immer::disowned{}};
-        elem.inc();
-        CHECK(elem.dec());
-    }
-
-    SECTION("inc dec")
-    {
-        refcount elem{};
-        elem.inc();
-        CHECK(!elem.dec());
-        CHECK(elem.dec());
-    }
-
-    SECTION("inc dec unsafe")
-    {
-        refcount elem{};
-        elem.inc();
-        CHECK(!elem.dec());
-        elem.inc();
-        elem.dec_unsafe();
-        CHECK(elem.dec());
-    }
-}
-
-TEST_CASE("basic refcount") { test_refcount<immer::refcount_policy>(); }
-
-TEST_CASE("thread unsafe refcount")
-{
-    test_refcount<immer::unsafe_refcount_policy>();
-}