tests/logsv/tet_log_longDN.c |  131 +++++++++++++++++++++++-------------------
 1 files changed, 73 insertions(+), 58 deletions(-)


Only test case #4 and #5 of suite #13 require long DN enabled in IMM.
If the long DN is enabled on running system, no need to enable it.

diff --git a/tests/logsv/tet_log_longDN.c b/tests/logsv/tet_log_longDN.c
--- a/tests/logsv/tet_log_longDN.c
+++ b/tests/logsv/tet_log_longDN.c
@@ -60,6 +60,7 @@ static char v_saLogStreamLogFileFormat[1
 static uint32_t v_saLogStreamFixedLogRecordSize = 200;
 static char v_saLogStreamFileName[256] = {0};
 static uint32_t v_longDnsAllowed = 0;
+static bool g_setLongDnsAllowed = false;
 
 typedef enum {
        E_ALARM,
@@ -103,6 +104,55 @@ SaConstStringT notificationObjDf = "Noti
 static void logWriteLogCallbackT(SaInvocationT invocation, SaAisErrorT error);
 static SaLogCallbacksT logCallbacksLd = { 0, 0, logWriteLogCallbackT };
 
+
+//>
+// Enable long DN in IMM it is not set on current system
+//
+// NOTE: Need long DN enabled in case of creating long DN in IMM.
+// means, test case #4 and #5 require this.
+//<
+static int enableLongDN(void)
+{
+       int rc;
+
+       // No need to enable if long DN is set on current system
+       if (v_longDnsAllowed != 0) return 0;
+
+       /* Enable long DN in IMM */
+       rc = system("immcfg -o safImmService -a longDnsAllowed=1 
opensafImm=opensafImm,safApp=safImmService");
+       if (WEXITSTATUS(rc) != 0) {
+               fprintf(stderr, "Failed to enable long DN \n");
+               return 1;
+       }
+
+       g_setLongDnsAllowed = true;
+       return 0;
+}
+
+//>
+// Restore the longDnsAllowed
+//<
+static void disableLongDN(void)
+{
+       int rc;
+       char command[MAX_DATA] = {0};
+
+       // No need to enable if long DN is set on current system
+       if (g_setLongDnsAllowed == false) return;
+
+       sprintf(command, "immcfg -o safImmService -a longDnsAllowed=%d 
opensafImm=opensafImm,safApp=safImmService",
+               v_logMaxLogrecsize);
+
+       /* Restore back to previous value */
+       rc = system(command);
+       if (WEXITSTATUS(rc) != 0) {
+               fprintf(stderr, "Failed to restore longDnsAllowed \n");
+               return;
+       }
+
+       g_setLongDnsAllowed = 0;
+}
+
 //>
 // Following attributes are backup before performing testing
 // logMaxLogrecsize;
@@ -115,12 +165,6 @@ static int backupData(stream_type_t type
 {
        int rc;
 
-       saAisNameLend(s_opensafImm, &sa_opensafImm);
-       rc = get_attr_value(&sa_opensafImm, "longDnsAllowed", 
&v_longDnsAllowed);
-       if (rc == -1) {
-               /* Failed, use default one */
-               fprintf(stderr, "Failed to get attribute longDnsAllowed value 
from IMM\n");
-       }
        rc = get_attr_value(&configurationObject, "logMaxLogrecsize", 
&v_logMaxLogrecsize);
        if (rc == -1) {
                /* Failed, use default one */
@@ -229,12 +273,6 @@ static int setUpTestEnv(stream_type_t ty
        int rc;
        char command[MAX_DATA];
 
-       /* Enable long DN feature */
-       rc = system("immcfg -m -a longDnsAllowed=1 
opensafImm=opensafImm,safApp=safImmService");
-       if (WEXITSTATUS(rc) != 0) {
-               fprintf(stderr, "Failed to enable long DN \n");
-               return -1;
-       }
        sprintf(command, "immcfg -a logMaxLogrecsize=%d "
                "logConfig=1,safApp=safLogService 2> /dev/null", 
SA_LOG_MAX_RECORD_SIZE);
        rc = system(command);
@@ -285,12 +323,6 @@ void restoreData(stream_type_t type)
        int rc;
        char command[MAX_DATA];
 
-       sprintf(command, "immcfg -a longDnsAllowed=%d %s", v_longDnsAllowed, 
s_opensafImm);
-       rc = system(command);
-       if (WEXITSTATUS(rc) != 0) {
-               fprintf(stderr, "Failed to perform cmd = %s\n", command);
-       }
-
        sprintf(command, "immcfg -a logMaxLogrecsize=%d "
                "logConfig=1,safApp=safLogService 2> /dev/null", 
v_logMaxLogrecsize);
        rc = system(command);
@@ -824,6 +856,20 @@ void longDN_AppStream(void)
        int rc;
        SaAisErrorT ais;
 
+       saAisNameLend(s_opensafImm, &sa_opensafImm);
+       rc = get_attr_value(&sa_opensafImm, "longDnsAllowed", 
&v_longDnsAllowed);
+       if (rc == -1) {
+               /* Failed, use default one */
+               fprintf(stderr, "Failed to get attribute longDnsAllowed value 
from IMM\n");
+       }
+
+       rc = enableLongDN();
+       if (rc != 0) {
+               fprintf(stderr, "failed to enable long DN in IMM\n");
+               rc_validate(WEXITSTATUS(rc), 0);
+               return;
+       }
+
        rc = backupData(E_APPLI);
        if (rc != 0) {
                fprintf(stderr, "Backup data failed\n");
@@ -873,6 +919,7 @@ void longDN_AppStream(void)
 done_init:
        endLog();
 done:
+       disableLongDN();
        restoreData(E_APPLI);
 }
 
@@ -893,8 +940,8 @@ void longDNIn_AppStreamDN(void)
        }
 
        /* Enable long DN feature */
-       rc = system("immcfg -m -a longDnsAllowed=1 
opensafImm=opensafImm,safApp=safImmService");
-       if (WEXITSTATUS(rc) != 0) {
+       rc = enableLongDN();
+       if (rc != 0) {
                fprintf(stderr, "Failed to enable long DN \n");
                rc_validate(WEXITSTATUS(rc), 0);
                return;
@@ -916,12 +963,7 @@ void longDNIn_AppStreamDN(void)
        rc_validate(WEXITSTATUS(rc), 0);
 done:
        // Restore data
-       sprintf(command, "immcfg -a longDnsAllowed=%d %s", v_longDnsAllowed, 
s_opensafImm);
-       rc = system(command);
-       if (WEXITSTATUS(rc) != 0) {
-               fprintf(stderr, "Failed to perform cmd = %s\n", command);
-       }
-
+       disableLongDN();
 }
 
 //>
@@ -1125,8 +1167,8 @@ void longDN_AppStrDN_Over_MaxDn(void)
        }
 
        /* Enable long DN feature */
-       rc = system("immcfg -m -a longDnsAllowed=1 
opensafImm=opensafImm,safApp=safImmService");
-       if (WEXITSTATUS(rc) != 0) {
+       rc = enableLongDN();
+       if (rc != 0) {
                fprintf(stderr, "Failed to enable long DN \n");
                rc_validate(WEXITSTATUS(rc), 0);
                return;
@@ -1147,12 +1189,7 @@ void longDN_AppStrDN_Over_MaxDn(void)
        rc_validate(1, 0);
 done:
        // Restore data
-       sprintf(command, "immcfg -a longDnsAllowed=%d %s", v_longDnsAllowed, 
s_opensafImm);
-       rc = system(command);
-       if (WEXITSTATUS(rc) != 0) {
-               fprintf(stderr, "Failed to perform cmd = %s\n", command);
-       }
-
+       disableLongDN();
 }
 
 //>>
@@ -1164,21 +1201,7 @@ void longDNIn_AppStreamDN_ButNoF(void)
        int rc;
        char command[3000];
 
-       // Backup default setting
-       saAisNameLend(s_opensafImm, &sa_opensafImm);
-       rc = get_attr_value(&sa_opensafImm, "longDnsAllowed", 
&v_longDnsAllowed);
-       if (rc == -1) {
-               /* Failed, use default one */
-               fprintf(stderr, "Failed to get attribute longDnsAllowed value 
from IMM\n");
-       }
-
-       /* Enable long DN feature */
-       rc = system("immcfg -m -a longDnsAllowed=1 
opensafImm=opensafImm,safApp=safImmService");
-       if (WEXITSTATUS(rc) != 0) {
-               fprintf(stderr, "Failed to enable long DN \n");
-               rc_validate(WEXITSTATUS(rc), 0);
-               return;
-       }
+       // No need to enable long DN in IMM here as err will be returned at 
saflogger tool.
 
        // Preparing data
        char appStreamDN[1000] = {0};
@@ -1189,18 +1212,10 @@ void longDNIn_AppStreamDN_ButNoF(void)
        rc = system(command);
        if (WEXITSTATUS(rc) != 0) {
                rc_validate(0, 0);
-               goto done;
+               return;
        }
 
        rc_validate(WEXITSTATUS(rc), 0);
-done:
-       // Restore data
-       sprintf(command, "immcfg -a longDnsAllowed=%d %s", v_longDnsAllowed, 
s_opensafImm);
-       rc = system(command);
-       if (WEXITSTATUS(rc) != 0) {
-               fprintf(stderr, "Failed to perform cmd = %s\n", command);
-       }
-
 }
 
 /*

------------------------------------------------------------------------------
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to