summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--include/ocl/allocator_op.hpp1
-rw-r--r--include/ocl/basic_hash.hpp25
-rw-r--r--test/.keep0
-rw-r--r--test/Jamfile17
-rw-r--r--test/allocator_op.test.cpp16
-rw-r--r--test/option.test.cpp2
7 files changed, 59 insertions, 3 deletions
diff --git a/.gitignore b/.gitignore
index bf33267..66c93a7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,6 +8,7 @@
*.obj
dist/*
+bin/
docs/html
docs/latex
diff --git a/include/ocl/allocator_op.hpp b/include/ocl/allocator_op.hpp
index dcdbdaa..f515586 100644
--- a/include/ocl/allocator_op.hpp
+++ b/include/ocl/allocator_op.hpp
@@ -48,6 +48,7 @@ namespace ocl
}
};
+ /// \brief Allocator operations structure. Takes care of memory mgmt within a pool.
template <typename ret_type, typename allocator_new, typename allocator_delete>
class allocator_op
{
diff --git a/include/ocl/basic_hash.hpp b/include/ocl/basic_hash.hpp
index 6a39df2..00c3768 100644
--- a/include/ocl/basic_hash.hpp
+++ b/include/ocl/basic_hash.hpp
@@ -1,3 +1,9 @@
+/*
+ * File: basic_hash.hpp
+ * Author: Amlal El Mahrouss,
+ * Copyright 2023-2025, Amlal El Mahrouss, Licensed under the Boost Software License
+ */
+
#ifndef __OCL_CORE_BASIC_HASH
#define __OCL_CORE_BASIC_HASH
@@ -6,8 +12,9 @@
/// @brief OCL equivalence namespace.
namespace ocl
{
+ /// \brief Hash helper.
template <class T>
- struct basic_hash final
+ struct basic_hash
{
using result_type = typename T::result_type;
using type = T;
@@ -18,6 +25,20 @@ namespace ocl
return type{}.hash();
}
};
-}
+
+ /// \brief For all boolean types, return false as they are not hashable
+ template <>
+ struct basic_hash<bool>
+ {
+ using result_type = bool;
+ using type = bool;
+
+ // AMLALE: If it throws, we can't compute the hash correctly.
+ constexpr result_type hash()
+ {
+ return false;
+ }
+ };
+} // namespace ocl
#endif \ No newline at end of file
diff --git a/test/.keep b/test/.keep
deleted file mode 100644
index e69de29..0000000
--- a/test/.keep
+++ /dev/null
diff --git a/test/Jamfile b/test/Jamfile
new file mode 100644
index 0000000..853d246
--- /dev/null
+++ b/test/Jamfile
@@ -0,0 +1,17 @@
+# /*
+# * File: Jamfile
+# * Author: Amlal El Mahrouss,
+# * Copyright 2025, Amlal El Mahrouss, Licensed under the Boost Software License
+# */
+
+project tests
+: default-build debug
+;
+
+exe option.test.o
+ : option.test.cpp
+ : <toolset>gcc : <cxxflags>-std=c++20 ;
+
+exe allocator_op.test.o
+ : allocator_op.test.cpp
+ : <toolset>gcc : <cxxflags>-std=c++20 ; \ No newline at end of file
diff --git a/test/allocator_op.test.cpp b/test/allocator_op.test.cpp
new file mode 100644
index 0000000..fa2a049
--- /dev/null
+++ b/test/allocator_op.test.cpp
@@ -0,0 +1,16 @@
+// File: allocator.test.cpp
+// Purpose; Allocator test for OCL.
+/// @brief This unit test checks if the test succeeds.
+/// @author Amlal El Mahrouss
+
+#include <ocl/allocator_op.hpp>
+
+#define BOOST_TEST_MODULE allocator_op
+#include <boost/test/included/unit_test.hpp>
+
+BOOST_AUTO_TEST_CASE( allocator_should_succeed )
+{
+ auto ptr = ocl::allocator<int>{}.construct_array<10>();
+ int* arr = ptr.get();
+ BOOST_TEST( arr != nullptr );
+} \ No newline at end of file
diff --git a/test/option.test.cpp b/test/option.test.cpp
index 098d0aa..211f044 100644
--- a/test/option.test.cpp
+++ b/test/option.test.cpp
@@ -1,6 +1,6 @@
// File: option.test.cpp
// Purpose; Option test for OCL.
-/// @brief This unit test checks if the unit test fails with the expected value.
+/// @brief This unit test checks if the test fails with the expected value.
/// @author Amlal El Mahrouss
#include <ocl/option.hpp>