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