Added default file loading also to pclCreatePath function; fixed bugs 199 and 203
[profile/ivi/persistence-client-library.git] / test / persistence_client_library_test.c
index 0e187aa..18d0dbf 100644 (file)
@@ -10,7 +10,6 @@
 ******************************************************************************/
  /**
  * @file           persistence_client_library_test.c
- * @ingroup        Persistence client library test
  * @author         Ingo Huerner
  * @brief          Test of persistence client library
  * @see            
 #include <dlt/dlt.h>
 #include <dlt/dlt_common.h>
 
-#include "persCheck_0.9.9.h"
+#include "persCheck.h"
 
 
 #include "../include/persistence_client_library_file.h"
 #include "../include/persistence_client_library_key.h"
 #include "../include/persistence_client_library.h"
+#include "../include/persistence_client_library_error_def.h"
 
 
-// protected header, should be used only be persistence components
-// included here for testing purpose
-#include "../include_protected/persistence_client_library_db_access.h"
-
 
 #define BUF_SIZE     64
 #define NUM_OF_FILES 3
 #define READ_SIZE    1024
+#define MaxAppNameLen 256
 
 /// application id
 char gTheAppId[MaxAppNameLen] = {0};
@@ -51,14 +48,18 @@ char gTheAppId[MaxAppNameLen] = {0};
 // definition of weekday
 char* dayOfWeek[] = { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
 
+int myChangeCallback(pclNotification_s * notifyStruct)
+{
+   printf(" ==> * - * myChangeCallback * - *\n");
 
-
+   return 1;
+}
 /**
  * Test the key value interface using different logicalDB id's, users and seats.
  * Each resource below has an entry in the resource configuration table where the
  * storage location (cached or write through) and type (e.g. custom) has been configured.
  */
-START_TEST (test_GetData)
+START_TEST(test_GetData)
 {
    X_TEST_REPORT_TEST_NAME("persistence_client_library_test");
    X_TEST_REPORT_COMP_NAME("libpersistence_client_library");
@@ -72,7 +73,7 @@ START_TEST (test_GetData)
    unsigned char buffer[READ_SIZE] = {0};
 
    ret = pclInitLibrary(gTheAppId, shutdownReg);
-   fail_unless(ret <= 1, "Failed to init PCL");
+   x_fail_unless(ret <= 1, "Failed to init PCL");
 
 #if 1
    /**
@@ -80,9 +81,9 @@ START_TEST (test_GetData)
     *       ==> local value accessible by all users (user 0, seat 0)
     */
    ret = pclKeyReadData(0xFF, "pos/last_position",         0, 0, buffer, READ_SIZE);
-   fail_unless(strncmp((char*)buffer, "CACHE_ +48° 10' 38.95\", +8° 44' 39.06\"",
+   x_fail_unless(strncmp((char*)buffer, "CACHE_ +48° 10' 38.95\", +8° 44' 39.06\"",
                strlen((char*)buffer)) == 0, "Buffer not correctly read");
-   fail_unless(ret = strlen("CACHE_ +48° 10' 38.95\", +8° 44' 39.06\""));
+   x_fail_unless(ret = strlen("CACHE_ +48° 10' 38.95\", +8° 44' 39.06\""));
 
    memset(buffer, 0, READ_SIZE);
 
@@ -90,12 +91,14 @@ START_TEST (test_GetData)
     * Logical DB ID: 0xFF with user 0 and seat 0
     *       ==> local value accessible by all users (user 0, seat 0)
     */
+   /*
    ret = pclKeyReadData(0xFF, "language/country_code",         0, 0, buffer, READ_SIZE);
-   fail_unless(strncmp((char*)buffer, "Custom plugin -> plugin_get_data: secure!",
+   x_fail_unless(strncmp((char*)buffer, "Custom plugin -> plugin_get_data: secure!",
                strlen((char*)buffer)) == 0, "Buffer not correctly read");
-   fail_unless(ret = strlen("Custom plugin -> plugin_get_data_handle"));
+   x_fail_unless(ret = strlen("Custom plugin -> plugin_get_data_handle"));
 
    memset(buffer, 0, READ_SIZE);
+   */
 
 
    /**
@@ -103,7 +106,7 @@ START_TEST (test_GetData)
     *       ==> public shared user value (user 3, seat 0)
     */
    ret = pclKeyReadData(0,    "language/current_language", 3, 0, buffer, READ_SIZE);
-   fail_unless(strncmp((char*)buffer, "CACHE_ Kisuaheli", strlen((char*)buffer)) == 0, "Buffer not correctly read");
+   x_fail_unless(strncmp((char*)buffer, "CACHE_ Kisuaheli", strlen((char*)buffer)) == 0, "Buffer not correctly read");
 
    memset(buffer, 0, READ_SIZE);
 
@@ -112,7 +115,7 @@ START_TEST (test_GetData)
     *       ==> local USER value (user 3, seat 2)
     */
    ret = pclKeyReadData(0xFF, "status/open_document",      3, 2, buffer, READ_SIZE);
-   fail_unless(strncmp((char*)buffer, "WT_ /var/opt/user_manual_climateControl.pdf", strlen((char*)buffer)) == 0, "Buffer not correctly read");
+   x_fail_unless(strncmp((char*)buffer, "WT_ /var/opt/user_manual_climateControl.pdf", strlen((char*)buffer)) == 0, "Buffer not correctly read");
 
    memset(buffer, 0, READ_SIZE);
 
@@ -121,7 +124,7 @@ START_TEST (test_GetData)
     *       ==> shared user value accessible by a group (user 4 and seat 0)
     */
    ret = pclKeyReadData(0x20, "address/home_address",      4, 0, buffer, READ_SIZE);
-   fail_unless(strncmp((char*)buffer, "WT_ 55327 Heimatstadt, Wohnstrasse 31", strlen((char*)buffer)) == 0, "Buffer not correctly read");
+   x_fail_unless(strncmp((char*)buffer, "WT_ 55327 Heimatstadt, Wohnstrasse 31", strlen((char*)buffer)) == 0, "Buffer not correctly read");
 
    memset(buffer, 0, READ_SIZE);
 
@@ -130,7 +133,7 @@ START_TEST (test_GetData)
     *       ==> local value accessible by ALL USERS (user 0, seat 0)
     */
    ret = pclKeyReadData(0xFF, "pos/last_satellites",       0, 0, buffer, READ_SIZE);
-   fail_unless(strncmp((char*)buffer, "WT_ 17", strlen((char*)buffer)) == 0, "Buffer not correctly read");
+   x_fail_unless(strncmp((char*)buffer, "WT_ 17", strlen((char*)buffer)) == 0, "Buffer not correctly read");
 
    memset(buffer, 0, READ_SIZE);
 
@@ -139,7 +142,7 @@ START_TEST (test_GetData)
     *       ==> shared user value accessible by A GROUP (user 4 and seat 0)
     */
    ret = pclKeyReadData(0x84, "links/last_link",           2, 0, buffer, READ_SIZE);
-   fail_unless(strncmp((char*)buffer, "CACHE_ /last_exit/brooklyn", strlen((char*)buffer)) == 0, "Buffer not correctly read");
+   x_fail_unless(strncmp((char*)buffer, "CACHE_ /last_exit/brooklyn", strlen((char*)buffer)) == 0, "Buffer not correctly read");
 
    memset(buffer, 0, READ_SIZE);
 
@@ -148,7 +151,7 @@ START_TEST (test_GetData)
     *       ==> local merge value
     */
    ret = pclKeyReadData(0x84, "links/last_link",           2, 1, buffer, READ_SIZE);
-   fail_unless(strncmp((char*)buffer, "CACHE_ /last_exit/queens", strlen((char*)buffer)) == 0, "Buffer not correctly read");
+   x_fail_unless(strncmp((char*)buffer, "CACHE_ /last_exit/queens", strlen((char*)buffer)) == 0, "Buffer not correctly read");
 #endif
    pclDeinitLibrary();
 }
@@ -178,7 +181,7 @@ START_TEST (test_GetDataHandle)
    char sysTimeBuffer[128];
 
    ret = pclInitLibrary(gTheAppId, shutdownReg);
-   fail_unless(ret <= 1, "Failed to init PCL");
+   x_fail_unless(ret <= 1, "Failed to init PCL");
 #if 1
    time_t t = time(0);
 
@@ -194,13 +197,14 @@ START_TEST (test_GetDataHandle)
     *       ==> local value accessible by ALL USERS (user 0, seat 0)
     */
    handle = pclKeyHandleOpen(0xFF, "posHandle/last_position", 0, 0);
-   fail_unless(handle >= 0, "Failed to open handle ==> /posHandle/last_position");
+   x_fail_unless(handle >= 0, "Failed to open handle ==> /posHandle/last_position");
 
    ret = pclKeyHandleReadData(handle, buffer, READ_SIZE);
-   fail_unless(strncmp((char*)buffer, "WT_ H A N D L E: +48° 10' 38.95\", +8° 44' 39.06\"", ret-1) == 0, "Buffer not correctly read => 1");
+   printf("* * * * * => => => B U F F E R : \"%s\"\n", buffer);
+   x_fail_unless(strncmp((char*)buffer, "WT_ H A N D L E: +48° 10' 38.95\", +8° 44' 39.06\"", ret-1) == 0, "Buffer not correctly read => 1");
 
    size = pclKeyHandleGetSize(handle);
-   fail_unless(size == strlen("WT_ H A N D L E: +48° 10' 38.95\", +8° 44' 39.06\""));
+   x_fail_unless(size == strlen("WT_ H A N D L E: +48° 10' 38.95\", +8° 44' 39.06\""));
    // ---------------------------------------------------------------------------------------------
 
 
@@ -210,10 +214,10 @@ START_TEST (test_GetDataHandle)
     *       ==> local USER value (user 3, seat 2)
     */
    handle2 = pclKeyHandleOpen(0xFF, "statusHandle/open_document", 3, 2);
-   fail_unless(handle2 >= 0, "Failed to open handle /statusHandle/open_document");
+   x_fail_unless(handle2 >= 0, "Failed to open handle /statusHandle/open_document");
 
    size = pclKeyHandleWriteData(handle2, (unsigned char*)sysTimeBuffer, strlen(sysTimeBuffer));
-   fail_unless(size == strlen(sysTimeBuffer));
+   x_fail_unless(size == strlen(sysTimeBuffer));
    // close
    ret = pclKeyHandleClose(handle2);
    // ---------------------------------------------------------------------------------------------
@@ -228,13 +232,13 @@ START_TEST (test_GetDataHandle)
    memset(buffer, 0, READ_SIZE);
    handle4 = pclKeyHandleOpen(0xFF, "language/country_code", 0, 0);
    printf("H A N D L E: %d\n", handle4);
-   fail_unless(handle4 >= 0, "Failed to open handle /language/country_code");
+   x_fail_unless(handle4 >= 0, "Failed to open handle /language/country_code");
 
    ret = pclKeyHandleReadData(handle4, buffer, READ_SIZE);
-   fail_unless(strncmp((char*)buffer, "Custom plugin -> plugin_get_data_handle: secure!", -1) == 0, "Buffer not correctly read => 2");
+   x_fail_unless(strncmp((char*)buffer, "Custom plugin -> plugin_get_data_handle: secure!", -1) == 0, "Buffer not correctly read => 2");
 
    size = pclKeyHandleGetSize(handle4);
-   fail_unless(size = strlen("Custom plugin -> plugin_get_data_handle"));
+   x_fail_unless(size = strlen("Custom plugin -> plugin_get_data_handle"));
 
    ret = pclKeyHandleWriteData(handle4, (unsigned char*)"Only dummy implementation behind custom library", READ_SIZE);
 #endif
@@ -247,13 +251,13 @@ START_TEST (test_GetDataHandle)
     *       ==> local USER value (user 3, seat 2)
     */
    handle3 = pclKeyHandleOpen(0xFF, "statusHandle/open_document", 3, 2);
-   fail_unless(handle3 >= 0, "Failed to open handle /statusHandle/open_document");
+   x_fail_unless(handle3 >= 0, "Failed to open handle /statusHandle/open_document");
 
    ret = pclKeyHandleReadData(handle3, buffer, READ_SIZE);
-   fail_unless(strncmp((char*)buffer, sysTimeBuffer, strlen(sysTimeBuffer)) == 0, "Buffer not correctly read => 3");
+   x_fail_unless(strncmp((char*)buffer, sysTimeBuffer, strlen(sysTimeBuffer)) == 0, "Buffer not correctly read => 3");
 
    size = pclKeyHandleGetSize(handle3);
-   fail_unless(size = strlen(sysTimeBuffer));
+   x_fail_unless(size = strlen(sysTimeBuffer));
    // ---------------------------------------------------------------------------------------------
 
 
@@ -290,7 +294,24 @@ START_TEST(test_SetData)
    struct tm *locTime;
 
    ret = pclInitLibrary(gTheAppId, shutdownReg);
-   fail_unless(ret <= 1, "Failed to init PCL");
+   x_fail_unless(ret <= 1, "Failed to init PCL");
+
+#if 1
+   /**
+    * Logical DB ID: 0xFF with user 3 and seat 2
+    *       ==> local USER value (user 3, seat 2)
+    */
+   ret = pclKeyWriteData(0xFF, "status/open_document",      3, 2, "WT_ /var/opt/user_manual_climateControl.pdf", strlen("WT_ /var/opt/user_manual_climateControl.pdf"));
+   x_fail_unless(ret == strlen("WT_ /var/opt/user_manual_climateControl.pdf"), "Wrong write size");
+
+
+   ret = pclKeyWriteData(0x84, "links/last_link",      2, 1, "CACHE_ /last_exit/queens", strlen("CACHE_ /last_exit/queens"));
+   x_fail_unless(ret == strlen("CACHE_ /last_exit/queens"), "Wrong write size");
+
+   ret = pclKeyWriteData(0xFF, "posHandle/last_position", 0, 0, "WT_ H A N D L E: +48° 10' 38.95\", +8° 44' 39.06\"", strlen("WT_ H A N D L E: +48° 10' 38.95\", +8° 44' 39.06\""));
+   x_fail_unless(ret == strlen("WT_ H A N D L E: +48° 10' 38.95\", +8° 44' 39.06\""), "Wrong write size");
+#endif
+
 #if 1
    time_t t = time(0);
 
@@ -305,9 +326,8 @@ START_TEST(test_SetData)
     *       ==> local USER value (user 1, seat 2)
     * Resource ID: 69
     */
-
    ret = pclKeyWriteData(0xFF, "69", 1, 2, (unsigned char*)sysTimeBuffer, strlen(sysTimeBuffer));
-   fail_unless(ret == strlen(sysTimeBuffer), "Wrong write size");
+   x_fail_unless(ret == strlen(sysTimeBuffer), "Wrong write size");
 #if 1
    snprintf(write1, 128, "%s %s", "/70",  sysTimeBuffer);
    /**
@@ -316,7 +336,7 @@ START_TEST(test_SetData)
     * Resource ID: 70
     */
    ret = pclKeyWriteData(0xFF, "70", 1, 2, (unsigned char*)write1, strlen(write1));
-   fail_unless(ret == strlen(write1), "Wrong write size");
+   x_fail_unless(ret == strlen(write1), "Wrong write size");
 
    snprintf(write2, 128, "%s %s", "/key_70",  sysTimeBuffer);
    /**
@@ -325,7 +345,7 @@ START_TEST(test_SetData)
     * Resource ID: key_70
     */
    ret = pclKeyWriteData(0xFF, "key_70", 1, 2, (unsigned char*)write2, strlen(write2));
-   fail_unless(ret == strlen(write2), "Wrong write size");
+   x_fail_unless(ret == strlen(write2), "Wrong write size");
 
 
    /*******************************************************************************************************************************************/
@@ -339,7 +359,7 @@ START_TEST(test_SetData)
     */
    //printf("Write data to trigger change notification\n");
    ret = pclKeyWriteData(0x84, "links/last_link2",  2, 1, (unsigned char*)"Test notify shared data", strlen("Test notify shared data"));
-   fail_unless(ret == strlen("Test notify shared data"), "Wrong write size");
+   x_fail_unless(ret == strlen("Test notify shared data"), "Wrong write size");
 
    /**
     * Logical DB ID: 0x84 with user 2 and seat 1
@@ -349,7 +369,7 @@ START_TEST(test_SetData)
     */
    //printf("Write data to trigger change notification\n");
    ret = pclKeyWriteData(0x84, "links/last_link3",  3, 2, (unsigned char*)"Test notify shared data", strlen("Test notify shared data"));
-   fail_unless(ret == strlen("Test notify shared data"), "Wrong write size");
+   x_fail_unless(ret == strlen("Test notify shared data"), "Wrong write size");
 
    /**
     * Logical DB ID: 0x84 with user 2 and seat 1
@@ -359,7 +379,7 @@ START_TEST(test_SetData)
     */
    //printf("Write data to trigger change notification\n");
    ret = pclKeyWriteData(0x84, "links/last_link4",  4, 1, (unsigned char*)"Test notify shared data", strlen("Test notify shared data"));
-   fail_unless(ret == strlen("Test notify shared data"), "Wrong write size");
+   x_fail_unless(ret == strlen("Test notify shared data"), "Wrong write size");
    /*******************************************************************************************************************************************/
    /*******************************************************************************************************************************************/
 
@@ -371,20 +391,20 @@ START_TEST(test_SetData)
    memset(buffer, 0, READ_SIZE);
 
    ret = pclKeyReadData(0xFF, "69", 1, 2, buffer, READ_SIZE);
-   fail_unless(strncmp((char*)buffer, sysTimeBuffer, strlen(sysTimeBuffer)) == 0, "Buffer not correctly read");
-   fail_unless(ret == strlen(sysTimeBuffer), "Wrong read size");
+   x_fail_unless(strncmp((char*)buffer, sysTimeBuffer, strlen(sysTimeBuffer)) == 0, "Buffer not correctly read");
+   x_fail_unless(ret == strlen(sysTimeBuffer), "Wrong read size");
 
    memset(buffer, 0, READ_SIZE);
 
    ret = pclKeyReadData(0xFF, "70", 1, 2, buffer, READ_SIZE);
-   fail_unless(strncmp((char*)buffer, write1, strlen(write1)) == 0, "Buffer not correctly read");
-   fail_unless(ret == strlen(write1), "Wrong read size");
+   x_fail_unless(strncmp((char*)buffer, write1, strlen(write1)) == 0, "Buffer not correctly read");
+   x_fail_unless(ret == strlen(write1), "Wrong read size");
 
    memset(buffer, 0, READ_SIZE);
 
    ret = pclKeyReadData(0xFF, "key_70", 1, 2, buffer, READ_SIZE);
-   fail_unless(strncmp((char*)buffer, write2, strlen(write2)) == 0, "Buffer not correctly read");
-   fail_unless(ret == strlen(write2), "Wrong read size");
+   x_fail_unless(strncmp((char*)buffer, write2, strlen(write2)) == 0, "Buffer not correctly read");
+   x_fail_unless(ret == strlen(write2), "Wrong read size");
 #endif
 #endif
    pclDeinitLibrary();
@@ -412,7 +432,7 @@ START_TEST(test_SetDataNoPRCT)
    struct tm *locTime;
 
    ret = pclInitLibrary(gTheAppId, shutdownReg);
-   fail_unless(ret <= 1, "Failed to init PCL");
+   x_fail_unless(ret <= 1, "Failed to init PCL");
 #if 1
    time_t t = time(0);
 
@@ -428,15 +448,15 @@ START_TEST(test_SetDataNoPRCT)
     *       ==> local USER value (user 1, seat 2)
     */
    ret = pclKeyWriteData(0xFF, "NoPRCT", 1, 2, (unsigned char*)sysTimeBuffer, strlen(sysTimeBuffer));
-   fail_unless(ret == strlen(sysTimeBuffer), "Wrong write size");
+   x_fail_unless(ret == strlen(sysTimeBuffer), "Wrong write size");
    //printf("Write Buffer : %s\n", sysTimeBuffer);
 
    // read data again and and verify datat has been written correctly
    memset(buffer, 0, READ_SIZE);
 
    ret = pclKeyReadData(0xFF, "NoPRCT", 1, 2, buffer, READ_SIZE);
-   fail_unless(strncmp((char*)buffer, sysTimeBuffer, strlen(sysTimeBuffer)) == 0, "Buffer not correctly read");
-   fail_unless(ret == strlen(sysTimeBuffer), "Wrong read size");
+   x_fail_unless(strncmp((char*)buffer, sysTimeBuffer, strlen(sysTimeBuffer)) == 0, "Buffer not correctly read");
+   x_fail_unless(ret == strlen(sysTimeBuffer), "Wrong read size");
    //printf("read buffer  : %s\n", buffer);
 #endif
    pclDeinitLibrary();
@@ -462,14 +482,14 @@ START_TEST(test_GetDataSize)
    unsigned int shutdownReg = PCL_SHUTDOWN_TYPE_FAST | PCL_SHUTDOWN_TYPE_NORMAL;
 
    ret = pclInitLibrary(gTheAppId, shutdownReg);
-   fail_unless(ret <= 1, "Failed to init PCL");
+   x_fail_unless(ret <= 1, "Failed to init PCL");
 #if 1
    /**
     * Logical DB ID: 0xFF with user 3 and seat 2
     *       ==> local USER value (user 3, seat 2)
     */
    size = pclKeyGetSize(0xFF, "status/open_document", 3, 2);
-   fail_unless(size == strlen("WT_ /var/opt/user_manual_climateControl.pdf"), "Invalid size");
+   x_fail_unless(size == strlen("WT_ /var/opt/user_manual_climateControl.pdf"), "Invalid size");
 
 
    /**
@@ -477,7 +497,7 @@ START_TEST(test_GetDataSize)
     *       ==> shared user value accessible by A GROUP (user 2 and seat 1)
     */
    size = pclKeyGetSize(0x84, "links/last_link", 2, 1);
-   fail_unless(size == strlen("CACHE_ /last_exit/queens"), "Invalid size");
+   x_fail_unless(size == strlen("CACHE_ /last_exit/queens"), "Invalid size");
 #endif
    pclDeinitLibrary();
 }
@@ -502,33 +522,33 @@ START_TEST(test_DeleteData)
    unsigned int shutdownReg = PCL_SHUTDOWN_TYPE_FAST | PCL_SHUTDOWN_TYPE_NORMAL;
 
    rval = pclInitLibrary(gTheAppId, shutdownReg);
-   fail_unless(rval <= 1, "Failed to init PCL");
+   x_fail_unless(rval <= 1, "Failed to init PCL");
 #if 1
    // read data from key
    rval = pclKeyReadData(0xFF, "key_70", 1, 2, buffer, READ_SIZE);
-   fail_unless(rval != EPERS_NOKEY, "Read form key key_70 fails");
+   x_fail_unless(rval != EPERS_NOKEY, "Read form key key_70 fails");
 
    // delete key
    rval = pclKeyDelete(0xFF, "key_70", 1, 2);
-   fail_unless(rval == 0, "Failed to delete key");
+   x_fail_unless(rval >= 0, "Failed to delete key");
 
    // after deleting the key, reading from key must fail now!
    rval = pclKeyReadData(0xFF, "key_70", 1, 2, buffer, READ_SIZE);
-   fail_unless(rval == EPERS_NOKEY, "Read form key key_70 works, but should fail");
+   x_fail_unless(rval == EPERS_NOKEY, "Read form key key_70 works, but should fail");
 
 
 
    // read data from key
    rval = pclKeyReadData(0xFF, "70", 1, 2, buffer, READ_SIZE);
-   fail_unless(rval != EPERS_NOKEY, "Read form key 70 fails");
+   x_fail_unless(rval != EPERS_NOKEY, "Read form key 70 fails");
 
    // delete key
    rval = pclKeyDelete(0xFF, "70", 1, 2);
-   fail_unless(rval == 0, "Failed to delete key");
+   x_fail_unless(rval >= 0, "Failed to delete key");
 
    // after deleting the key, reading from key must fail now!
    rval = pclKeyReadData(0xFF, "70", 1, 2, buffer, READ_SIZE);
-   fail_unless(rval == EPERS_NOKEY, "Read form key 70 works, but should fail");
+   x_fail_unless(rval == EPERS_NOKEY, "Read form key 70 works, but should fail");
 #endif
    pclDeinitLibrary();
 }
@@ -563,7 +583,7 @@ START_TEST(test_DataFile)
    char* fileMap = NULL;
 
    ret = pclInitLibrary(gTheAppId, shutdownReg);
-   fail_unless(ret <= 1, "Failed to init PCL");
+   x_fail_unless(ret <= 1, "Failed to init PCL");
 #if 1
    writeBuffer = malloc(writeSize);
 
@@ -587,55 +607,52 @@ START_TEST(test_DataFile)
 
    // open ------------------------------------------------------------
    fd = pclFileOpen(0xFF, "media/mediaDB.db", 1, 1);
-   fail_unless(fd != -1, "Could not open file ==> /media/mediaDB.db");
+   x_fail_unless(fd != -1, "Could not open file ==> /media/mediaDB.db");
 
    size = pclFileGetSize(fd);
-   fail_unless(size == 68, "Wrong file size");
+   x_fail_unless(size == 68, "Wrong file size");
 
    size = pclFileReadData(fd, buffer, READ_SIZE);
-   fail_unless(strncmp((char*)buffer, refBuffer, strlen(refBuffer)) == 0, "Buffer not correctly read => media/mediaDB.db");
-   fail_unless(size == (strlen(refBuffer)+1), "Wrong size returned");      // strlen + 1 ==> inlcude cr/lf
-
+   x_fail_unless(strncmp((char*)buffer, refBuffer, strlen(refBuffer)) == 0, "Buffer not correctly read => media/mediaDB.db");
+   x_fail_unless(size == (strlen(refBuffer)+1), "Wrong size returned");      // strlen + 1 ==> inlcude cr/lf
 
    ret = pclFileClose(fd);
-   fail_unless(ret == 0, "Failed to close file");
+   x_fail_unless(ret == 0, "Failed to close file");
 
    // open ------------------------------------------------------------
    fd = pclFileOpen(0xFF, "media/mediaDBWrite.db", 1, 1);
-   fail_unless(fd != -1, "Could not open file ==> /media/mediaDBWrite.db");
+   x_fail_unless(fd != -1, "Could not open file ==> /media/mediaDBWrite.db");
 
    size = pclFileWriteData(fd, writeBuffer, strlen(writeBuffer));
-   fail_unless(size == strlen(writeBuffer), "Failed to write data");
-
+   x_fail_unless(size == strlen(writeBuffer), "Failed to write data");
    ret = pclFileClose(fd);
-   fail_unless(ret == 0, "Failed to close file");
-
+   x_fail_unless(ret == 0, "Failed to close file");
 
    // remove ----------------------------------------------------------
    ret = pclFileRemove(0xFF, "media/mediaDBWrite.db", 1, 1);
-   fail_unless(ret == 0, "File can't be removed ==> /media/mediaDBWrite.db");
+   x_fail_unless(ret == 0, "File can't be removed ==> /media/mediaDBWrite.db");
 
    fd = open("/Data/mnt-wt/lt-persistence_client_library_test/user/1/seat/1/media/mediaDBWrite.db",O_RDWR);
-   fail_unless(fd == -1, "Failed to remove file, file still exists");
+   x_fail_unless(fd == -1, "Failed to remove file, file still exists");
    close(fd);
 
-
    // map file --------------------------------------------------------
+
    fd = pclFileOpen(0xFF, "media/mediaDB.db", 1, 1);
 
    size = pclFileGetSize(fd);
    pclFileMapData(fileMap, size, 0, fd);
-   fail_unless(fileMap != MAP_FAILED, "Failed to map file");
+   x_fail_unless(fileMap != MAP_FAILED, "Failed to map file");
 
    ret = pclFileUnmapData(fileMap, size);
-   fail_unless(ret != -1, "Failed to unmap file");
+   x_fail_unless(ret != -1, "Failed to unmap file");
 
    // negative test
    size = pclFileGetSize(1024);
-   fail_unless(ret == 0, "Got size, but should not");
+   x_fail_unless(ret == 0, "Got size, but should not");
 
    ret = pclFileClose(fd);
-   fail_unless(ret == 0, "Failed to close file");
+   x_fail_unless(ret == 0, "Failed to close file");
 
    free(writeBuffer);
 #endif
@@ -661,14 +678,15 @@ START_TEST(test_DataFileRecovery)
    unsigned int shutdownReg = PCL_SHUTDOWN_TYPE_FAST | PCL_SHUTDOWN_TYPE_NORMAL;
 
    ret = pclInitLibrary(gTheAppId, shutdownReg);
-   fail_unless(ret <= 1, "Failed to init PCL");
+   x_fail_unless(ret <= 1, "Failed to init PCL");
 #if 1
+
    // test backup creation --------------------------------------------
    fd_RO = pclFileOpen(0xFF, "media/mediaDB_ReadOnly.db", 1, 1);
-   fail_unless(fd_RO != -1, "Could not open file ==> /media/mediaDB_ReadOnly.db");
+   x_fail_unless(fd_RO != -1, "Could not open file ==> /media/mediaDB_ReadOnly.db");
 
    fd_RW = pclFileOpen(0xFF, "media/mediaDB_ReadWrite.db", 1, 1);
-   fail_unless(fd_RW != -1, "Could not open file ==> /media/mediaDB_ReadWrite.db");
+   x_fail_unless(fd_RW != -1, "Could not open file ==> /media/mediaDB_ReadWrite.db");
    pclFileWriteData(fd_RW, wBuffer, strlen(wBuffer));
 
    ret = pclFileClose(fd_RW);
@@ -693,82 +711,83 @@ START_TEST(test_DataHandle)
    X_TEST_REPORT_DESCRIPTION("Test of data handle");
    X_TEST_REPORT_TYPE(GOOD);
 
-   int handle1 = 0, handle2 = 0, size = 0;
+   int handle1 = 0, handle2 = 0;
    int handleArray[4] = {0};
    int ret = 0;
    unsigned char buffer[READ_SIZE] = {0};
    unsigned int shutdownReg = PCL_SHUTDOWN_TYPE_FAST | PCL_SHUTDOWN_TYPE_NORMAL;
 
    ret = pclInitLibrary(gTheAppId, shutdownReg);
-   fail_unless(ret <= 1, "Failed to init PCL");
+   x_fail_unless(ret <= 1, "Failed to init PCL");
 #if 1
    // test file handles
    handle1 = pclFileOpen(0xFF, "media/mediaDB.db", 1, 1);
-   fail_unless(handle1 != -1, "Could not open file ==> /media/mediaDB.db");
+   x_fail_unless(handle1 != -1, "Could not open file ==> /media/mediaDB.db");
 
    ret = pclFileClose(handle1);
-   fail_unless(handle1 != -1, "Could not closefile ==> /media/mediaDB.db");
+   x_fail_unless(handle1 != -1, "Could not closefile ==> /media/mediaDB.db");
 
    ret = pclFileClose(1024);
-   fail_unless(ret == EPERS_MAXHANDLE, "Could close file, but should not!!");
+   x_fail_unless(ret == EPERS_MAXHANDLE, "Could close file, but should not!!");
 
    ret = pclFileClose(17);
-   fail_unless(ret == -1, "Could close file, but should not!!");
+   x_fail_unless(ret == -1, "Could close file, but should not!!");
 
    // test multiple handles
    handleArray[0] = pclFileOpen(0xFF, "media/mediaDB_write_01.db", 1, 1);
-   fail_unless(handle1 != -1, "Could not open file ==> /media/mediaDB_write_01.db");
+   x_fail_unless(handle1 != -1, "Could not open file ==> /media/mediaDB_write_01.db");
 
    handleArray[1] = pclFileOpen(0xFF, "media/mediaDB_write_02.db", 1, 1);
-   fail_unless(handle1 != -1, "Could not open file ==> /media/mediaDB_write_02.db");
+   x_fail_unless(handle1 != -1, "Could not open file ==> /media/mediaDB_write_02.db");
 
    handleArray[2] = pclFileOpen(0xFF, "media/mediaDB_write_03.db", 1, 1);
-   fail_unless(handle1 != -1, "Could not open file ==> /media/mediaDB_write_03.db");
+   x_fail_unless(handle1 != -1, "Could not open file ==> /media/mediaDB_write_03.db");
 
    handleArray[3] = pclFileOpen(0xFF, "media/mediaDB_write_04.db", 1, 1);
-   fail_unless(handle1 != -1, "Could not open file ==> /media/mediaDB_write_04.db");
+   x_fail_unless(handle1 != -1, "Could not open file ==> /media/mediaDB_write_04.db");
 
-   size = pclFileReadData(handleArray[0], buffer, READ_SIZE);
-   fail_unless(strncmp((char*)buffer, "/user/1/seat/1/media/mediaDB_write_01.db",
+   ret = pclFileReadData(handleArray[0], buffer, READ_SIZE);
+   x_fail_unless(ret >= 0, "Failed to read handle idx \"0\"!!");
+   x_fail_unless(strncmp((char*)buffer, "/user/1/seat/1/media/mediaDB_write_01.db",
          strlen("/user/1/seat/1/media/mediaDB_write_01.db"))
          == 0, "Buffer not correctly read => mediaDB_write_01.db");
 
-   size = pclFileReadData(handleArray[1], buffer, READ_SIZE);
-   fail_unless(strncmp((char*)buffer, "/user/1/seat/1/media/mediaDB_write_02.db",
+   ret = pclFileReadData(handleArray[1], buffer, READ_SIZE);
+   x_fail_unless(strncmp((char*)buffer, "/user/1/seat/1/media/mediaDB_write_02.db",
          strlen("/user/1/seat/1/media/mediaDB_write_02.db"))
          == 0, "Buffer not correctly read => mediaDB_write_02.db");
 
-   size = pclFileReadData(handleArray[2], buffer, READ_SIZE);
-   fail_unless(strncmp((char*)buffer, "/user/1/seat/1/media/mediaDB_write_03.db",
+   ret = pclFileReadData(handleArray[2], buffer, READ_SIZE);
+   x_fail_unless(strncmp((char*)buffer, "/user/1/seat/1/media/mediaDB_write_03.db",
          strlen("/user/1/seat/1/media/mediaDB_write_03.db"))
          == 0, "Buffer not correctly read => mediaDB_write_03.db");
 
-   size = pclFileReadData(handleArray[3], buffer, READ_SIZE);
-   fail_unless(strncmp((char*)buffer, "/user/1/seat/1/media/mediaDB_write_04.db",
+   (void)pclFileReadData(handleArray[3], buffer, READ_SIZE);
+   x_fail_unless(strncmp((char*)buffer, "/user/1/seat/1/media/mediaDB_write_04.db",
          strlen("/user/1/seat/1/media/mediaDB_write_04.db"))
          == 0, "Buffer not correctly read => mediaDB_write_04.db");
 
    ret = pclKeyHandleClose(handleArray[0]);
-   fail_unless(ret != -1, "Failed to close handle idx \"0\"!!");
+   x_fail_unless(ret != -1, "Failed to close handle idx \"0\"!!");
 
    ret = pclKeyHandleClose(handleArray[1]);
-   fail_unless(ret != -1, "Failed to close handle idx \"1\"!!");
+   x_fail_unless(ret != -1, "Failed to close handle idx \"1\"!!");
 
    ret = pclKeyHandleClose(handleArray[2]);
-   fail_unless(ret != -1, "Failed to close handle idx \"2\"!!");
+   x_fail_unless(ret != -1, "Failed to close handle idx \"2\"!!");
 
    ret = pclKeyHandleClose(handleArray[3]);
-   fail_unless(ret != -1, "Failed to close handle idx \"3\"!!");
+   x_fail_unless(ret != -1, "Failed to close handle idx \"3\"!!");
 
    // test key handles
    handle2 = pclKeyHandleOpen(0xFF, "statusHandle/open_document", 3, 2);
-   fail_unless(handle2 >= 0, "Failed to open handle /statusHandle/open_document");
+   x_fail_unless(handle2 >= 0, "Failed to open handle /statusHandle/open_document");
 
    ret = pclKeyHandleClose(handle2);
-   fail_unless(ret != -1, "Failed to close handle!!");
+   x_fail_unless(ret != -1, "Failed to close handle!!");
 
    ret = pclKeyHandleClose(1024);
-   fail_unless(ret == EPERS_MAXHANDLE, "Max handle!!");
+   x_fail_unless(ret == EPERS_MAXHANDLE, "Max handle!!");
 #endif
    pclDeinitLibrary();
 }
@@ -792,139 +811,65 @@ START_TEST(test_DataHandleOpen)
    unsigned int shutdownReg = PCL_SHUTDOWN_TYPE_FAST | PCL_SHUTDOWN_TYPE_NORMAL;
 
    ret = pclInitLibrary(gTheAppId, shutdownReg);
-   fail_unless(ret <= 1, "Failed to init PCL");
+   x_fail_unless(ret <= 1, "Failed to init PCL");
 #if 1
    // open handles ----------------------------------------------------
    hd1 = pclKeyHandleOpen(0xFF, "posHandle/last_position1", 0, 0);
-   fail_unless(hd1 == 1, "Failed to open handle ==> /posHandle/last_position1");
+   x_fail_unless(hd1 == 1, "Failed to open handle ==> /posHandle/last_position1");
 
    hd2 = pclKeyHandleOpen(0xFF, "posHandle/last_position2", 0, 0);
-   fail_unless(hd2 == 2, "Failed to open handle ==> /posHandle/last_position2");
+   x_fail_unless(hd2 == 2, "Failed to open handle ==> /posHandle/last_position2");
 
    hd3 = pclKeyHandleOpen(0xFF, "posHandle/last_position3", 0, 0);
-   fail_unless(hd3 == 3, "Failed to open handle ==> /posHandle/last_position3");
+   x_fail_unless(hd3 == 3, "Failed to open handle ==> /posHandle/last_position3");
 
    // close handles ---------------------------------------------------
    ret = pclKeyHandleClose(hd1);
-   fail_unless(ret != -1, "Failed to close handle!!");
+   x_fail_unless(ret != -1, "Failed to close handle!!");
 
    ret = pclKeyHandleClose(hd2);
-   fail_unless(ret != -1, "Failed to close handle!!");
+   x_fail_unless(ret != -1, "Failed to close handle!!");
 
    ret = pclKeyHandleClose(hd3);
-   fail_unless(ret != -1, "Failed to close handle!!");
+   x_fail_unless(ret != -1, "Failed to close handle!!");
 
    // open handles ----------------------------------------------------
    hd4 = pclKeyHandleOpen(0xFF, "posHandle/last_position4", 0, 0);
-   fail_unless(hd4 == 3, "Failed to open handle ==> /posHandle/last_position4");
+   x_fail_unless(hd4 == 3, "Failed to open handle ==> /posHandle/last_position4");
 
    hd5 = pclKeyHandleOpen(0xFF, "posHandle/last_position5", 0, 0);
-   fail_unless(hd5 == 2, "Failed to open handle ==> /posHandle/last_position5");
+   x_fail_unless(hd5 == 2, "Failed to open handle ==> /posHandle/last_position5");
 
    hd6 = pclKeyHandleOpen(0xFF, "posHandle/last_position6", 0, 0);
-   fail_unless(hd6 == 1, "Failed to open handle ==> /posHandle/last_position6");
+   x_fail_unless(hd6 == 1, "Failed to open handle ==> /posHandle/last_position6");
 
    hd7 = pclKeyHandleOpen(0xFF, "posHandle/last_position7", 0, 0);
-   fail_unless(hd7 == 4, "Failed to open handle ==> /posHandle/last_position7");
+   x_fail_unless(hd7 == 4, "Failed to open handle ==> /posHandle/last_position7");
 
    hd8 = pclKeyHandleOpen(0xFF, "posHandle/last_position8", 0, 0);
-   fail_unless(hd8 == 5, "Failed to open handle ==> /posHandle/last_position8");
+   x_fail_unless(hd8 == 5, "Failed to open handle ==> /posHandle/last_position8");
 
    hd9 = pclKeyHandleOpen(0xFF, "posHandle/last_position9", 0, 0);
-   fail_unless(hd9 == 6, "Failed to open handle ==> /posHandle/last_position9");
+   x_fail_unless(hd9 == 6, "Failed to open handle ==> /posHandle/last_position9");
 
    // close handles ---------------------------------------------------
    ret = pclKeyHandleClose(hd4);
-   fail_unless(ret != -1, "Failed to close handle!!");
+   x_fail_unless(ret != -1, "Failed to close handle!!");
 
    ret = pclKeyHandleClose(hd5);
-   fail_unless(ret != -1, "Failed to close handle!!");
+   x_fail_unless(ret != -1, "Failed to close handle!!");
 
    ret = pclKeyHandleClose(hd6);
-   fail_unless(ret != -1, "Failed to close handle!!");
+   x_fail_unless(ret != -1, "Failed to close handle!!");
 
    ret = pclKeyHandleClose(hd7);
-   fail_unless(ret != -1, "Failed to close handle!!");
+   x_fail_unless(ret != -1, "Failed to close handle!!");
 
    ret = pclKeyHandleClose(hd8);
-   fail_unless(ret != -1, "Failed to close handle!!");
+   x_fail_unless(ret != -1, "Failed to close handle!!");
 
    ret = pclKeyHandleClose(hd9);
-   fail_unless(ret != -1, "Failed to close handle!!");
-#endif
-   pclDeinitLibrary();
-}
-END_TEST
-
-
-
-/**
- * Test for  i n t e r n a l  structures.
- * Test the cursor functions.
- */
-START_TEST(test_Cursor)
-{
-   X_TEST_REPORT_TEST_NAME("persistence_client_library_test");
-   X_TEST_REPORT_COMP_NAME("libpersistence_client_library");
-   X_TEST_REPORT_REFERENCE("NONE");
-   X_TEST_REPORT_DESCRIPTION("Test of cursor");
-   X_TEST_REPORT_TYPE(GOOD);
-
-   int handle = -1, rval = 0, size = 0, handle1 = 0;
-   char bufferKeySrc[READ_SIZE]  = {0};
-   char bufferDataSrc[READ_SIZE] = {0};
-   char bufferKeyDst[READ_SIZE]  = {0};
-   char bufferDataDst[READ_SIZE] = {0};
-   unsigned int shutdownReg = PCL_SHUTDOWN_TYPE_FAST | PCL_SHUTDOWN_TYPE_NORMAL;
-
-   rval = pclInitLibrary(gTheAppId, shutdownReg);
-   fail_unless(rval <= 1, "Failed to init PCL");
-#if 1
-   // create cursor
-   handle = pers_db_cursor_create("/Data/mnt-c/lt-persistence_client_library_test/cached.itz");
-   fail_unless(handle != -1, "Failed to create cursor!!");
-
-   // create cursor
-   handle1 = pers_db_cursor_create("/Data/mnt-wt/lt-persistence_client_library_test/wt.itz");
-   fail_unless(handle1 != -1, "Failed to create cursor!!");
-
-   do
-   {
-      memset(bufferKeySrc, 0, READ_SIZE);
-      memset(bufferDataSrc, 0, READ_SIZE);
-      memset(bufferKeyDst, 0, READ_SIZE);
-      memset(bufferDataDst, 0, READ_SIZE);
-
-      // get key
-      rval = pers_db_cursor_get_key(handle, bufferKeySrc, 128);
-      fail_unless(rval != -1, "Cursor failed to get key!!");
-      // get data
-      rval = pers_db_cursor_get_data(handle, bufferDataSrc, 128);
-      fail_unless(rval != -1, "Cursor failed to get data!!");
-      // get size
-      size = pers_db_cursor_get_data_size(handle);
-      fail_unless(size != -1, "Cursor failed to get size!!");
-      //printf("1. Key: %s | Data: %s » Size: %d \n", bufferKeySrc, bufferDataSrc, size);
-
-      // get key
-      rval = pers_db_cursor_get_key(handle1, bufferKeyDst, 128);
-      fail_unless(rval != -1, "Cursor failed to get key!!");
-      // get data
-      rval = pers_db_cursor_get_data(handle1, bufferDataDst, 128);
-      fail_unless(rval != -1, "Cursor failed to get data!!");
-      // get size
-      size = pers_db_cursor_get_data_size(handle1);
-      fail_unless(size != -1, "Cursor failed to get size!!");
-      //printf("  2. Key: %s | Data: %s » Size: %d \n", bufferKeyDst, bufferDataDst, size);
-   }
-   while( (pers_db_cursor_next(handle) == 0) && (pers_db_cursor_next(handle1) == 0) ); // next cursor
-
-   // destory cursor
-   rval = pers_db_cursor_destroy(handle);
-   fail_unless(rval != -1, "Failed to destroy cursor!!");
-
-   rval = pers_db_cursor_destroy(handle1);
-   fail_unless(rval != -1, "Failed to destroy cursor!!");
+   x_fail_unless(ret != -1, "Failed to close handle!!");
 #endif
    pclDeinitLibrary();
 }
@@ -946,36 +891,36 @@ START_TEST(test_Plugin)
        unsigned int shutdownReg = PCL_SHUTDOWN_TYPE_FAST | PCL_SHUTDOWN_TYPE_NORMAL;
 
    ret = pclInitLibrary(gTheAppId, shutdownReg);
-   fail_unless(ret <= 1, "Failed to init PCL");
+   x_fail_unless(ret <= 1, "Failed to init PCL");
 #if 1
        ret = pclKeyReadData(0xFF, "language/country_code",           0, 0, buffer, READ_SIZE);
-       fail_unless(ret != EPERS_NOT_INITIALIZED);
-   fail_unless(strncmp((char*)buffer,"Custom plugin -> plugin_get_data: secure!",
+       x_fail_unless(ret != EPERS_NOT_INITIALIZED);
+   x_fail_unless(strncmp((char*)buffer,"Custom plugin -> plugin_get_data: secure!",
                strlen((char*)buffer)) == 0, "Buffer SECURE not correctly read");
 
 
        ret = pclKeyReadData(0xFF, "language/country_code_early",     0, 0, buffer, READ_SIZE);
-       fail_unless(ret != EPERS_NOT_INITIALIZED);
+       x_fail_unless(ret != EPERS_NOT_INITIALIZED);
        //printf("B U F F E R - early: %s\n", buffer);
-   fail_unless(strncmp((char*)buffer,"Custom plugin -> plugin_get_data: early!",
+   x_fail_unless(strncmp((char*)buffer,"Custom plugin -> plugin_get_data: early!",
                strlen((char*)buffer)) == 0, "Buffer EARLY not correctly read");
 
        ret = pclKeyReadData(0xFF, "language/country_code_emergency", 0, 0, buffer, READ_SIZE);
-       fail_unless(ret != EPERS_NOT_INITIALIZED);
+       x_fail_unless(ret != EPERS_NOT_INITIALIZED);
        //printf("B U F F E R - emergency: %s\n", buffer);
-   fail_unless(strncmp((char*)buffer,"Custom plugin -> plugin_get_data: emergency!",
+   x_fail_unless(strncmp((char*)buffer,"Custom plugin -> plugin_get_data: emergency!",
                strlen((char*)buffer)) == 0, "Buffer EMERGENCY not correctly read");
 
        ret = pclKeyReadData(0xFF, "language/info",                   0, 0, buffer, READ_SIZE);
-       fail_unless(ret != EPERS_NOT_INITIALIZED);
+       x_fail_unless(ret != EPERS_NOT_INITIALIZED);
        //printf("B U F F E R - hwinfo: %s\n", buffer);
-   fail_unless(strncmp((char*)buffer,"Custom plugin -> plugin_get_data: hwinfo!",
+   x_fail_unless(strncmp((char*)buffer,"Custom plugin -> plugin_get_data: hwinfo!",
                strlen((char*)buffer)) == 0, "Buffer HWINFO not correctly read");
 
    ret = pclKeyReadData(0xFF, "language/country_code_custom3",   0, 0, buffer, READ_SIZE);
-   fail_unless(ret != EPERS_NOT_INITIALIZED);
+   x_fail_unless(ret != EPERS_NOT_INITIALIZED);
    //printf("B U F F E R - hwinfo: %s\n", buffer);
-   fail_unless(strncmp((char*)buffer,"Custom plugin -> plugin_get_data: custom3!",
+   x_fail_unless(strncmp((char*)buffer,"Custom plugin -> plugin_get_data: custom3!",
                strlen((char*)buffer)) == 0, "Buffer CUSTOM 3 not correctly read");
 #endif
        pclDeinitLibrary();
@@ -1000,17 +945,17 @@ START_TEST(test_ReadDefault)
    unsigned int shutdownReg = PCL_SHUTDOWN_TYPE_FAST | PCL_SHUTDOWN_TYPE_NORMAL;
 
    ret = pclInitLibrary(gTheAppId, shutdownReg);
-   fail_unless(ret <= 1, "Failed to init PCL");
+   x_fail_unless(ret <= 1, "Failed to init PCL");
 #if 1
    ret = pclKeyReadData(0xFF, "statusHandle/default01", 3, 2, buffer, READ_SIZE);
-   fail_unless(ret != EPERS_NOT_INITIALIZED);
+   x_fail_unless(ret != EPERS_NOT_INITIALIZED);
    //printf("B U F F E R: %s\n", buffer);
-   fail_unless(strncmp((char*)buffer,"DEFAULT_01!", strlen((char*)buffer)) == 0, "Buffer not correctly read");
+   x_fail_unless(strncmp((char*)buffer,"DEFAULT_01!", strlen((char*)buffer)) == 0, "Buffer not correctly read");
 
    ret = pclKeyReadData(0xFF, "statusHandle/default02", 3, 2, buffer, READ_SIZE);
-   fail_unless(ret != EPERS_NOT_INITIALIZED);
+   x_fail_unless(ret != EPERS_NOT_INITIALIZED);
    //printf("B U F F E R: %s\n", buffer);
-   fail_unless(strncmp((char*)buffer,"DEFAULT_02!", strlen((char*)buffer)) == 0, "Buffer not correctly read");
+   x_fail_unless(strncmp((char*)buffer,"DEFAULT_02!", strlen((char*)buffer)) == 0, "Buffer not correctly read");
 #endif
    pclDeinitLibrary();
 }
@@ -1032,15 +977,15 @@ START_TEST(test_ReadConfDefault)
    unsigned int shutdownReg = PCL_SHUTDOWN_TYPE_FAST | PCL_SHUTDOWN_TYPE_NORMAL;
 
    ret = pclInitLibrary(gTheAppId, shutdownReg);
-   fail_unless(ret <= 1, "Failed to init PCL");
+   x_fail_unless(ret <= 1, "Failed to init PCL");
 #if 1
    ret = pclKeyReadData(0xFF, "statusHandle/confdefault01",     3, 2, buffer, READ_SIZE);
-   fail_unless(ret != EPERS_NOT_INITIALIZED);
-   fail_unless(strncmp((char*)buffer,"CONF_DEFAULT_01!", strlen((char*)buffer)) == 0, "Buffer not correctly read");
+   x_fail_unless(ret != EPERS_NOT_INITIALIZED);
+   x_fail_unless(strncmp((char*)buffer,"CONF_DEFAULT_01!", strlen((char*)buffer)) == 0, "Buffer not correctly read");
 
    ret = pclKeyReadData(0xFF, "statusHandle/confdefault02",     3, 2, buffer, READ_SIZE);
-   fail_unless(ret != EPERS_NOT_INITIALIZED);
-   fail_unless(strncmp((char*)buffer,"CONF_DEFAULT_02!", strlen((char*)buffer)) == 0, "Buffer not correctly read");
+   x_fail_unless(ret != EPERS_NOT_INITIALIZED);
+   x_fail_unless(strncmp((char*)buffer,"CONF_DEFAULT_02!", strlen((char*)buffer)) == 0, "Buffer not correctly read");
 #endif
    pclDeinitLibrary();
 }
@@ -1064,11 +1009,12 @@ START_TEST(test_GetPath)
    unsigned int shutdownReg = PCL_SHUTDOWN_TYPE_FAST | PCL_SHUTDOWN_TYPE_NORMAL;
 
    ret = pclInitLibrary(gTheAppId, shutdownReg);
-   fail_unless(ret <= 1, "Failed to init PCL");
+   x_fail_unless(ret <= 1, "Failed to init PCL");
 #if 1
    ret = pclFileCreatePath(0xFF, "media/mediaDB_create.db", 1, 1, &path, &pathSize);
-   fail_unless(strncmp((char*)path, thePath, strlen((char*)path)) == 0, "Path not correct");
-   fail_unless(pathSize == strlen((char*)path), "Path size not correct");
+
+   x_fail_unless(strncmp((char*)path, thePath, strlen((char*)path)) == 0, "Path not correct");
+   x_fail_unless(pathSize == strlen((char*)path), "Path size not correct");
 
    pclFileReleasePath(ret);
 #endif
@@ -1077,6 +1023,81 @@ START_TEST(test_GetPath)
 END_TEST
 
 
+
+START_TEST(test_InitDeinit)
+{
+   int i = 0;
+   unsigned int shutdownReg = PCL_SHUTDOWN_TYPE_FAST | PCL_SHUTDOWN_TYPE_NORMAL;
+
+   for(i=0; i< 3; i++)
+   {
+      // initialize and deinitialize 1. time
+      (void)pclInitLibrary(gTheAppId, shutdownReg);
+      pclDeinitLibrary();
+
+
+      // initialize and deinitialize 2. time
+      (void)pclInitLibrary(gTheAppId, shutdownReg);
+      pclDeinitLibrary();
+
+
+      // initialize and deinitialize 3. time
+      (void)pclInitLibrary(gTheAppId, shutdownReg);
+      pclDeinitLibrary();
+   }
+}
+END_TEST
+
+
+
+START_TEST(test_NegHandle)
+{
+   int handle = -1, ret = 0;;
+   int negativeHandle = -17;
+   unsigned int shutdownReg = PCL_SHUTDOWN_TYPE_FAST | PCL_SHUTDOWN_TYPE_NORMAL;
+
+   unsigned char buffer[128] = {0};
+
+   (void)pclInitLibrary(gTheAppId, shutdownReg);
+
+   handle = pclKeyHandleOpen(0xFF, "posHandle/last_position", 0, 0);
+   x_fail_unless(handle >= 0, "Failed to open handle ==> /posHandle/last_position");
+
+
+
+   ret = pclKeyHandleReadData(negativeHandle, buffer, READ_SIZE);
+   x_fail_unless(ret == EPERS_MAXHANDLE, "pclKeyHandleReadData => negative handle not detected");
+
+   ret = pclKeyHandleClose(negativeHandle);
+   x_fail_unless(ret == EPERS_MAXHANDLE, "pclKeyHandleClose => negative handle not detected");
+
+   ret = pclKeyHandleGetSize(negativeHandle);
+   x_fail_unless(ret == EPERS_MAXHANDLE, "pclKeyHandleGetSize => negative handle not detected");
+
+   ret = pclKeyHandleReadData(negativeHandle, buffer, 128);
+   x_fail_unless(ret == EPERS_MAXHANDLE, "pclKeyHandleReadData => negative handle not detected");
+
+   ret = pclKeyHandleRegisterNotifyOnChange(negativeHandle, &myChangeCallback);
+   x_fail_unless(ret == EPERS_MAXHANDLE, "pclKeyHandleRegisterNotifyOnChange => negative handle not detected");
+
+   ret = pclKeyHandleWriteData(negativeHandle, (unsigned char*)"Whatever", strlen("Whatever"));
+   x_fail_unless(ret == EPERS_MAXHANDLE, "pclKeyHandleWriteData => negative handle not detected");
+
+
+   // close handle
+   ret = pclKeyHandleClose(handle);
+
+   pclDeinitLibrary();
+}
+END_TEST
+
+
+
+
+
+
+
+
 static Suite * persistencyClientLib_suite()
 {
    Suite * s  = suite_create("Persistency client library");
@@ -1096,6 +1117,8 @@ static Suite * persistencyClientLib_suite()
    TCase * tc_persDeleteData = tcase_create("DeleteData");
    tcase_add_test(tc_persDeleteData, test_DeleteData);
 
+
+
    TCase * tc_persGetDataHandle = tcase_create("GetDataHandle");
    tcase_add_test(tc_persGetDataHandle, test_GetDataHandle);
 
@@ -1111,9 +1134,6 @@ static Suite * persistencyClientLib_suite()
    TCase * tc_persDataFileRecovery = tcase_create("DataFileRecovery");
    tcase_add_test(tc_persDataFileRecovery, test_DataFileRecovery);
 
-   TCase * tc_Cursor = tcase_create("Cursor");
-   tcase_add_test(tc_Cursor, test_Cursor);
-
    TCase * tc_Plugin = tcase_create("Plugin");
    tcase_add_test(tc_Plugin, test_Plugin);
 
@@ -1126,9 +1146,13 @@ static Suite * persistencyClientLib_suite()
    TCase * tc_GetPath = tcase_create("GetPath");
    tcase_add_test(tc_GetPath, test_GetPath);
 
-   suite_add_tcase(s, tc_persSetData);
+   TCase * tc_InitDeinit = tcase_create("InitDeinit");
+   tcase_add_test(tc_InitDeinit, test_InitDeinit);
 
-#if 1
+   TCase * tc_NegHandle = tcase_create("NegHandle");
+   tcase_add_test(tc_NegHandle, test_NegHandle);
+
+   suite_add_tcase(s, tc_persSetData);
    suite_add_tcase(s, tc_persGetData);
    suite_add_tcase(s, tc_persSetDataNoPRCT);
    suite_add_tcase(s, tc_persGetDataSize);
@@ -1138,12 +1162,14 @@ static Suite * persistencyClientLib_suite()
    suite_add_tcase(s, tc_persDataHandleOpen);
    suite_add_tcase(s, tc_persDataFile);
    suite_add_tcase(s, tc_persDataFileRecovery);
-   suite_add_tcase(s, tc_Cursor);
    suite_add_tcase(s, tc_ReadDefault);
    suite_add_tcase(s, tc_ReadConfDefault);
    suite_add_tcase(s, tc_GetPath);
-#endif
+   suite_add_tcase(s, tc_InitDeinit);
+   suite_add_tcase(s, tc_NegHandle);
+
    //suite_add_tcase(s, tc_Plugin); // activate only if the plugins are available
+
    return s;
 }
 
@@ -1152,8 +1178,8 @@ int main(int argc, char *argv[])
 {
    int nr_failed = 0,
           nr_run = 0,
-            fail = 0,
                i = 0;
+   //int fail = 0;
 
    TestResult** tResult;
 
@@ -1162,14 +1188,14 @@ int main(int argc, char *argv[])
    gTheAppId[MaxAppNameLen-1] = '\0';
 
    /// debug log and trace (DLT) setup
-   DLT_REGISTER_APP("test","tests the persistence client library");
+   DLT_REGISTER_APP("PCLt","tests the persistence client library");
 
 #if 1
    Suite * s = persistencyClientLib_suite();
    SRunner * sr = srunner_create(s);
    srunner_set_xml(sr, "/tmp/persistenceClientLibraryTest.xml");
    srunner_set_log(sr, "/tmp/persistenceClientLibraryTest.log");
-   srunner_run_all(sr, /*CK_NORMAL*/ CK_VERBOSE);
+   srunner_run_all(sr, CK_VERBOSE /*CK_NORMAL CK_VERBOSE*/);
 
    nr_failed = srunner_ntests_failed(sr);
    nr_run = srunner_ntests_run(sr);
@@ -1177,7 +1203,8 @@ int main(int argc, char *argv[])
    tResult = srunner_results(sr);
    for(i = 0; i< nr_run; i++)
    {
-      fail = tr_rtype(tResult[i]);  // get status of each test
+      (void)tr_rtype(tResult[i]);  // get status of each test
+      //fail = tr_rtype(tResult[i]);  // get status of each test
       //printf("[%d] Fail: %d \n", i, fail);
    }