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); +} + +}