+//
+// Tests for
+// template <typename T, typename Alloc, typename TrappingPolicy>
+// bool operator==(std::nullptr_t, safe_allocation<T, Alloc, TrappingPolicy> const& x);
+//
+// template <typename T, typename Alloc, typename TrappingPolicy>
+// bool operator!=(std::nullptr_t, safe_allocation<T, Alloc, TrappingPolicy> const& x);
+//
+// template <typename T, typename Alloc, typename TrappingPolicy>
+// bool operator==(safe_allocation<T, Alloc, TrappingPolicy> const& x, std::nullptr_t);
+//
+// template <typename T, typename Alloc, typename TrappingPolicy>
+// bool operator!=(safe_allocation<T, Alloc, TrappingPolicy> const& x, std::nullptr_t);
+//
+
+#include <libkern/c++/safe_allocation.h>
+#include <darwintest.h>
+#include "test_utils.h"
+
+struct T { };
+
+template <typename T>
+static void
+tests()
+{
+ {
+ test_safe_allocation<T> const array(10, libkern::allocate_memory);
+ CHECK(!(array == nullptr));
+ CHECK(!(nullptr == array));
+ CHECK(array != nullptr);
+ CHECK(nullptr != array);
+ }
+ {
+ test_safe_allocation<T> const array = nullptr;
+ CHECK(array == nullptr);
+ CHECK(nullptr == array);
+ CHECK(!(array != nullptr));
+ CHECK(!(nullptr != array));
+ }
+}
+
+T_DECL(compare_equal_nullptr, "safe_allocation.compare.equal.nullptr") {
+ tests<T>();
+ tests<T const>();
+}