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 2018/09/04 10:51:11 UTC
celix git commit: CELIX-453: Fixes some issues in the array_list and
properties update
Repository: celix
Updated Branches:
refs/heads/develop 6e25c0da0 -> 57f169353
CELIX-453: Fixes some issues in the array_list and properties update
Project: http://git-wip-us.apache.org/repos/asf/celix/repo
Commit: http://git-wip-us.apache.org/repos/asf/celix/commit/57f16935
Tree: http://git-wip-us.apache.org/repos/asf/celix/tree/57f16935
Diff: http://git-wip-us.apache.org/repos/asf/celix/diff/57f16935
Branch: refs/heads/develop
Commit: 57f16935320e2a24043ee5d5bef06fa7c866228a
Parents: 6e25c0d
Author: Pepijn Noltes <pe...@gmail.com>
Authored: Tue Sep 4 12:50:48 2018 +0200
Committer: Pepijn Noltes <pe...@gmail.com>
Committed: Tue Sep 4 12:50:48 2018 +0200
----------------------------------------------------------------------
libs/utils/private/test/array_list_test.cpp | 1 +
libs/utils/private/test/properties_test.cpp | 28 ++++++++
libs/utils/src/array_list.c | 92 +++++++++++++++++++-----
libs/utils/src/properties.c | 11 +--
4 files changed, 111 insertions(+), 21 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/celix/blob/57f16935/libs/utils/private/test/array_list_test.cpp
----------------------------------------------------------------------
diff --git a/libs/utils/private/test/array_list_test.cpp b/libs/utils/private/test/array_list_test.cpp
index df8c135..4c908e3 100644
--- a/libs/utils/private/test/array_list_test.cpp
+++ b/libs/utils/private/test/array_list_test.cpp
@@ -26,6 +26,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <iostream>
#include "CppUTest/TestHarness.h"
#include "CppUTest/TestHarness_c.h"
http://git-wip-us.apache.org/repos/asf/celix/blob/57f16935/libs/utils/private/test/properties_test.cpp
----------------------------------------------------------------------
diff --git a/libs/utils/private/test/properties_test.cpp b/libs/utils/private/test/properties_test.cpp
index 6dfb3ba..6e295aa 100644
--- a/libs/utils/private/test/properties_test.cpp
+++ b/libs/utils/private/test/properties_test.cpp
@@ -33,6 +33,7 @@
extern "C" {
#include "properties.h"
+#include "celix_properties.h"
}
int main(int argc, char** argv) {
@@ -78,6 +79,33 @@ TEST(properties, load) {
properties_destroy(properties);
}
+TEST(properties, asLong) {
+ celix_properties_t *props = celix_properties_create();
+ celix_properties_set(props, "t1", "42");
+ celix_properties_set(props, "t2", "-42");
+ celix_properties_set(props, "t3", "");
+ celix_properties_set(props, "t4", "42 bla"); //converts to 42
+ celix_properties_set(props, "t5", "bla");
+
+ long v = celix_properties_getAsLong(props, "t1", -1);
+ LONGS_EQUAL(42, v);
+
+ v = celix_properties_getAsLong(props, "t2", -1);
+ LONGS_EQUAL(-42, v);
+
+ v = celix_properties_getAsLong(props, "t3", -1);
+ LONGS_EQUAL(-1, v);
+
+ v = celix_properties_getAsLong(props, "t4", -1);
+ LONGS_EQUAL(42, v);
+
+ v = celix_properties_getAsLong(props, "t5", -1);
+ LONGS_EQUAL(-1, v);
+
+ v = celix_properties_getAsLong(props, "non-existing", -1);
+ LONGS_EQUAL(-1, v);
+}
+
TEST(properties, store) {
char propertiesFile[] = "resources-test/properties_out.txt";
properties = properties_create();
http://git-wip-us.apache.org/repos/asf/celix/blob/57f16935/libs/utils/src/array_list.c
----------------------------------------------------------------------
diff --git a/libs/utils/src/array_list.c b/libs/utils/src/array_list.c
index 4ad277c..15143a5 100644
--- a/libs/utils/src/array_list.c
+++ b/libs/utils/src/array_list.c
@@ -420,14 +420,54 @@ void celix_arrayList_add(celix_array_list_t *list, void * element) {
arrayList_addEntry(list, entry);
}
-void celix_arrayList_addInt(celix_array_list_t *list, int val) { celix_array_list_entry_t entry = { .intVal = val }; arrayList_addEntry(list, entry);}
-void celix_arrayList_addLong(celix_array_list_t *list, long val) { celix_array_list_entry_t entry = { .longVal = val }; arrayList_addEntry(list, entry);}
-void celix_arrayList_addUInt(celix_array_list_t *list, unsigned int val) { celix_array_list_entry_t entry = { .uintVal = val }; arrayList_addEntry(list, entry);}
-void celix_arrayList_addULong(celix_array_list_t *list, unsigned long val) { celix_array_list_entry_t entry = { .ulongVal = val }; arrayList_addEntry(list, entry);}
-void celix_arrayList_addFloat(celix_array_list_t *list, float val) { celix_array_list_entry_t entry = { .floatVal = val }; arrayList_addEntry(list, entry);}
-void celix_arrayList_addDouble(celix_array_list_t *list, double val) { celix_array_list_entry_t entry = { .doubleVal = val }; arrayList_addEntry(list, entry);}
-void celix_arrayList_addBool(celix_array_list_t *list, bool val) { celix_array_list_entry_t entry = { .boolVal = val }; arrayList_addEntry(list, entry);}
-void celix_arrayList_addSize(celix_array_list_t *list, size_t val) { celix_array_list_entry_t entry = { .sizeVal = val }; arrayList_addEntry(list, entry);}
+void celix_arrayList_addInt(celix_array_list_t *list, int val) {
+ celix_array_list_entry_t entry;
+ memset(&entry, 0, sizeof(entry));
+ entry.intVal = val;
+ arrayList_addEntry(list, entry);
+}
+void celix_arrayList_addLong(celix_array_list_t *list, long val) {
+ celix_array_list_entry_t entry;
+ memset(&entry, 0, sizeof(entry));
+ entry.longVal = val;
+ arrayList_addEntry(list, entry);
+}
+void celix_arrayList_addUInt(celix_array_list_t *list, unsigned int val) {
+ celix_array_list_entry_t entry;
+ memset(&entry, 0, sizeof(entry));
+ entry.uintVal = val;
+ arrayList_addEntry(list, entry);
+}
+void celix_arrayList_addULong(celix_array_list_t *list, unsigned long val) {
+ celix_array_list_entry_t entry;
+ memset(&entry, 0, sizeof(entry));
+ entry.ulongVal = val;
+ arrayList_addEntry(list, entry);
+}
+void celix_arrayList_addDouble(celix_array_list_t *list, double val) {
+ celix_array_list_entry_t entry;
+ memset(&entry, 0, sizeof(entry));
+ entry.doubleVal = val;
+ arrayList_addEntry(list, entry);
+}
+void celix_arrayList_addFloat(celix_array_list_t *list, float val) {
+ celix_array_list_entry_t entry;
+ memset(&entry, 0, sizeof(entry));
+ entry.floatVal = val;
+ arrayList_addEntry(list, entry);
+}
+void celix_arrayList_addBool(celix_array_list_t *list, bool val) {
+ celix_array_list_entry_t entry;
+ memset(&entry, 0, sizeof(entry));
+ entry.boolVal = val;
+ arrayList_addEntry(list, entry);
+}
+void celix_arrayList_addSize(celix_array_list_t *list, size_t val) {
+ celix_array_list_entry_t entry;
+ memset(&entry, 0, sizeof(entry));
+ entry.sizeVal = val;
+ arrayList_addEntry(list, entry);
+}
int celix_arrayList_indexOf(celix_array_list_t *list, celix_array_list_entry_t entry) {
size_t size = celix_arrayList_size(list);
@@ -458,46 +498,64 @@ void celix_arrayList_removeEntry(celix_array_list_t *list, celix_array_list_entr
void celix_arrayList_remove(celix_array_list_t *list, void *ptr) {
- celix_array_list_entry_t entry = {.voidPtrVal = ptr};
+ celix_array_list_entry_t entry;
+ memset(&entry, 0, sizeof(entry));
+ entry.voidPtrVal = ptr;
celix_arrayList_removeEntry(list, entry);
}
void celix_arrayList_removeInt(celix_array_list_t *list, int val) {
- celix_array_list_entry_t entry = {.intVal = val};
+ celix_array_list_entry_t entry;
+ memset(&entry, 0, sizeof(entry));
+ entry.intVal = val;
celix_arrayList_removeEntry(list, entry);
}
void celix_arrayList_removeLong(celix_array_list_t *list, long val) {
- celix_array_list_entry_t entry = {.longVal = val};
+ celix_array_list_entry_t entry;
+ memset(&entry, 0, sizeof(entry));
+ entry.longVal = val;
celix_arrayList_removeEntry(list, entry);
}
void celix_arrayList_removeUInt(celix_array_list_t *list, unsigned int val) {
- celix_array_list_entry_t entry = {.uintVal = val};
+ celix_array_list_entry_t entry;
+ memset(&entry, 0, sizeof(entry));
+ entry.uintVal = val;
celix_arrayList_removeEntry(list, entry);
}
void celix_arrayList_removeULong(celix_array_list_t *list, unsigned long val) {
- celix_array_list_entry_t entry = {.ulongVal = val};
+ celix_array_list_entry_t entry;
+ memset(&entry, 0, sizeof(entry));
+ entry.ulongVal = val;
celix_arrayList_removeEntry(list, entry);
}
void celix_arrayList_removeFloat(celix_array_list_t *list, float val) {
- celix_array_list_entry_t entry = {.floatVal = val};
+ celix_array_list_entry_t entry;
+ memset(&entry, 0, sizeof(entry));
+ entry.floatVal = val;
celix_arrayList_removeEntry(list, entry);
}
void celix_arrayList_removeDouble(celix_array_list_t *list, double val) {
- celix_array_list_entry_t entry = {.doubleVal = val};
+ celix_array_list_entry_t entry;
+ memset(&entry, 0, sizeof(entry));
+ entry.doubleVal = val;
celix_arrayList_removeEntry(list, entry);
}
void celix_arrayList_removeBool(celix_array_list_t *list, bool val) {
- celix_array_list_entry_t entry = {.boolVal = val};
+ celix_array_list_entry_t entry;
+ memset(&entry, 0, sizeof(entry));
+ entry.boolVal = val;
celix_arrayList_removeEntry(list, entry);
}
void celix_arrayList_removeSize(celix_array_list_t *list, size_t val) {
- celix_array_list_entry_t entry = {.sizeVal = val};
+ celix_array_list_entry_t entry;
+ memset(&entry, 0, sizeof(entry));
+ entry.sizeVal = val;
celix_arrayList_removeEntry(list, entry);
}
http://git-wip-us.apache.org/repos/asf/celix/blob/57f16935/libs/utils/src/properties.c
----------------------------------------------------------------------
diff --git a/libs/utils/src/properties.c b/libs/utils/src/properties.c
index 0160adb..2b3daab 100644
--- a/libs/utils/src/properties.c
+++ b/libs/utils/src/properties.c
@@ -31,6 +31,8 @@
#include "properties.h"
#include "celix_properties.h"
#include "utils.h"
+#include <errno.h>
+
#define MALLOC_BLOCK_SIZE 5
@@ -381,11 +383,12 @@ long celix_properties_getAsLong(const celix_properties_t *props, const char *key
long result = defaultValue;
const char *val = celix_properties_get(props, key, NULL);
if (val != NULL) {
- long r = strtol(val, NULL, 10);
- if (errno == 0) {
- result = r;
- }
+ char *enptr = NULL;
errno = 0;
+ long r = strtol(val, &enptr, 10);
+ if (enptr != val && errno == 0) {
+ result = r;
+ }
}
return result;
}