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
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel