--- /dev/null
+#ifndef TESTS_BOUNDED_ARRAY_REF_SRC_TEST_POLICY_H
+#define TESTS_BOUNDED_ARRAY_REF_SRC_TEST_POLICY_H
+
+#include <assert.h>
+#include <darwintest_utils.h>
+#include <libkern/c++/bounded_array.h>
+#include <libkern/c++/bounded_array_ref.h>
+#include <libkern/c++/bounded_ptr.h>
+#include <stddef.h>
+#include <string>
+
+namespace {
+struct test_policy {
+ static void
+ trap(char const*)
+ {
+ assert(false);
+ }
+};
+
+struct tracking_policy {
+ static bool did_trap;
+ static std::string message;
+ static void
+ trap(char const* m)
+ {
+ did_trap = true;
+ message.assign(m);
+ }
+ static void
+ reset()
+ {
+ did_trap = false;
+ message = "";
+ }
+};
+bool tracking_policy::did_trap = false;
+std::string tracking_policy::message = "";
+}
+
+template <typename T>
+using test_bounded_array_ref = libkern::bounded_array_ref<T, test_policy>;
+
+template <typename T, size_t N>
+using test_bounded_array = libkern::bounded_array<T, N, test_policy>;
+
+template <typename T>
+using test_bounded_ptr = libkern::bounded_ptr<T, test_policy>;
+
+#define CHECK(...) T_ASSERT_TRUE((__VA_ARGS__), # __VA_ARGS__)
+
+#endif // !TESTS_BOUNDED_ARRAY_REF_SRC_TEST_POLICY_H