Hi Hoang,

+bool is_extended_name_enable() {
+
+  char *extended_name_env = getenv("SA_ENABLE_EXTENDED_NAMES");

Please provide usage detailes of SA_ENABLE_EXTENDED_NAMES in README  in V2 
patch.

-AVM

On 6/23/2016 4:23 PM, Hoang Vo wrote:
>   tests/cpsv/Makefile.am      |    1 +
>   tests/cpsv/test_cpa.c       |  180 
> +++++++++++++++++++++++++++++++++++++++++++-
>   tests/cpsv/test_cpa_util.c  |   15 +++
>   tests/cpsv/test_cpsv.h      |    6 +
>   tests/cpsv/test_cpsv_conf.h |    3 +
>   5 files changed, 203 insertions(+), 2 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;
> @@ -447,6 +478,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)
> @@ -2274,6 +2308,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 *******/
>   
> @@ -2849,6 +2999,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 ******/
>   
>   
> @@ -6872,6 +7043,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");
> @@ -6895,6 +7070,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
> @@ -389,6 +389,11 @@ struct SafCheckpointOpen API_Open[]={
>       [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, */
>   
> @@ -555,6 +560,12 @@ 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)
> @@ -1936,6 +1947,10 @@ struct SafCheckpointUnlink API_Unlink[]=
>   
>     [CKPT_UNLINK_SUCCESS10_T] = 
> {&tcd.ckptHandle,&tcd.weak_replica_ckpt,SA_AIS_OK,"Unlinked ckpt weak 
> replica"},
>   
> +  [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;
>    
>                                                                               
>                                                                               
>            
> @@ -583,6 +587,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;


------------------------------------------------------------------------------
Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San
Francisco, CA to explore cutting-edge tech and listen to tech luminaries
present their vision of the future. This family event has something for
everyone, including kids. Get more information and register today.
http://sdm.link/attshape
_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to