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