tests/logsv/Makefile.am    |   4 ++-
 tests/logsv/logtest.c      |  55 ++++++++++++++++++++++++++++++++++++++++++++++
 tests/logsv/logtest.h      |   3 +-
 tests/logsv/tet_LogOiOps.c |  28 +++++++++++++++++++----
 4 files changed, 83 insertions(+), 7 deletions(-)


- Replaced hard coded root path with root path fetched from log service IMM 
config object

diff --git a/tests/logsv/Makefile.am b/tests/logsv/Makefile.am
--- a/tests/logsv/Makefile.am
+++ b/tests/logsv/Makefile.am
@@ -25,11 +25,13 @@ noinst_HEADERS = \
 
 logtest_CPPFLAGS = \
        $(AM_CPPFLAGS) \
-       -I$(top_srcdir)/tests/unit_test_fw/inc
+       -I$(top_srcdir)/tests/unit_test_fw/inc \
+       -I$(top_srcdir)/osaf/libs/common/immsv/include
 
 logtest_SOURCES = \
        $(top_srcdir)/tests/unit_test_fw/src/utest.c \
        $(top_srcdir)/tests/unit_test_fw/src/util.c \
+       $(top_srcdir)/osaf/tools/safimm/src/immutil.c \
        logtest.c \
        tet_saLogInitialize.c \
        tet_saLogSelectionObjectGet.c \
diff --git a/tests/logsv/logtest.c b/tests/logsv/logtest.c
--- a/tests/logsv/logtest.c
+++ b/tests/logsv/logtest.c
@@ -17,6 +17,11 @@
 
 #include <sys/time.h>
 #include <unistd.h>
+#include <limits.h>
+#include <configmake.h>
+#include <saImmOm.h>
+#include <immutil.h>
+#include <saImm.h>
 
 #include "logtest.h"
 
@@ -93,16 +98,62 @@ SaLogRecordT genLogRecord =
 };
 
 SaVersionT logVersion = {'A', 0x02, 0x01}; 
+SaVersionT immVersion = {'A', 2, 11};
 SaAisErrorT rc;
 SaLogHandleT logHandle;
 SaLogStreamHandleT logStreamHandle;
 SaLogCallbacksT logCallbacks = {NULL, NULL, NULL};
 SaSelectionObjectT selectionObject;
+char log_root_path[PATH_MAX];
+
+void init_logrootpath(void)
+{
+       SaImmHandleT omHandle;
+       SaNameT objectName = {
+               .value = "logConfig=1,safApp=safLogService",
+               .length = strlen("logConfig=1,safApp=safLogService")
+       };
+       SaImmAccessorHandleT accessorHandle;
+       SaImmAttrValuesT_2 *attribute;
+       SaImmAttrValuesT_2 **attributes;
+       SaAisErrorT ais_rc = SA_AIS_OK;
+       const char logRootDirectory_name[] = "logRootDirectory";
+       SaImmAttrNameT attributeNames[2] = {(char *) logRootDirectory_name, 
NULL};
+       void *value;
+       
+#if 0
+       printf("logRootDirectory_name \"%s\"\n",logRootDirectory_name);
+       printf("objectName.value \"%s\"\n",objectName.value);
+       printf("objectName.length = %d\n",objectName.length);
+#endif
+       
+       /* NOTE: immutil init osaf_assert if error */
+       (void) immutil_saImmOmInitialize(&omHandle, NULL, &immVersion);
+       (void) immutil_saImmOmAccessorInitialize(omHandle, &accessorHandle);
+
+       /* Get all attributes of the object */
+       ais_rc = immutil_saImmOmAccessorGet_2(accessorHandle, &objectName,
+                                                                               
attributeNames, &attributes);
+       if (ais_rc == SA_AIS_OK) {
+               attribute = attributes[0];
+               value = attribute->attrValues[0];
+               strncpy(log_root_path, *((char **) value), PATH_MAX);
+       } else {
+               /* We didn't get a root path from IMM. Use default */
+               strncpy(log_root_path, PKGLOGDIR, PATH_MAX);
+       }
+       (void) immutil_saImmOmFinalize(omHandle);
+       
+#if 1
+       printf("log_root_path \"%s\"\n\n",log_root_path);
+#endif
+}
 
 int main(int argc, char **argv) 
 {
     int suite = ALL_SUITES, tcase = ALL_TESTS;
 
+       init_logrootpath();
     srandom(getpid());
 
     if (argc > 1)
@@ -120,6 +171,10 @@ int main(int argc, char **argv)
         test_list();
         return 0;
     }
+       
+       if (suite == 999) {
+               return 0;
+       }
 
     return test_run(suite, tcase);
 }  
diff --git a/tests/logsv/logtest.h b/tests/logsv/logtest.h
--- a/tests/logsv/logtest.h
+++ b/tests/logsv/logtest.h
@@ -33,7 +33,7 @@
 #define DEFAULT_APP_LOG_REC_SIZE 128
 #define DEFAULT_APP_LOG_FILE_SIZE 1024 * 1024
 #define DEFAULT_FORMAT_EXPRESSION "@Cr @Ch:@Cn:@Cs @Cm/@Cd/@CY @Sv @Sl \"@Cb\""
-#define SA_LOG_STREAM_APPLICATION1 "safLgStr=saLogApplication1"
+//#define SA_LOG_STREAM_APPLICATION1 "safLgStr=saLogApplication1"
 #define DEFAULT_ALM_LOG_REC_SIZE 1024  
 #define DEFAULT_ALM_LOG_BUFFER "Alarm stream test" 
 #define DEFAULT_NOT_LOG_REC_SIZE 1024  
@@ -60,5 +60,6 @@ extern SaLogBufferT notificationStreamBu
 extern SaSelectionObjectT selectionObject;
 extern SaNameT logSvcUsrName;
 extern SaLogRecordT genLogRecord;
+extern char log_root_path[];
 
 #endif
diff --git a/tests/logsv/tet_LogOiOps.c b/tests/logsv/tet_LogOiOps.c
--- a/tests/logsv/tet_LogOiOps.c
+++ b/tests/logsv/tet_LogOiOps.c
@@ -19,6 +19,7 @@
 #include <sys/wait.h>
 #include <saImm.h>
 #include <saImmOm.h>
+#include <limits.h>
 #include "logtest.h"
 
 static SaLogFileCreateAttributesT_2 appStreamLogFileCreateAttributes =
@@ -44,13 +45,24 @@ void saLogOi_01(void)
     test_validate(WEXITSTATUS(rc), 0);
 }
 
+/**
+ * CCB Object Modify saLogStreamPathName, ERR not allowed
+ */
 void saLogOi_02(void)
 {
     int rc;
     char command[256];
+       
+       /* Create an illegal path name (log_root_path> cd ../) */
+       char tststr[PATH_MAX];
+       char *tstptr;
+       strcpy(tststr,log_root_path);
+       tstptr = strrchr(tststr, '/');
+       *tstptr = '\0';
 
-    sprintf(command, "immcfg -a saLogStreamPathName=/var/log %s 2> /dev/null",
-        SA_LOG_STREAM_ALARM);
+    sprintf(command, "immcfg -a saLogStreamPathName=/%s %s 2> /dev/null",
+                       tststr,
+                       SA_LOG_STREAM_ALARM);
     rc = system(command);
     test_validate(WEXITSTATUS(rc), 1);
 }
@@ -597,14 +609,17 @@ void saLogOi_47()
     test_validate(WEXITSTATUS(rc), 0);
 }
 
+/**
+ * CCB Object Modify, root directory
+ */
 void saLogOi_48()
 {
     int rc;
     char command[256];
-
-    sprintf(command, "mkdir -p /var/log/opensaf/saflog/xxtest");
+       
+    sprintf(command, "mkdir -p %s/xxtest",log_root_path);
     rc = system(command);
-    sprintf(command, "immcfg -a 
logRootDirectory=/var/log/opensaf/saflog/xxtest 
logConfig=1,safApp=safLogService");
+    sprintf(command, "immcfg -a logRootDirectory=%s/xxtest 
logConfig=1,safApp=safLogService",log_root_path);
     rc = system(command);
     test_validate(WEXITSTATUS(rc), 0);
 }
@@ -655,6 +670,9 @@ static int get_filter_cnt_attr(const SaN
        return filter_cnt;
 }
 
+/**
+ * saflogtest, writing to saLogApplication1, severity filtering check
+ */
 void saLogOi_51(void)
 {
        int rc;

------------------------------------------------------------------------------
Get 100% visibility into Java/.NET code with AppDynamics Lite!
It's a free troubleshooting tool designed for production.
Get down to code-level detail for bottlenecks, with <2% overhead. 
Download for free and get started troubleshooting in minutes. 
http://pubads.g.doubleclick.net/gampad/clk?id=48897031&iu=/4140/ostg.clktrk
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to