You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@celix.apache.org by pn...@apache.org on 2023/05/01 17:59:11 UTC
[celix] 04/06: Add array list error injection lib
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 <pe...@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);
+}
+
+}