Skip to content

Commit

Permalink
gh-674: Fix some wrong array element type issues
Browse files Browse the repository at this point in the history
  • Loading branch information
pnoltes committed Jan 4, 2025
1 parent c56cd21 commit 6090b7a
Show file tree
Hide file tree
Showing 4 changed files with 4 additions and 49 deletions.
1 change: 1 addition & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@ limitations under the License.
- The manifest format has been changed to JSON, and the manifest attribute names have been changed.
The old manifest format is no longer supported.
The old manifest attribute names are also no longer defined in `celix_constants.h`.
- The funnction `celix_arrayList_create` has been removed, use the element type specific create functions instead.

## New Features

Expand Down
2 changes: 1 addition & 1 deletion libs/framework/src/framework.c
Original file line number Diff line number Diff line change
Expand Up @@ -497,7 +497,7 @@ celix_status_t framework_start(celix_framework_t* framework) {
static celix_status_t framework_autoStartConfiguredBundles(celix_framework_t* fw, bool *startedAllBundles) {
celix_status_t status = CELIX_SUCCESS;
const char* const celixKeys[] = {CELIX_AUTO_START_0, CELIX_AUTO_START_1, CELIX_AUTO_START_2, CELIX_AUTO_START_3, CELIX_AUTO_START_4, CELIX_AUTO_START_5, CELIX_AUTO_START_6, NULL};
celix_autoptr(celix_array_list_t) installedBundles = celix_arrayList_createPointerArray();
celix_autoptr(celix_array_list_t) installedBundles = celix_arrayList_createLongArray();
if (!installedBundles) {
celix_framework_logTssErrors(fw->logger, CELIX_LOG_LEVEL_ERROR);
return ENOMEM;
Expand Down
48 changes: 1 addition & 47 deletions libs/utils/gtest/src/ArrayListTestSuite.cc
Original file line number Diff line number Diff line change
Expand Up @@ -380,35 +380,10 @@ TEST_F(ArrayListTestSuite, SimpleRemovedCallbacksForArrayListTest) {
celix_arrayList_destroy(list); //will call free for every entry
}

TEST_F(ArrayListTestSuite, AddStringToArrayListOfUndefinedTypeTest) {
celix_array_list_create_options_t opts{};
opts.simpleRemovedCallback = free;
auto* list = celix_arrayList_createWithOptions(&opts);
celix_arrayList_addString(list, celix_utils_strdup("value"));
celix_arrayList_addString(list, celix_utils_strdup("value"));
celix_arrayList_addString(list, celix_utils_strdup("value"));
celix_arrayList_addString(list, celix_utils_strdup("value"));
EXPECT_EQ(celix_arrayList_size(list), 4);
celix_arrayList_destroy(list); //will call free for every entry
}

TEST_F(ArrayListTestSuite, AddVersionToArrayListOfUndefinedTypeTest) {
celix_array_list_create_options_t opts{};
opts.simpleRemovedCallback = [](void* data) {
celix_version_destroy((celix_version_t*)data);
};
auto* list = celix_arrayList_createWithOptions(&opts);
celix_arrayList_addVersion(list, celix_version_create(1, 3, 0, nullptr));
celix_arrayList_addVersion(list, celix_version_create(1, 3, 0, nullptr));
celix_arrayList_addVersion(list, celix_version_create(1, 3, 0, nullptr));
celix_arrayList_addVersion(list, celix_version_create(1, 3, 0, nullptr));
EXPECT_EQ(celix_arrayList_size(list), 4);
celix_arrayList_destroy(list); //will call free for every entry
}

TEST_F(ArrayListTestSuite, RemovedCallbacksForArrayListTest) {
int count = 0 ;
celix_array_list_create_options_t opts{};
opts.elementType = CELIX_ARRAY_LIST_ELEMENT_TYPE_LONG;
opts.removedCallbackData = &count;
opts.removedCallback = [](void *data, celix_array_list_entry_t entry) {
int* c = (int*)data;
Expand Down Expand Up @@ -454,27 +429,6 @@ TEST_F(ArrayListTestSuite, SortForArrayListTest) {
celix_arrayList_destroy(list);
}

TEST_F(ArrayListTestSuite, ReturnStatusAddFunctionsTest) {
auto* list = celix_arrayList_createLongArray();
ASSERT_TRUE(list != nullptr);
EXPECT_EQ(0, celix_arrayList_size(list));

//no error, return status is CELIX_SUCCESS
EXPECT_EQ(CELIX_SUCCESS, celix_arrayList_addLong(list, 2L));
EXPECT_EQ(1, celix_arrayList_size(list));

EXPECT_EQ(CELIX_SUCCESS, celix_arrayList_addDouble(list, 4.0));
EXPECT_EQ(2, celix_arrayList_size(list));

EXPECT_EQ(CELIX_SUCCESS, celix_arrayList_addBool(list, true));
EXPECT_EQ(3, celix_arrayList_size(list));

EXPECT_EQ(CELIX_SUCCESS, celix_arrayList_add(list, (void*)0x42));
EXPECT_EQ(4, celix_arrayList_size(list));

celix_arrayList_destroy(list);
}

TEST_F(ArrayListTestSuite, AutoCleanupTest) {
celix_autoptr(celix_array_list_t) list = celix_arrayList_createPointerArray();
EXPECT_NE(nullptr, list);
Expand Down
2 changes: 1 addition & 1 deletion libs/utils/include/celix_array_list.h
Original file line number Diff line number Diff line change
Expand Up @@ -170,7 +170,7 @@ celix_array_list_t* celix_arrayList_createVersionArray();
*/
typedef struct celix_array_list_create_options {
/**
* The element type of the array list. Default is CELIX_ARRAY_LIST_ELEMENT_TYPE_UNDEFINED.
* The element type of the array list. Default is CELIX_ARRAY_LIST_ELEMENT_TYPE_POINTER.
*/
celix_array_list_element_type_t elementType CELIX_OPTS_INIT;

Expand Down

0 comments on commit 6090b7a

Please sign in to comment.