tests/cpsv/Makefile.am      |    1 +
 tests/cpsv/test_cpa.c       |  180 +++++++++++++++++++++++++++++++++++++++++++-
 tests/cpsv/test_cpa_util.c  |   16 +++-
 tests/cpsv/test_cpsv.h      |    6 +
 tests/cpsv/test_cpsv_conf.h |    3 +
 5 files changed, 201 insertions(+), 5 deletions(-)


diff --git a/tests/cpsv/Makefile.am b/tests/cpsv/Makefile.am
--- a/tests/cpsv/Makefile.am
+++ b/tests/cpsv/Makefile.am
@@ -21,6 +21,7 @@ MAINTAINERCLEANFILES = Makefile.in
 bin_PROGRAMS = ckpttest
 
 ckpttest_CPPFLAGS = \
+       -DSA_EXTENDED_NAME_SOURCE \
        $(AM_CPPFLAGS) \
        -I$(top_srcdir)/tests/unit_test_fw/inc \
        -I$(top_srcdir)/osaf/libs/common/immsv/include \
diff --git a/tests/cpsv/test_cpa.c b/tests/cpsv/test_cpa.c
--- a/tests/cpsv/test_cpa.c
+++ b/tests/cpsv/test_cpa.c
@@ -1,6 +1,8 @@
 #include <stdlib.h>
 #include <unistd.h>
 
+#include "saAis.h"
+#include "osaf_extended_name.h"
 #include "test_cpsv.h"
 #include "test_cpsv_conf.h"
 #include "ncs_main_papi.h"
@@ -42,6 +44,10 @@ const char *saf_error_string[] = {
 #define m_TEST_CPSV_PRINTF(...) 
 #endif
 
+#define VALID_EXTENDED_NAME_LENGTH 400
+#define INVALID_EXTENDED_NAME_LENGTH 2049
+
+
 extern int gl_prev_act;
 
 /********** Ultility Functions ************/
@@ -82,6 +88,18 @@ void printResult(int result)
 
 }
 
+bool is_extended_name_enable() {
+
+  char *extended_name_env = getenv("SA_ENABLE_EXTENDED_NAMES");
+  if (extended_name_env == 0) 
+         return false;
+
+  if (strcmp(extended_name_env, "1") != 0)
+         return false;
+
+  return true;
+}
+
 void handleAssigner(SaInvocationT invocation, SaCkptCheckpointHandleT 
checkpointHandle)
 {
    if (invocation == 1014)
@@ -122,8 +140,7 @@ void fill_ckpt_attri(SaCkptCheckpointCre
                                                                                
                                                                                
       
 void fill_ckpt_name(SaNameT *name,char *string)
 {
-   strcpy((char *)name->value,string);
-   name->length = strlen((char *)name->value);
+   saAisNameLend(string, name);
 }
 
 void fill_sec_attri(SaCkptSectionCreationAttributesT 
*sec_cr_attr,SaCkptSectionIdT *sec,SaTimeT exp_time)
@@ -279,6 +296,20 @@ void fill_testcase_data()
    
fill_ckpt_name(&tcd.weak_replica_ckpt_large,"safCkpt=weak_replica_large_ckpt,safApp=safCkptService");
    
fill_ckpt_name(&tcd.collocated_ckpt_large,"safCkpt=collocated_large_ckpt,safApp=safCkptService");
 
+   char *ckpt_name = malloc(VALID_EXTENDED_NAME_LENGTH);
+   memset(ckpt_name, 0, VALID_EXTENDED_NAME_LENGTH);
+   memset(ckpt_name, '.', VALID_EXTENDED_NAME_LENGTH - 1);
+   int length = sprintf(ckpt_name, 
"safCkpt=all_replicas_ckpt_with_valid_extended_name_length");
+   *(ckpt_name + length) = '.';
+   saAisNameLend(ckpt_name, 
&tcd.all_replicas_ckpt_with_valid_extended_name_length);
+
+   ckpt_name = malloc(INVALID_EXTENDED_NAME_LENGTH);
+   memset(ckpt_name, 0, INVALID_EXTENDED_NAME_LENGTH);
+   memset(ckpt_name, '.', INVALID_EXTENDED_NAME_LENGTH - 1);
+   length = sprintf(ckpt_name, 
"safCkpt=all_replicas_ckpt_with_invalid_extended_name_length");
+   *(ckpt_name + length) = '.';
+   saAisNameLend(ckpt_name, 
&tcd.all_replicas_ckpt_with_invalid_extended_name_length);
+
    /* Variables for sec create */
    tcd.sec_id1 = (SaUint8T*)"11";
    tcd.section1.idLen = 2;
@@ -451,6 +482,9 @@ void test_ckpt_cleanup(CPSV_CLEANUP_CKPT
           error = test_ckptUnlink(CKPT_UNLINK_SUCCESS9_T,TEST_CONFIG_MODE);
           break;
 
+     case CPSV_CLEAN_ASYNC_ALL_REPLICAS_CKPT_EXTENDED_NAME:
+          error = 
test_ckptUnlink(CKPT_UNLINK_ALL_REPLICAS_EXTENDED_NAME_SUCCESS_T,TEST_CONFIG_MODE);
+          break;
   }
 
   if(error != TEST_PASS)
@@ -2278,6 +2312,122 @@ final1:
   test_validate(result, TEST_PASS);
 }
 
+void cpsv_it_open_55()
+{
+  int result;
+  printHead("To verify creating a ckpt with valid extended name length");
+
+  /* Skip the test if Extended Name is not enable */
+  if (is_extended_name_enable() == false)
+         return test_validate(TEST_PASS, TEST_PASS);
+
+  result = test_ckptInitialize(CKPT_INIT_SUCCESS_T,TEST_CONFIG_MODE);
+  if(result != TEST_PASS)
+     goto final1;
+
+  result = 
test_ckptOpen(CKPT_OPEN_ALL_CREATE_EXTENDED_NAME_SUCCESS_T,TEST_NONCONFIG_MODE);
+
+  test_cpsv_cleanup(CPSV_CLEAN_INIT_SUCCESS_T);
+
+final1:
+  printResult(result);
+  test_validate(result, TEST_PASS);
+}
+
+void cpsv_it_open_56()
+{
+  int result;
+  printHead("To verify creating a ckpt with invalid extended name length");
+
+  /* Skip the test if Extended Name is not enable */
+  if (is_extended_name_enable() == false)
+         return test_validate(TEST_PASS, TEST_PASS);
+
+  result = test_ckptInitialize(CKPT_INIT_SUCCESS_T,TEST_CONFIG_MODE);
+  if(result != TEST_PASS)
+     goto final1;
+
+  result = 
test_ckptOpen(CKPT_OPEN_ALL_CREATE_EXTENDED_NAME_INVALID_PARAM_T,TEST_NONCONFIG_MODE);
+
+  test_cpsv_cleanup(CPSV_CLEAN_INIT_SUCCESS_T);
+
+final1:
+  printResult(result);
+  test_validate(result, TEST_PASS);
+}
+
+void cpsv_it_open_57()
+{
+  int result;
+  fd_set read_fd;
+  struct timeval tv;
+  printHead("To verify openAsync a ckpt with valid extended name length");
+
+  /* Skip the test if Extended Name is not enable */
+  if (is_extended_name_enable() == false)
+         return test_validate(TEST_PASS, TEST_PASS);
+
+  result = test_ckptInitialize(CKPT_INIT_SUCCESS_T,TEST_CONFIG_MODE);
+  if(result != TEST_PASS)
+     goto final1;
+
+  result = test_ckptSelectionObject(CKPT_SEL_SUCCESS_T,TEST_NONCONFIG_MODE);
+  if(result != TEST_PASS)
+     goto final2;
+                                                                               
                                              
+  result = 
test_ckptOpenAsync(CKPT_OPEN_ASYNC_ALL_CREATE_EXTENDED_NAME_SUCCESS_T,TEST_NONCONFIG_MODE);
+  if(result != TEST_PASS)
+     goto final2;
+
+  tv.tv_sec = 60;
+  tv.tv_usec = 0;
+  FD_ZERO(&read_fd);
+  FD_SET(tcd.selobj, &read_fd);
+  select(tcd.selobj + 1, &read_fd, NULL, NULL, &tv);
+
+  result = test_ckptDispatch(CKPT_DISPATCH_ONE_T,TEST_NONCONFIG_MODE);
+  if(result == TEST_PASS && tcd.open_clbk_invo == 1021 && tcd.open_clbk_err == 
SA_AIS_OK)
+     result = TEST_PASS;
+  else
+  {
+     result = TEST_FAIL;
+     goto final2;
+  }
+
+  test_ckpt_cleanup(CPSV_CLEAN_ASYNC_ALL_REPLICAS_CKPT_EXTENDED_NAME);
+      
+final2:
+  test_cpsv_cleanup(CPSV_CLEAN_INIT_SUCCESS_T);
+final1:
+  printResult(result);
+  test_validate(result, TEST_PASS);
+}
+
+void cpsv_it_open_58()
+{
+  int result;
+  printHead("To verify openAsync a ckpt with invalid extended name length");
+
+  /* Skip the test if Extended Name is not enable */
+  if (is_extended_name_enable() == false)
+         return test_validate(TEST_PASS, TEST_PASS);
+
+  result = test_ckptInitialize(CKPT_INIT_SUCCESS_T,TEST_CONFIG_MODE);
+  if(result != TEST_PASS)
+     goto final1;
+
+  result = test_ckptSelectionObject(CKPT_SEL_SUCCESS_T,TEST_NONCONFIG_MODE);
+  if(result != TEST_PASS)
+     goto final2;
+                                                                               
                                              
+  result = 
test_ckptOpenAsync(CKPT_OPEN_ASYNC_ALL_CREATE_EXTENDED_NAME_INVALID_PARAM_T,TEST_NONCONFIG_MODE);
+
+final2:
+  test_cpsv_cleanup(CPSV_CLEAN_INIT_SUCCESS_T);
+final1:
+  printResult(result);
+  test_validate(result, TEST_PASS);
+}
 
 /****** saCkptCheckpointClose *******/
 
@@ -2853,6 +3003,27 @@ final:
   test_validate(result, TEST_PASS);
 }
 
+void cpsv_it_unlink_12() 
+{
+  int result;
+  printHead("To test unlink a ckpt with invalid extended name");
+
+  /* Skip the test if Extended Name is not enable */
+  if (is_extended_name_enable() == false)
+         return test_validate(TEST_PASS, TEST_PASS);
+
+  result = test_ckptInitialize(CKPT_INIT_SUCCESS_T,TEST_CONFIG_MODE);
+  if(result != TEST_PASS)
+     goto final;
+
+  result = 
test_ckptUnlink(CKPT_UNLINK_ALL_REPLICAS_EXTENDED_NAME_INVALID_PARAM_T, 
TEST_NONCONFIG_MODE);
+  test_cpsv_cleanup(CPSV_CLEAN_INIT_SUCCESS_T);
+
+final:
+  printResult(result);
+  test_validate(result, TEST_PASS);
+}
+
 /******* saCkptRetentionDurationSet ******/
 
 
@@ -6904,6 +7075,10 @@ final1:
   test_case_add(5, cpsv_it_open_52, "To verify creating a ckpt with invalid 
creation flags");
   test_case_add(5, cpsv_it_open_53, "To verify creating a ckpt with invalid 
creation flags");
   test_case_add(5, cpsv_it_open_54, "To verify creating a ckpt with invalid 
creation flags");
+  test_case_add(5, cpsv_it_open_55, "To verify creating a ckpt with valid 
extended name length");
+  test_case_add(5, cpsv_it_open_56, "To verify creating a ckpt with invalid 
extended name length");
+  test_case_add(5, cpsv_it_open_57, "To verify openAsync a ckpt with valid 
extended name length");
+  test_case_add(5, cpsv_it_open_58, "To verify openAsync a ckpt with invalid 
extended name length");
 
   test_suite_add(6, "CKPT API saCkptCheckpointClose()");
   test_case_add(6, cpsv_it_close_01, "To verify Closing of the checkpoint 
designated by checkpointHandle");
@@ -6927,6 +7102,7 @@ final1:
   test_case_add(7, cpsv_it_unlink_09, "To test unlink with uninitialized 
handle");
   test_case_add(7, cpsv_it_unlink_10, "To test unlink in the child process - 
NOT SUPPORTED");
   test_case_add(7, cpsv_it_unlink_11, "To test unlink with NULL ckpt name");
+  test_case_add(7, cpsv_it_unlink_12, "To test unlink a ckpt with invalid 
extended name");
 
   test_suite_add(8, "CKPT API saCkptRetenionDurationSet()");
   test_case_add(8, cpsv_it_rdset_01, "To test that invoking rdset changes the 
rd for the checkpoint");
diff --git a/tests/cpsv/test_cpa_util.c b/tests/cpsv/test_cpa_util.c
--- a/tests/cpsv/test_cpa_util.c
+++ b/tests/cpsv/test_cpa_util.c
@@ -388,7 +388,10 @@ struct SafCheckpointOpen API_Open[]={
                                           
APP_TIMEOUT,&tcd.weak_replica_Createhdl ,SA_AIS_OK,"ckpt with WEAK REPLICA 
created"},
     [CKPT_OPEN_ACTIVE_WRITE_READ_SUCCESS_T]  = 
{&tcd.ckptHandle,&tcd.active_replica_ckpt,NULL,(SA_CKPT_CHECKPOINT_WRITE | 
SA_CKPT_CHECKPOINT_READ),
                                            
APP_TIMEOUT,&tcd.active_replica_Writehdl ,SA_AIS_OK,"ckpt with ACTIVE REPLICA 
opened for writing"},
-
+    [CKPT_OPEN_ALL_CREATE_EXTENDED_NAME_SUCCESS_T] = 
{&tcd.ckptHandle,&tcd.all_replicas_ckpt_with_valid_extended_name_length,&tcd.all_replicas,SA_CKPT_CHECKPOINT_CREATE,
+                                         
APP_TIMEOUT,&tcd.all_replicas_Createhdl,SA_AIS_OK,"ckpt with ALL_REPLICAS and 
valid extended name created"},
+    [CKPT_OPEN_ALL_CREATE_EXTENDED_NAME_INVALID_PARAM_T] = 
{&tcd.ckptHandle,&tcd.all_replicas_ckpt_with_invalid_extended_name_length,&tcd.all_replicas,SA_CKPT_CHECKPOINT_CREATE,
+                                         
APP_TIMEOUT,&tcd.all_replicas_Createhdl,SA_AIS_ERR_INVALID_PARAM,"ckpt with 
ALL_REPLICAS and invalid extended name created"},
 
     /* NULL ckptHandle, */
 
@@ -554,7 +557,10 @@ struct SafCheckpointOpenAsync API_OpenAs
 
     [CKPT_OPEN_ASYNC_INVALID_PARAM7_T]     = 
{&tcd.ckptHandle,1020,NULL,&tcd.all_replicas,SA_CKPT_CHECKPOINT_CREATE,
                                              SA_AIS_ERR_INVALID_PARAM,"Open 
Async with invalid param - NUll name"},
-
+    [CKPT_OPEN_ASYNC_ALL_CREATE_EXTENDED_NAME_SUCCESS_T]     = 
{&tcd.ckptHandle,1021, &tcd.all_replicas_ckpt_with_valid_extended_name_length, 
&tcd.all_replicas,
+                                                 
SA_CKPT_CHECKPOINT_CREATE,SA_AIS_OK,"all replicas ckpt with valid extended name 
created with invocation 1021"},
+    [CKPT_OPEN_ASYNC_ALL_CREATE_EXTENDED_NAME_INVALID_PARAM_T]     = 
{&tcd.ckptHandle,0, &tcd.all_replicas_ckpt_with_invalid_extended_name_length, 
&tcd.all_replicas,
+                                                 
SA_CKPT_CHECKPOINT_CREATE,SA_AIS_ERR_INVALID_PARAM,"all replicas ckpt invalid 
with extended name created"},
 };
 
 int test_ckptOpenAsync(int i,CONFIG_FLAG cfg_flg) 
@@ -1938,7 +1944,11 @@ struct SafCheckpointUnlink API_Unlink[]=
 
   [CKPT_UNLINK_SUCCESS10_T] = 
{&tcd.ckptHandle,&tcd.weak_replica_ckpt,SA_AIS_OK,"Unlinked ckpt weak replica"},
 
-#if 0
+  [CKPT_UNLINK_ALL_REPLICAS_EXTENDED_NAME_SUCCESS_T] = 
{&tcd.ckptHandle,&tcd.all_replicas_ckpt_with_valid_extended_name_length,SA_AIS_OK,"Unlinked
 ckpt all replicas with extended name length"},
+
+  [CKPT_UNLINK_ALL_REPLICAS_EXTENDED_NAME_INVALID_PARAM_T] = 
{&tcd.ckptHandle,&tcd.all_replicas_ckpt_with_invalid_extended_name_length,SA_AIS_ERR_INVALID_PARAM,"Unlinked
 ckpt all replicas with invalid extended name length"},
+
+  #if 0
   [CKPT_UNLINK_NOT_EXIST4_T] = 
{&tcd.ckptHandle,&tcd.collocated_ckpt,SA_AIS_OK,"Unlinked ckpt collcated 
replicas"},
 #endif
 
diff --git a/tests/cpsv/test_cpsv.h b/tests/cpsv/test_cpsv.h
--- a/tests/cpsv/test_cpsv.h
+++ b/tests/cpsv/test_cpsv.h
@@ -315,6 +315,8 @@ typedef enum {
     CKPT_OPEN_SUCCESS_EXIST2_T,
     CKPT_OPEN_WEAK_CREATE_READ_SUCCESS_T,
     CKPT_OPEN_ACTIVE_WRITE_READ_SUCCESS_T,
+    CKPT_OPEN_ALL_CREATE_EXTENDED_NAME_SUCCESS_T,
+    CKPT_OPEN_ALL_CREATE_EXTENDED_NAME_INVALID_PARAM_T
 }CKPT_OPEN_TC_TYPE;
                                                                                
                                                                                
      
 typedef enum {
@@ -340,6 +342,8 @@ typedef enum {
     CKPT_OPEN_ASYNC_ALL_MODES_SUCCESS_T,
     CKPT_OPEN_ASYNC_NULL_INVOCATION,
     CKPT_OPEN_ASYNC_ERR_EXIST_T,
+    CKPT_OPEN_ASYNC_ALL_CREATE_EXTENDED_NAME_SUCCESS_T,
+    CKPT_OPEN_ASYNC_ALL_CREATE_EXTENDED_NAME_INVALID_PARAM_T
 }CKPT_OPEN_ASYNC_TC_TYPE;
  
                                                                                
                                                                                
      
@@ -584,6 +588,8 @@ typedef enum {
     CKPT_UNLINK_SUCCESS10_T,
     CKPT_UNLINK_NOT_EXIST2_T,
     CKPT_UNLINK_NOT_EXIST3_T,
+    CKPT_UNLINK_ALL_REPLICAS_EXTENDED_NAME_SUCCESS_T,
+    CKPT_UNLINK_ALL_REPLICAS_EXTENDED_NAME_INVALID_PARAM_T,
 }CKPT_UNLINK_TC_TYPE;
 
                                                                                
                                                                                
      
diff --git a/tests/cpsv/test_cpsv_conf.h b/tests/cpsv/test_cpsv_conf.h
--- a/tests/cpsv/test_cpsv_conf.h
+++ b/tests/cpsv/test_cpsv_conf.h
@@ -39,6 +39,7 @@ typedef enum {
    CPSV_CLEAN_ASYNC_ACTIVE_REPLICAS_CKPT,
    CPSV_CLEAN_WEAK_REPLICAS_CKPT,
    CPSV_CLEAN_MULTI_VECTOR_CKPT,
+   CPSV_CLEAN_ASYNC_ALL_REPLICAS_CKPT_EXTENDED_NAME,
 }CPSV_CLEANUP_CKPT_TC_TYPE;
 
 
@@ -65,6 +66,8 @@ struct cpsv_testcase_data
   SaNameT 
all_replicas_ckpt,active_replica_ckpt,weak_replica_ckpt,collocated_ckpt,async_all_replicas_ckpt,async_active_replica_ckpt;
   SaNameT 
smoketest_ckpt,all_collocated_ckpt,weak_collocated_ckpt,non_existing_ckpt,multi_vector_ckpt;
   SaNameT 
all_replicas_ckpt_large,active_replica_ckpt_large,weak_replica_ckpt_large,collocated_ckpt_large;
+  SaNameT all_replicas_ckpt_with_valid_extended_name_length;
+  SaNameT all_replicas_ckpt_with_invalid_extended_name_length;
 
   SaCkptSectionIdT 
section1,section2,section3,section4,section5,section6,section7,invalid_sec,invalidsection,gen_sec,invalidSection,gen_sec_del;
   SaCkptSectionIdT long_section_id;

------------------------------------------------------------------------------
_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to