This is an automated email from the ASF dual-hosted git repository.

pnoltes pushed a commit to branch feature/celix_err
in repository https://gitbox.apache.org/repos/asf/celix.git

commit d6402e0221142a2bec792e557271609cded70295
Author: Pepijn Noltes <pepijnnol...@gmail.com>
AuthorDate: Mon May 1 19:38:19 2023 +0200

    Add array list error injection lib
---
 libs/error_injector/CMakeLists.txt                 |   1 +
 .../error_injector/celix_array_list/CMakeLists.txt |  35 +++++++
 .../celix_array_list/include/celix_array_list_ei.h |  54 +++++++++++
 .../celix_array_list/src/celix_array_list_ei.cc    | 101 +++++++++++++++++++++
 4 files changed, 191 insertions(+)

diff --git a/libs/error_injector/CMakeLists.txt 
b/libs/error_injector/CMakeLists.txt
index ac78de8c..0fdb7d30 100644
--- a/libs/error_injector/CMakeLists.txt
+++ b/libs/error_injector/CMakeLists.txt
@@ -36,6 +36,7 @@ add_subdirectory(stat)
 add_subdirectory(fts)
 add_subdirectory(dlfcn)
 add_subdirectory(ifaddrs)
+add_subdirectory(celix_array_list)
 
 celix_subproject(ERROR_INJECTOR_MDNSRESPONDER "Option to enable building the 
mdnsresponder error injector" OFF)
 if (ERROR_INJECTOR_MDNSRESPONDER)
diff --git a/libs/error_injector/celix_array_list/CMakeLists.txt 
b/libs/error_injector/celix_array_list/CMakeLists.txt
new file mode 100644
index 00000000..9954bf00
--- /dev/null
+++ b/libs/error_injector/celix_array_list/CMakeLists.txt
@@ -0,0 +1,35 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+add_library(array_list_ei STATIC src/celix_array_list_ei.cc)
+
+target_include_directories(array_list_ei PUBLIC 
${CMAKE_CURRENT_LIST_DIR}/include)
+target_link_libraries(array_list_ei PUBLIC Celix::error_injector Celix::utils)
+target_link_options(array_list_ei INTERFACE
+        LINKER:--wrap,celix_arrayList_create
+        LINKER:--wrap,celix_arrayList_createWithOptions
+        LINKER:--wrap,celix_arrayList_add
+        LINKER:--wrap,celix_arrayList_addInt
+        LINKER:--wrap,celix_arrayList_addLong
+        LINKER:--wrap,celix_arrayList_addUInt
+        LINKER:--wrap,celix_arrayList_addULong
+        LINKER:--wrap,celix_arrayList_addFloat
+        LINKER:--wrap,celix_arrayList_addDouble
+        LINKER:--wrap,celix_arrayList_addBool
+        LINKER:--wrap,celix_arrayList_addSize
+)
+add_library(Celix::array_list_ei ALIAS array_list_ei)
diff --git a/libs/error_injector/celix_array_list/include/celix_array_list_ei.h 
b/libs/error_injector/celix_array_list/include/celix_array_list_ei.h
new file mode 100644
index 00000000..fb754682
--- /dev/null
+++ b/libs/error_injector/celix_array_list/include/celix_array_list_ei.h
@@ -0,0 +1,54 @@
+/*
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+ */
+
+#ifndef CELIX_CELIX_ARRAY_LIST_EI_H
+#define CELIX_CELIX_ARRAY_LIST_EI_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "celix_array_list.h"
+#include "celix_error_injector.h"
+
+CELIX_EI_DECLARE(celix_arrayList_create, celix_array_list_t*);
+
+CELIX_EI_DECLARE(celix_arrayList_createWithOptions, celix_array_list_t*);
+
+CELIX_EI_DECLARE(celix_arrayList_add, celix_status_t);
+
+CELIX_EI_DECLARE(celix_arrayList_addInt, celix_status_t);
+
+CELIX_EI_DECLARE(celix_arrayList_addLong, celix_status_t);
+
+CELIX_EI_DECLARE(celix_arrayList_addUInt, celix_status_t);
+
+CELIX_EI_DECLARE(celix_arrayList_addULong, celix_status_t);
+
+CELIX_EI_DECLARE(celix_arrayList_addFloat, celix_status_t);
+
+CELIX_EI_DECLARE(celix_arrayList_addDouble, celix_status_t);
+
+CELIX_EI_DECLARE(celix_arrayList_addBool, celix_status_t);
+
+CELIX_EI_DECLARE(celix_arrayList_addSize, celix_status_t);
+
+#ifdef __cplusplus
+}
+#endif
+#endif //CELIX_CELIX_ARRAY_LIST_EI_H
diff --git a/libs/error_injector/celix_array_list/src/celix_array_list_ei.cc 
b/libs/error_injector/celix_array_list/src/celix_array_list_ei.cc
new file mode 100644
index 00000000..9c1cc786
--- /dev/null
+++ b/libs/error_injector/celix_array_list/src/celix_array_list_ei.cc
@@ -0,0 +1,101 @@
+/*
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+ */
+
+#include "celix_array_list_ei.h"
+
+extern "C" {
+
+void *__real_celix_arrayList_create(void);
+CELIX_EI_DEFINE(celix_arrayList_create, celix_array_list_t*)
+void *__wrap_celix_arrayList_create(void) {
+    CELIX_EI_IMPL(celix_arrayList_create);
+    return __real_celix_arrayList_create();
+}
+
+void *__real_celix_arrayList_createWithOptions(const 
celix_array_list_create_options_t* opts);
+CELIX_EI_DEFINE(celix_arrayList_createWithOptions, celix_array_list_t*)
+void *__wrap_celix_arrayList_createWithOptions(const 
celix_array_list_create_options_t* opts) {
+    CELIX_EI_IMPL(celix_arrayList_createWithOptions);
+    return __real_celix_arrayList_createWithOptions(opts);
+}
+
+celix_status_t __real_celix_arrayList_add(celix_array_list_t* list, void* 
value);
+CELIX_EI_DEFINE(celix_arrayList_add, celix_status_t)
+celix_status_t __wrap_celix_arrayList_add(celix_array_list_t* list, void* 
value) {
+    CELIX_EI_IMPL(celix_arrayList_add);
+    return __real_celix_arrayList_add(list, value);
+}
+
+celix_status_t __real_celix_arrayList_addInt(celix_array_list_t* list, int 
value);
+CELIX_EI_DEFINE(celix_arrayList_addInt, celix_status_t)
+celix_status_t __wrap_celix_arrayList_addInt(celix_array_list_t* list, int 
value) {
+    CELIX_EI_IMPL(celix_arrayList_addInt);
+    return __real_celix_arrayList_addInt(list, value);
+}
+
+celix_status_t __real_celix_arrayList_addLong(celix_array_list_t* list, long 
value);
+CELIX_EI_DEFINE(celix_arrayList_addLong, celix_status_t)
+celix_status_t __wrap_celix_arrayList_addLong(celix_array_list_t* list, long 
value) {
+    CELIX_EI_IMPL(celix_arrayList_addLong);
+    return __real_celix_arrayList_addLong(list, value);
+}
+
+celix_status_t __real_celix_arrayList_addUInt(celix_array_list_t* list, 
unsigned int value);
+CELIX_EI_DEFINE(celix_arrayList_addUInt, celix_status_t)
+celix_status_t __wrap_celix_arrayList_addUInt(celix_array_list_t* list, 
unsigned int value) {
+    CELIX_EI_IMPL(celix_arrayList_addUInt);
+    return __real_celix_arrayList_addUInt(list, value);
+}
+
+celix_status_t __real_celix_arrayList_addULong(celix_array_list_t* list, 
unsigned long value);
+CELIX_EI_DEFINE(celix_arrayList_addULong, celix_status_t)
+celix_status_t __wrap_celix_arrayList_addULong(celix_array_list_t* list, 
unsigned long value) {
+    CELIX_EI_IMPL(celix_arrayList_addULong);
+    return __real_celix_arrayList_addULong(list, value);
+}
+
+celix_status_t __real_celix_arrayList_addFloat(celix_array_list_t* list, float 
value);
+CELIX_EI_DEFINE(celix_arrayList_addFloat, celix_status_t)
+celix_status_t __wrap_celix_arrayList_addFloat(celix_array_list_t* list, float 
value) {
+    CELIX_EI_IMPL(celix_arrayList_addFloat);
+    return __real_celix_arrayList_addFloat(list, value);
+}
+
+celix_status_t __real_celix_arrayList_addDouble(celix_array_list_t* list, 
double value);
+CELIX_EI_DEFINE(celix_arrayList_addDouble, celix_status_t)
+celix_status_t __wrap_celix_arrayList_addDouble(celix_array_list_t* list, 
double value) {
+    CELIX_EI_IMPL(celix_arrayList_addDouble);
+    return __real_celix_arrayList_addDouble(list, value);
+}
+
+celix_status_t __real_celix_arrayList_addBool(celix_array_list_t* list, bool 
value);
+CELIX_EI_DEFINE(celix_arrayList_addBool, celix_status_t)
+celix_status_t __wrap_celix_arrayList_addBool(celix_array_list_t* list, bool 
value) {
+    CELIX_EI_IMPL(celix_arrayList_addBool);
+    return __real_celix_arrayList_addBool(list, value);
+}
+
+celix_status_t __real_celix_arrayList_addSize(celix_array_list_t* list, size_t 
value);
+CELIX_EI_DEFINE(celix_arrayList_addSize, celix_status_t)
+celix_status_t __wrap_celix_arrayList_addSize(celix_array_list_t* list, size_t 
value) {
+    CELIX_EI_IMPL(celix_arrayList_addSize);
+    return __real_celix_arrayList_addSize(list, value);
+}
+
+}

Reply via email to