The logtest 6 49 and logtest 6 50 failed because the admin
operation fail due to closing log file timeout.
Update to try again the command admin operation in test cases
---
src/log/apitest/tet_LogOiOps.c | 54 ++++++++++++++++++++++++++----------------
1 file changed, 34 insertions(+), 20 deletions(-)
diff --git a/src/log/apitest/tet_LogOiOps.c b/src/log/apitest/tet_LogOiOps.c
index 25f53d3a2..4133b6bbe 100644
--- a/src/log/apitest/tet_LogOiOps.c
+++ b/src/log/apitest/tet_LogOiOps.c
@@ -5479,6 +5479,23 @@ done:
&v_saLogStreamFixedLogRecordSize, SA_IMM_ATTR_SAUINT32T);
}
+// Execute admin operation command and retry if it failed
+int execute_admin_operation_and_retries(const char *command)
+{
+ int rc = 0;
+ const uint64_t kWaitTime10s = 10 * 1000;
+ struct timespec timeout_time;
+ osaf_set_millis_timeout(kWaitTime10s, &timeout_time);
+ while (!osaf_is_timeout(&timeout_time)) {
+ // Do the retries in case rotate/delete file fail due to
+ // filesystem issue
+ rc = systemCall(command);
+ if (rc == 0) break;
+ osaf_nanosleep(&kOneSecond);
+ }
+ return rc;
+}
+
//
// Test case for verifying the admin operation rotates log file is accepted
// Steps:
@@ -5490,7 +5507,6 @@ void admin_rotate_log_file(void)
{
int rc = 0;
char command[MAX_DATA];
- const uint64_t kWaitTime10s = 10 * 1000;
const char *object_dn =
"safLgStrCfg=admin_rotate_file,safApp=safLogService";
@@ -5502,15 +5518,7 @@ void admin_rotate_log_file(void)
if (rc == 0) {
// Admin operation rotate log file
sprintf(command, "immadm -o 2 %s", object_dn);
- struct timespec timeout_time;
- osaf_set_millis_timeout(kWaitTime10s, &timeout_time);
- do {
- // Do the retries in case rotate file fail due to
- // filesystem issue
- osaf_nanosleep(&kOneSecond);
- rc = systemCall(command);
- } while (rc != 0 && !osaf_is_timeout(&timeout_time));
-
+ rc = execute_admin_operation_and_retries(command);
rc_validate(rc, 0);
// Delete object
@@ -5568,7 +5576,8 @@ void verRotatedLogCfgFile(void)
FILE *fp = popen(command1, "r");
// Get number of cfg and log file
- while (fgets(num_files_c, sizeof(num_files_c) - 1, fp) != NULL) {};
+ while (fgets(num_files_c, sizeof(num_files_c) - 1, fp) != NULL) {
+ };
pclose(fp);
// Verify cfg/log files are rotated by checking
@@ -5588,7 +5597,7 @@ void verRotatedLogCfgFile(void)
void verRotatedLogCfgFile2(void)
{
int rc;
- char command[MAX_DATA];
+ char command[MAX_DATA], command1[MAX_DATA];
const char *object_dn =
"safLgStrCfg=verRotatedFile2,safApp=safLogService";
char num_files_c[10];
@@ -5600,20 +5609,24 @@ void verRotatedLogCfgFile2(void)
"-a saLogStreamFileName=verRotatedFile2"
" -a saLogStreamMaxFilesRotated=2",
object_dn);
+ // Command to delete configuration application stream
+ sprintf(command1, "immcfg -d %s", object_dn);
+
// Create the app stream.
rc = systemCall(command);
if (rc != 0) {
rc_validate(rc, 0);
return;
}
+ osaf_nanosleep(&kHundredMilliseconds);
// Do admin operation to rotate log file without the parameter
// Two new log files are created. One oldest file is removed.
sprintf(command, "immadm -o 2 %s", object_dn);
for (int i = 0; i < 2; ++i) {
- osaf_nanosleep(&kOneSecond);
- rc = systemCall(command);
+ rc = execute_admin_operation_and_retries(command);
if (rc != 0) {
+ systemCall(command1);
rc_validate(rc, 0);
return;
}
@@ -5626,13 +5639,12 @@ void verRotatedLogCfgFile2(void)
log_root_path, "verRotatedFile2");
FILE *fp = popen(command, "r");
// Get number of log files
- while (fgets(num_files_c, sizeof(num_files_c) - 1, fp) != NULL) {};
+ while (fgets(num_files_c, sizeof(num_files_c) - 1, fp) != NULL) {
+ };
pclose(fp);
- // Command to delete configuration application stream
- sprintf(command, "immcfg -d %s", object_dn);
// Close the application stream
- rc = systemCall(command);
+ rc = systemCall(command1);
if (rc != 0) {
rc_validate(rc, 0);
return;
@@ -5689,8 +5701,9 @@ void verRotatedLogCfgFile3(void)
// Admin operation to remove 1 oldest log files
sprintf(command1, "immadm -o 2 -p numberOfFilesToRemove:SA_UINT32_T:1 "
"%s", object_dn);
- rc = systemCall(command1);
+ rc = execute_admin_operation_and_retries(command1);
if (rc != 0) {
+ systemCall(command2);
rc_validate(rc, 0);
return;
}
@@ -5702,7 +5715,8 @@ void verRotatedLogCfgFile3(void)
log_root_path, "verRotatedFile3");
FILE *fp = popen(command1, "r");
// Get number of cfg and log file
- while (fgets(num_files_c, sizeof(num_files_c) - 1, fp) != NULL) {};
+ while (fgets(num_files_c, sizeof(num_files_c) - 1, fp) != NULL) {
+ };
pclose(fp);
// Close the application stream
--
2.15.1
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel