summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIngo Huerner <ingo.huerner@xse.de>2014-11-28 20:03:47 +0100
committerIngo Huerner <ingo.huerner@xse.de>2014-11-28 20:03:47 +0100
commit0f556a6c4d93d4501a1e7b6ebb64a3d9f5f46716 (patch)
treeeea26cce9d746ecd6c58ecaf375c954e0c43f4eb
parent91b7686d94755190289cde6667f49bb7c34fa234 (diff)
downloadpersistence-client-library-0f556a6c4d93d4501a1e7b6ebb64a3d9f5f46716.tar.gz
Implemented missing handling of configurable default data for files
-rw-r--r--src/persistence_client_library_file.c8
-rw-r--r--test/data/PAS_data.tar.gzbin6688 -> 6949 bytes
-rw-r--r--test/persistence_client_library_test.c51
3 files changed, 56 insertions, 3 deletions
diff --git a/src/persistence_client_library_file.c b/src/persistence_client_library_file.c
index 0d038d8..1776f99 100644
--- a/src/persistence_client_library_file.c
+++ b/src/persistence_client_library_file.c
@@ -790,7 +790,13 @@ int pclFileGetDefaultData(int handle, const char* resource_id, int policy)
snprintf(pathPrefix, DbPathMaxLen, gLocalWtPath, gAppId);
}
- snprintf(defaultPath, DbPathMaxLen, "%s%s/%s", pathPrefix, PERS_ORG_DEFAULT_DATA_FOLDER_NAME_, resource_id);
+ // first check for c o n f i g u r a b l e default data
+ snprintf(defaultPath, DbPathMaxLen, "%s%s/%s", pathPrefix, PERS_ORG_CONFIG_DEFAULT_DATA_FOLDER_NAME_, resource_id);
+ if(access(defaultPath, F_OK) )
+ {
+ // if no c o n f i g u r a b l e default data available, check for d e f a u l t data
+ snprintf(defaultPath, DbPathMaxLen, "%s%s/%s", pathPrefix, PERS_ORG_DEFAULT_DATA_FOLDER_NAME_, resource_id);
+ }
defaultHandle = open(defaultPath, O_RDONLY);
if(defaultHandle != -1) // check if default data is available
diff --git a/test/data/PAS_data.tar.gz b/test/data/PAS_data.tar.gz
index ee9a96b..de372b5 100644
--- a/test/data/PAS_data.tar.gz
+++ b/test/data/PAS_data.tar.gz
Binary files differ
diff --git a/test/persistence_client_library_test.c b/test/persistence_client_library_test.c
index f9ad4af..98fd2c1 100644
--- a/test/persistence_client_library_test.c
+++ b/test/persistence_client_library_test.c
@@ -766,6 +766,36 @@ END_TEST
+START_TEST(test_DataFileConfDefault)
+{
+ int fd = 0, ret = 0;
+ char readBuffer[READ_SIZE] = {0};
+ char* refBuffer01 = "Some default file content: 01 Configurable default data 01.";
+ char* refBuffer02 = "Some default file content: 02 Configurable default data 02.";
+
+ // -- file interface ---
+ memset(readBuffer, 0, READ_SIZE);
+ fd = pclFileOpen(PCL_LDBID_LOCAL, "media/mediaData_01.configurable", 99, 99);
+ ret = pclFileReadData(fd, readBuffer, READ_SIZE);
+ printf("Size: %d - Soll:%d\n", ret, strlen(refBuffer01));
+ printf("READ BUFFER: \"%s\"\n", readBuffer);
+ fail_unless(strncmp(readBuffer, refBuffer01, strlen(refBuffer01)) == 0, "Buffer not correctly read => mediaData_01.configurable");
+
+ ret = pclFileClose(fd);
+
+
+ memset(readBuffer, 0, READ_SIZE);
+ fd = pclFileOpen(PCL_LDBID_LOCAL, "media/mediaData_02.configurable", 99, 99);
+ ret = pclFileReadData(fd, readBuffer, READ_SIZE);
+ fail_unless(strncmp(readBuffer, refBuffer02, strlen(refBuffer02)) == 0, "Buffer not correctly read => mediaData_01.configurable");
+
+ printf("READ BUFFER: %s\n", readBuffer);
+ ret = pclFileClose(fd);
+}
+END_TEST
+
+
+
void data_setupBackup(void)
{
int handle = -1;
@@ -1230,6 +1260,8 @@ START_TEST(test_WriteConfDefault)
unsigned char writeBuffer2[] = "And this is a test string which is different form previous test string";
unsigned char readBuffer[READ_SIZE] = {0};
+
+ // -- key-value interface ---
ret = pclKeyWriteData(PCL_LDBID_LOCAL, "statusHandle/writeconfdefault01", PCL_USER_DEFAULTDATA, 0, writeBuffer, strlen((char*)writeBuffer));
fail_unless(ret == strlen((char*)writeBuffer), "Write Conf default data: write size does not match");
ret = pclKeyReadData(PCL_LDBID_LOCAL, "statusHandle/writeconfdefault01", 3, 2, readBuffer, READ_SIZE);
@@ -1243,6 +1275,7 @@ START_TEST(test_WriteConfDefault)
ret = pclKeyReadData(PCL_LDBID_LOCAL, "statusHandle/writeconfdefault01", 3, 2, readBuffer, READ_SIZE);
fail_unless(strncmp((char*)readBuffer, (char*)writeBuffer2, strlen((char*)readBuffer)) == 0, "Buffer2 not correctly read");
//printf(" --- test_ReadConfDefault => statusHandle/writeconfdefault01: \"%s\" => \"%s\" \n retIst: %d retSoll: %d\n", readBuffer, writeBuffer2, ret, strlen((char*)writeBuffer2));
+
}
END_TEST
@@ -1522,10 +1555,13 @@ START_TEST(test_DbusInterface)
END_TEST
-
static Suite * persistencyClientLib_suite()
{
- Suite * s = suite_create("Persistency client library");
+ const char* testSuiteName = "Persistency_client_library";
+
+ Suite * s = suite_create(testSuiteName);
+
+ //setenv("CK_RUN_SUITE", testSuiteName, 1);
TCase * tc_persGetData = tcase_create("GetData");
tcase_add_test(tc_persGetData, test_GetData);
@@ -1563,6 +1599,10 @@ static Suite * persistencyClientLib_suite()
tcase_add_test(tc_persDataFile, test_DataFile);
tcase_set_timeout(tc_persDataFile, 2);
+ TCase * tc_DataFileConfDefault = tcase_create("DataFileConfDefault");
+ tcase_add_test(tc_DataFileConfDefault, test_DataFileConfDefault);
+ tcase_set_timeout(tc_DataFileConfDefault, 2);
+
TCase * tc_persDataFileBackupCreation = tcase_create("DataFileBackupCreation");
tcase_add_test(tc_persDataFileBackupCreation, test_DataFileBackupCreation);
tcase_set_timeout(tc_persDataFileBackupCreation, 1);
@@ -1619,6 +1659,8 @@ static Suite * persistencyClientLib_suite()
TCase * tc_VerifyROnly = tcase_create("VerifyROnly");
tcase_add_test(tc_VerifyROnly, test_VerifyROnly);
+
+
suite_add_tcase(s, tc_persSetData);
tcase_add_checked_fixture(tc_persSetData, data_setup, data_teardown);
@@ -1678,14 +1720,19 @@ static Suite * persistencyClientLib_suite()
suite_add_tcase(s, tc_VerifyROnly);
tcase_add_checked_fixture(tc_VerifyROnly, data_setup, data_teardown);
+ suite_add_tcase(s, tc_DataFileConfDefault);
+ tcase_add_checked_fixture(tc_DataFileConfDefault, data_setup, data_teardown);
+
#if USE_APPCHECK
suite_add_tcase(s, tc_ValidApplication);
#endif
suite_add_tcase(s, tc_InitDeinit);
+#if 0
suite_add_tcase(s, tc_DbusInterface);
tcase_add_checked_fixture(tc_DbusInterface, data_setup, data_teardown);
tcase_set_timeout(tc_DbusInterface, 10);
+#endif
return s;
}