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;
------------------------------------------------------------------------------
Transform Data into Opportunity.
Accelerate data analysis in your applications with
Intel Data Analytics Acceleration Library.
Click to learn more.
http://pubads.g.doubleclick.net/gampad/clk?id=278785231&iu=/4140
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel