Fix dds_create_domain return and error handling
Signed-off-by: Erik Boasson <eb@ilities.com>
This commit is contained in:
parent
bd858ea97f
commit
33ba911192
23 changed files with 562 additions and 302 deletions
|
@ -25,96 +25,88 @@
|
|||
#define URI_VARIABLE DDS_PROJECT_NAME_NOSPACE_CAPS"_URI"
|
||||
#define MAX_PARTICIPANTS_VARIABLE "MAX_PARTICIPANTS"
|
||||
|
||||
static void config__check_env(
|
||||
const char * env_variable,
|
||||
const char * expected_value)
|
||||
static void config__check_env (const char *env_variable, const char *expected_value)
|
||||
{
|
||||
char * env_uri = NULL;
|
||||
ddsrt_getenv(env_variable, &env_uri);
|
||||
#if 0
|
||||
const char * const env_not_set = "Environment variable '%s' isn't set. This needs to be set to '%s' for this test to run.";
|
||||
const char * const env_not_as_expected = "Environment variable '%s' has an unexpected value: '%s' (expected: '%s')";
|
||||
#endif
|
||||
|
||||
char *env_uri = NULL;
|
||||
ddsrt_getenv (env_variable, &env_uri);
|
||||
#ifdef FORCE_ENV
|
||||
{
|
||||
bool env_ok;
|
||||
|
||||
if (env_uri == NULL)
|
||||
env_ok = false;
|
||||
else if (strncmp (env_uri, expected_value, strlen (expected_value)) != 0)
|
||||
env_ok = false;
|
||||
else
|
||||
env_ok = true;
|
||||
|
||||
if (!env_ok)
|
||||
{
|
||||
bool env_ok;
|
||||
|
||||
if ( env_uri == NULL ) {
|
||||
env_ok = false;
|
||||
} else if ( strncmp(env_uri, expected_value, strlen(expected_value)) != 0 ) {
|
||||
env_ok = false;
|
||||
} else {
|
||||
env_ok = true;
|
||||
}
|
||||
|
||||
if ( !env_ok ) {
|
||||
dds_return_t r;
|
||||
|
||||
r = ddsrt_setenv(env_variable, expected_value);
|
||||
CU_ASSERT_EQUAL_FATAL(r, DDS_RETCODE_OK);
|
||||
}
|
||||
dds_return_t r = ddsrt_setenv (env_variable, expected_value);
|
||||
CU_ASSERT_EQUAL_FATAL (r, DDS_RETCODE_OK);
|
||||
}
|
||||
}
|
||||
#else
|
||||
CU_ASSERT_PTR_NOT_NULL_FATAL(env_uri);
|
||||
CU_ASSERT_STRING_EQUAL_FATAL(env_uri, expected_value);
|
||||
CU_ASSERT_PTR_NOT_NULL_FATAL (env_uri);
|
||||
CU_ASSERT_STRING_EQUAL_FATAL (env_uri, expected_value);
|
||||
#endif /* FORCE_ENV */
|
||||
|
||||
}
|
||||
|
||||
CU_Test(ddsc_config, simple_udp, .init = ddsrt_init, .fini = ddsrt_fini) {
|
||||
|
||||
dds_entity_t participant;
|
||||
|
||||
config__check_env(URI_VARIABLE, CONFIG_ENV_SIMPLE_UDP);
|
||||
config__check_env(MAX_PARTICIPANTS_VARIABLE, CONFIG_ENV_MAX_PARTICIPANTS);
|
||||
|
||||
participant = dds_create_participant(DDS_DOMAIN_DEFAULT, NULL, NULL);
|
||||
|
||||
CU_ASSERT_FATAL(participant> 0);
|
||||
|
||||
dds_delete(participant);
|
||||
CU_Test (ddsc_config, simple_udp, .init = ddsrt_init, .fini = ddsrt_fini)
|
||||
{
|
||||
dds_entity_t participant;
|
||||
config__check_env (URI_VARIABLE, CONFIG_ENV_SIMPLE_UDP);
|
||||
config__check_env (MAX_PARTICIPANTS_VARIABLE, CONFIG_ENV_MAX_PARTICIPANTS);
|
||||
participant = dds_create_participant (DDS_DOMAIN_DEFAULT, NULL, NULL);
|
||||
CU_ASSERT_FATAL (participant> 0);
|
||||
dds_delete (participant);
|
||||
}
|
||||
|
||||
CU_Test(ddsc_config, user_config, .init = ddsrt_init, .fini = ddsrt_fini) {
|
||||
CU_Test (ddsc_config, user_config, .init = ddsrt_init, .fini = ddsrt_fini)
|
||||
{
|
||||
dds_entity_t domain;
|
||||
domain = dds_create_domain (1,
|
||||
"<"DDS_PROJECT_NAME"><Domain><Id>any</Id></Domain>"
|
||||
"<DDSI2E><Internal><MaxParticipants>2</MaxParticipants></Internal></DDSI2E>"
|
||||
"</"DDS_PROJECT_NAME">");
|
||||
CU_ASSERT_FATAL (domain > 0);
|
||||
|
||||
CU_ASSERT_FATAL(dds_create_domain(1,
|
||||
"<"DDS_PROJECT_NAME"><Domain><Id>any</Id></Domain>"
|
||||
"<DDSI2E><Internal><MaxParticipants>2</MaxParticipants></Internal></DDSI2E>"
|
||||
"</"DDS_PROJECT_NAME">") == DDS_RETCODE_OK);
|
||||
dds_entity_t participant_1 = dds_create_participant (1, NULL, NULL);
|
||||
CU_ASSERT_FATAL(participant_1 > 0);
|
||||
|
||||
dds_entity_t participant_1;
|
||||
dds_entity_t participant_2;
|
||||
dds_entity_t participant_3;
|
||||
dds_entity_t participant_2 = dds_create_participant (1, NULL, NULL);
|
||||
CU_ASSERT_FATAL(participant_2 > 0);
|
||||
|
||||
participant_1 = dds_create_participant(1, NULL, NULL);
|
||||
dds_entity_t participant_3 = dds_create_participant (1, NULL, NULL);
|
||||
CU_ASSERT(participant_3 < 0);
|
||||
|
||||
CU_ASSERT_FATAL(participant_1 > 0);
|
||||
|
||||
participant_2 = dds_create_participant(1, NULL, NULL);
|
||||
|
||||
CU_ASSERT_FATAL(participant_2 > 0);
|
||||
|
||||
participant_3 = dds_create_participant(1, NULL, NULL);
|
||||
|
||||
CU_ASSERT(participant_3 <= 0);
|
||||
|
||||
dds_delete(participant_3);
|
||||
dds_delete(participant_2);
|
||||
dds_delete(participant_1);
|
||||
dds_delete (domain);
|
||||
}
|
||||
|
||||
CU_Test(ddsc_config, incorrect_config, .init = ddsrt_init, .fini = ddsrt_fini) {
|
||||
CU_Test (ddsc_config, incorrect_config, .init = ddsrt_init, .fini = ddsrt_fini)
|
||||
{
|
||||
dds_entity_t dom;
|
||||
|
||||
CU_ASSERT_FATAL(dds_create_domain(1, NULL) == DDS_RETCODE_BAD_PARAMETER);
|
||||
CU_ASSERT_FATAL(dds_create_domain(1, "<CycloneDDS incorrect XML") != DDS_RETCODE_OK);
|
||||
CU_ASSERT_FATAL(dds_create_domain(DDS_DOMAIN_DEFAULT,
|
||||
"<"DDS_PROJECT_NAME"><Domain><Id>any</Id></Domain>"
|
||||
"<DDSI2E><Internal><MaxParticipants>2</MaxParticipants></Internal></DDSI2E>"
|
||||
"</"DDS_PROJECT_NAME">") == DDS_RETCODE_BAD_PARAMETER);
|
||||
CU_ASSERT_FATAL(dds_create_domain(2,
|
||||
"<"DDS_PROJECT_NAME"><Domain><Id>any</Id></Domain>"
|
||||
"<DDSI2E><Internal><MaxParticipants>2</MaxParticipants></Internal></DDSI2E>"
|
||||
"</"DDS_PROJECT_NAME">") == DDS_RETCODE_OK);
|
||||
CU_ASSERT_FATAL(dds_create_domain(2, "") == DDS_RETCODE_PRECONDITION_NOT_MET);
|
||||
dom = dds_create_domain (1, NULL);
|
||||
CU_ASSERT_FATAL (dom == DDS_RETCODE_BAD_PARAMETER);
|
||||
|
||||
dom = dds_create_domain (1, "<CycloneDDS incorrect XML");
|
||||
CU_ASSERT_FATAL (dom == DDS_RETCODE_ERROR); /* FIXME: "error" is rather unspecific for a bad configuration */
|
||||
|
||||
dom = dds_create_domain (DDS_DOMAIN_DEFAULT,
|
||||
"<"DDS_PROJECT_NAME"><Domain><Id>any</Id></Domain>"
|
||||
"<DDSI2E><Internal><MaxParticipants>2</MaxParticipants></Internal></DDSI2E>"
|
||||
"</"DDS_PROJECT_NAME">");
|
||||
CU_ASSERT_FATAL (dom == DDS_RETCODE_BAD_PARAMETER);
|
||||
|
||||
dom = dds_create_domain (2,
|
||||
"<"DDS_PROJECT_NAME"><Domain><Id>any</Id></Domain>"
|
||||
"<DDSI2E><Internal><MaxParticipants>2</MaxParticipants></Internal></DDSI2E>"
|
||||
"</"DDS_PROJECT_NAME">");
|
||||
CU_ASSERT_FATAL (dom > 0);
|
||||
|
||||
/* 2nd attempt at creating the same domain should fail */
|
||||
CU_ASSERT_FATAL (dds_create_domain (2, "") == DDS_RETCODE_PRECONDITION_NOT_MET);
|
||||
|
||||
dds_delete (dom);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue