summaryrefslogtreecommitdiff
path: root/modules/CIAO/connectors/dds4ccm/tests/Policies
diff options
context:
space:
mode:
Diffstat (limited to 'modules/CIAO/connectors/dds4ccm/tests/Policies')
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/Policies/deadline_qos_test.cpp16
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/Policies/deadline_qos_test.h19
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/Policies/dest_order_qos_test.cpp14
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/Policies/dest_order_qos_test.h19
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/Policies/dp_factory_qos_test.cpp9
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/Policies/dp_factory_qos_test.h17
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/Policies/dp_qos_test.cpp46
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/Policies/dp_qos_test.h18
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/Policies/dr_qos_test.cpp137
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/Policies/dr_qos_test.h18
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/Policies/dur_qos_test.cpp15
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/Policies/dur_qos_test.h19
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/Policies/dur_service_qos_test.cpp19
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/Policies/dur_service_qos_test.h19
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/Policies/duration.cpp16
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/Policies/duration.h19
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/Policies/dw_qos_test.cpp164
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/Policies/dw_qos_test.h18
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/Policies/entity_factory_qos_test.cpp15
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/Policies/entity_factory_qos_test.h19
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/Policies/group_data_qos_test.cpp18
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/Policies/group_data_qos_test.h19
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/Policies/hist_qos_test.cpp16
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/Policies/hist_qos_test.h19
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/Policies/lat_budget_qos_test.cpp16
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/Policies/lat_budget_qos_test.h19
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/Policies/lifespan_qos_test.cpp16
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/Policies/lifespan_qos_test.h19
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/Policies/liveliness_qos_test.cpp17
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/Policies/liveliness_qos_test.h19
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/Policies/main.cpp73
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/Policies/octet_seq.cpp34
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/Policies/octet_seq.h20
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/Policies/ownership_qos_test.cpp15
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/Policies/ownership_qos_test.h19
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/Policies/ownership_strength_qos_test.cpp14
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/Policies/ownership_strength_qos_test.h19
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/Policies/partition_qos_test.cpp33
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/Policies/partition_qos_test.h19
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/Policies/policies.mpc46
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/Policies/presentation_qos_test.cpp19
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/Policies/presentation_qos_test.h19
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/Policies/pub_qos_test.cpp58
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/Policies/pub_qos_test.h18
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/Policies/rd_lifecycle_qos_test.cpp19
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/Policies/rd_lifecycle_qos_test.h19
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/Policies/reliability_qos_test.cpp17
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/Policies/reliability_qos_test.h19
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/Policies/resource_limits_qos_test.cpp17
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/Policies/resource_limits_qos_test.h19
-rwxr-xr-xmodules/CIAO/connectors/dds4ccm/tests/Policies/run_test.pl25
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/Policies/sub_qos_test.cpp59
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/Policies/sub_qos_test.h19
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/Policies/tbf_qos_test.cpp15
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/Policies/tbf_qos_test.h19
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/Policies/tp_data_qos_test.cpp18
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/Policies/tp_data_qos_test.h19
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/Policies/tp_qos_test.cpp148
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/Policies/tp_qos_test.h18
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/Policies/transport_prio_qos_test.cpp14
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/Policies/transport_prio_qos_test.h19
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/Policies/user_data_qos_test.cpp18
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/Policies/user_data_qos_test.h19
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/Policies/wr_lifecycle_qos_test.cpp15
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/Policies/wr_lifecycle_qos_test.h19
65 files changed, 1774 insertions, 0 deletions
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/deadline_qos_test.cpp b/modules/CIAO/connectors/dds4ccm/tests/Policies/deadline_qos_test.cpp
new file mode 100644
index 00000000000..6ee8d9e1b80
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/deadline_qos_test.cpp
@@ -0,0 +1,16 @@
+// $Id$
+
+#include "deadline_qos_test.h"
+
+#include "duration.h"
+
+DeadlinePolicyTest::DeadlinePolicyTest ()
+{
+}
+
+bool
+DeadlinePolicyTest::check (const ::DDS_DeadlineQosPolicy & dds_qos,
+ const ::DDS::DeadlineQosPolicy & qos)
+{
+ return Duration::check (dds_qos.period, qos.period);
+}
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/deadline_qos_test.h b/modules/CIAO/connectors/dds4ccm/tests/Policies/deadline_qos_test.h
new file mode 100644
index 00000000000..3713165c665
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/deadline_qos_test.h
@@ -0,0 +1,19 @@
+//$Id$
+
+#ifndef DEADLINE_QOS_TEST_H_
+#define DEADLINE_QOS_TEST_H_
+
+#include "dds4ccm/idl/dds_rtf2_dcpsC.h"
+#include "ndds/ndds_cpp.h"
+#include "dds4ccm/impl/dds/ndds/DeadlineQosPolicy.h"
+
+class DeadlinePolicyTest
+{
+public:
+ DeadlinePolicyTest ();
+
+ static bool check (const ::DDS_DeadlineQosPolicy & dds_qos,
+ const ::DDS::DeadlineQosPolicy & qos);
+};
+
+#endif /* DEADLINE_QOS_TEST_H_ */
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/dest_order_qos_test.cpp b/modules/CIAO/connectors/dds4ccm/tests/Policies/dest_order_qos_test.cpp
new file mode 100644
index 00000000000..6a35c8dd228
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/dest_order_qos_test.cpp
@@ -0,0 +1,14 @@
+// $Id$
+
+#include "dest_order_qos_test.h"
+
+DestinationOrderPolicyTest::DestinationOrderPolicyTest ()
+{
+}
+
+bool
+DestinationOrderPolicyTest::check (const ::DDS_DestinationOrderQosPolicy & dds_qos,
+ const ::DDS::DestinationOrderQosPolicy & qos)
+{
+ return dds_qos.kind == static_cast <DDS_DestinationOrderQosPolicyKind> (qos.kind);
+}
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/dest_order_qos_test.h b/modules/CIAO/connectors/dds4ccm/tests/Policies/dest_order_qos_test.h
new file mode 100644
index 00000000000..58887bc0311
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/dest_order_qos_test.h
@@ -0,0 +1,19 @@
+//$Id$
+
+#ifndef DEST_ORDER_QOS_TEST_H_
+#define DEST_ORDER_QOS_TEST_H_
+
+#include "dds4ccm/idl/dds_rtf2_dcpsC.h"
+#include "ndds/ndds_cpp.h"
+#include "dds4ccm/impl/dds/ndds/DestinationOrderQosPolicy.h"
+
+class DestinationOrderPolicyTest
+{
+public:
+ DestinationOrderPolicyTest ();
+
+ static bool check (const ::DDS_DestinationOrderQosPolicy & dds_qos,
+ const ::DDS::DestinationOrderQosPolicy & qos);
+};
+
+#endif /* DEST_ORDER_QOS_TEST_H_ */
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/dp_factory_qos_test.cpp b/modules/CIAO/connectors/dds4ccm/tests/Policies/dp_factory_qos_test.cpp
new file mode 100644
index 00000000000..2152a2a4dfa
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/dp_factory_qos_test.cpp
@@ -0,0 +1,9 @@
+// $Id$
+
+#include "dp_factory_qos_test.h"
+
+#include "entity_factory_qos_test.h"
+
+DomainParticipantFactoryPolicyTest::DomainParticipantFactoryPolicyTest ()
+{
+}
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/dp_factory_qos_test.h b/modules/CIAO/connectors/dds4ccm/tests/Policies/dp_factory_qos_test.h
new file mode 100644
index 00000000000..84a3582c7fa
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/dp_factory_qos_test.h
@@ -0,0 +1,17 @@
+//$Id$
+
+#ifndef DP_FACTORY_QOS_TEST_H_
+#define DP_FACTORY_QOS_TEST_H_
+
+#include "dds4ccm/idl/dds_rtf2_dcpsC.h"
+#include "ndds/ndds_cpp.h"
+#include "dds4ccm/impl/dds/ndds/DomainParticipantFactoryQos.h"
+
+class DomainParticipantFactoryPolicyTest
+{
+public:
+ DomainParticipantFactoryPolicyTest ();
+
+};
+
+#endif /* DP_FACTORY_QOS_TEST_H_ */
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/dp_qos_test.cpp b/modules/CIAO/connectors/dds4ccm/tests/Policies/dp_qos_test.cpp
new file mode 100644
index 00000000000..9418d83ceb1
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/dp_qos_test.cpp
@@ -0,0 +1,46 @@
+// $Id$
+
+#include "dp_qos_test.h"
+
+#include "entity_factory_qos_test.h"
+#include "user_data_qos_test.h"
+
+DomainParticipantPolicyTest::DomainParticipantPolicyTest ()
+{
+}
+
+int
+DomainParticipantPolicyTest::run ()
+{
+ int ret = 0;
+ try
+ {
+ ::DDS::DomainParticipantQos policy;
+ DDS_DomainParticipantQos dds_policy_org, dds_policy;
+
+ dds_policy_org = DDS_PARTICIPANT_QOS_DEFAULT;
+
+ policy <<= dds_policy_org;
+ dds_policy <<= policy;
+
+ if (!EntityFactoryPolicyTest::check (dds_policy.entity_factory, policy.entity_factory))
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR DOMAIN PARTICIPANT : "
+ "Error in EntityFactoryQosPolicy.\n"));
+ ++ret;
+ }
+
+ if (!UserDataPolicyTest::check (dds_policy.user_data, policy.user_data))
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR DOMAIN PARTICIPANT : "
+ "Error in UserDataQosPolicy.\n"));
+ ++ret;
+ }
+ }
+ catch (...)
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR DOMAIN PARTICIPANT: Unexpected exception caught."));
+ return -1;
+ }
+ return ret;
+}
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/dp_qos_test.h b/modules/CIAO/connectors/dds4ccm/tests/Policies/dp_qos_test.h
new file mode 100644
index 00000000000..9694f56b2b7
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/dp_qos_test.h
@@ -0,0 +1,18 @@
+//$Id$
+
+#ifndef DOMAINPARTICIPANT_QOS_TEST_H_
+#define DOMAINPARTICIPANT_QOS_TEST_H_
+
+#include "dds4ccm/idl/dds_rtf2_dcpsC.h"
+#include "ndds/ndds_cpp.h"
+#include "dds4ccm/impl/dds/ndds/DomainParticipantQos.h"
+
+class DomainParticipantPolicyTest
+{
+public:
+ DomainParticipantPolicyTest ();
+
+ int run ();
+};
+
+#endif /* DOMAINPARTICIPANT_QOS_TEST_H_ */
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/dr_qos_test.cpp b/modules/CIAO/connectors/dds4ccm/tests/Policies/dr_qos_test.cpp
new file mode 100644
index 00000000000..dab0f245666
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/dr_qos_test.cpp
@@ -0,0 +1,137 @@
+// $Id$
+
+#include "dr_qos_test.h"
+
+#include "dur_qos_test.h"
+#include "deadline_qos_test.h"
+#include "lat_budget_qos_test.h"
+#include "liveliness_qos_test.h"
+#include "reliability_qos_test.h"
+#include "dest_order_qos_test.h"
+#include "hist_qos_test.h"
+#include "resource_limits_qos_test.h"
+#include "user_data_qos_test.h"
+#include "ownership_qos_test.h"
+#include "tbf_qos_test.h"
+#include "rd_lifecycle_qos_test.h"
+
+DatareaderPolicyTest::DatareaderPolicyTest ()
+{
+}
+
+int
+DatareaderPolicyTest::run ()
+{
+ int ret = 0;
+ try
+ {
+ ::DDS::DataReaderQos policy;
+ DDS_DataReaderQos dds_policy_org, dds_policy;
+
+ dds_policy_org = DDS_DATAREADER_QOS_DEFAULT;
+
+ policy <<= dds_policy_org;
+ dds_policy <<= policy;
+
+ if (!DurabilityPolicyTest::check (dds_policy.durability,
+ policy.durability))
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR DATAREADER : "
+ "Error in DurabilityQosPolicy.\n"));
+ ++ret;
+ }
+
+ if (!DeadlinePolicyTest::check (dds_policy.deadline,
+ policy.deadline))
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR DATAREADER : "
+ "Error in DeadlineQosPolicy.\n"));
+ ++ret;
+ }
+
+ if (!LatencyBudgetPolicyTest::check (dds_policy.latency_budget,
+ policy.latency_budget))
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR DATAREADER : "
+ "Error in LatencyBudgetQosPolicy.\n"));
+ ++ret;
+ }
+
+ if (!LivelinessPolicyTest::check (dds_policy.liveliness,
+ policy.liveliness))
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR DATAREADER : "
+ "Error in LivelinessQosPolicy.\n"));
+ ++ret;
+ }
+
+ if (!ReliabilityPolicyTest::check (dds_policy.reliability,
+ policy.reliability))
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR DATAREADER : "
+ "Error in ReliabilityQosPolicy.\n"));
+ ++ret;
+ }
+
+ if (!DestinationOrderPolicyTest::check (dds_policy.destination_order,
+ policy.destination_order))
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR DATAREADER : "
+ "Error in DestinationOrderQosPolicy.\n"));
+ ++ret;
+ }
+
+ if (!HistoryPolicyTest::check (dds_policy.history,
+ policy.history))
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR DATAREADER : "
+ "Error in HistoryQosPolicy.\n"));
+ ++ret;
+ }
+
+ if (!ResourceLimitsPolicyTest::check (dds_policy.resource_limits,
+ policy.resource_limits))
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR DATAREADER : "
+ "Error in ResourceLimitsQosPolicy.\n"));
+ ++ret;
+ }
+
+ if (!UserDataPolicyTest::check (dds_policy.user_data, policy.user_data))
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR DATAREADER : "
+ "Error in UserDataQosPolicy.\n"));
+ ++ret;
+ }
+
+ if (!OwnershipPolicyTest::check (dds_policy.ownership,
+ policy.ownership))
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR DATAREADER : "
+ "Error in OwnershipQosPolicy.\n"));
+ ++ret;
+ }
+
+ if (!TimeBasedFilterPolicyTest::check (dds_policy.time_based_filter,
+ policy.time_based_filter))
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR DATAREADER : "
+ "Error in TimeBasedFilterQosPolicy.\n"));
+ ++ret;
+ }
+
+ if (!ReaderDataLifecyclePolicyTest::check (dds_policy.reader_data_lifecycle,
+ policy.reader_data_lifecycle))
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR DATAREADER : "
+ "Error in ReaderDataLifecycleQosPolicy.\n"));
+ ++ret;
+ }
+ }
+ catch (...)
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR DATAREADER: Unexpected exception caught."));
+ return -1;
+ }
+ return ret;
+}
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/dr_qos_test.h b/modules/CIAO/connectors/dds4ccm/tests/Policies/dr_qos_test.h
new file mode 100644
index 00000000000..ab276d80429
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/dr_qos_test.h
@@ -0,0 +1,18 @@
+// $Id$
+
+#ifndef DATAREADER_QOS_TEST_H_
+#define DATAREADER_QOS_TEST_H_
+
+#include "dds4ccm/idl/dds_rtf2_dcpsC.h"
+#include "ndds/ndds_cpp.h"
+#include "dds4ccm/impl/dds/ndds/DataReaderQos.h"
+
+class DatareaderPolicyTest
+{
+public:
+ DatareaderPolicyTest ();
+
+ int run ();
+};
+
+#endif /* DATAREADER_QOS_TEST_H_ */
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/dur_qos_test.cpp b/modules/CIAO/connectors/dds4ccm/tests/Policies/dur_qos_test.cpp
new file mode 100644
index 00000000000..3a85ace802b
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/dur_qos_test.cpp
@@ -0,0 +1,15 @@
+// $Id$
+
+#include "dur_qos_test.h"
+
+DurabilityPolicyTest::DurabilityPolicyTest ()
+{
+}
+
+
+bool
+DurabilityPolicyTest::check (const ::DDS_DurabilityQosPolicy & dds_qos,
+ const ::DDS::DurabilityQosPolicy & qos)
+{
+ return dds_qos.kind == static_cast <DDS_DurabilityQosPolicyKind> (qos.kind);
+}
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/dur_qos_test.h b/modules/CIAO/connectors/dds4ccm/tests/Policies/dur_qos_test.h
new file mode 100644
index 00000000000..e2ec969df10
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/dur_qos_test.h
@@ -0,0 +1,19 @@
+//$Id$
+
+#ifndef DURABILITY_QOS_TEST_H_
+#define DURABILITY_QOS_TEST_H_
+
+#include "dds4ccm/idl/dds_rtf2_dcpsC.h"
+#include "ndds/ndds_cpp.h"
+#include "dds4ccm/impl/dds/ndds/DurabilityQosPolicy.h"
+
+class DurabilityPolicyTest
+{
+public:
+ DurabilityPolicyTest ();
+
+ static bool check (const ::DDS_DurabilityQosPolicy & dds_qos,
+ const ::DDS::DurabilityQosPolicy & qos);
+};
+
+#endif /* DURABILITY_QOS_TEST_H_ */
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/dur_service_qos_test.cpp b/modules/CIAO/connectors/dds4ccm/tests/Policies/dur_service_qos_test.cpp
new file mode 100644
index 00000000000..eabe851a291
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/dur_service_qos_test.cpp
@@ -0,0 +1,19 @@
+// $Id$
+
+#include "dur_service_qos_test.h"
+
+DurabilityServicePolicyTest::DurabilityServicePolicyTest ()
+{
+}
+
+bool
+DurabilityServicePolicyTest::check (const ::DDS_DurabilityServiceQosPolicy & dds_qos,
+ const ::DDS::DurabilityServiceQosPolicy & qos)
+{
+ return dds_qos.service_cleanup_delay.sec == qos.service_cleanup_delay.sec &&
+ dds_qos.history_kind == static_cast <DDS_HistoryQosPolicyKind> (qos.history_kind) &&
+ dds_qos.history_depth == qos.history_depth &&
+ dds_qos.max_samples == qos.max_samples &&
+ dds_qos.max_instances == qos.max_instances &&
+ dds_qos.max_samples_per_instance == qos.max_samples_per_instance;
+}
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/dur_service_qos_test.h b/modules/CIAO/connectors/dds4ccm/tests/Policies/dur_service_qos_test.h
new file mode 100644
index 00000000000..4b212a2745a
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/dur_service_qos_test.h
@@ -0,0 +1,19 @@
+//$Id$
+
+#ifndef DURABILITY_SERVICE_QOS_TEST_H_
+#define DURABILITY_SERVICE_QOS_TEST_H_
+
+#include "dds4ccm/idl/dds_rtf2_dcpsC.h"
+#include "ndds/ndds_cpp.h"
+#include "dds4ccm/impl/dds/ndds/DurabilityServiceQosPolicy.h"
+
+class DurabilityServicePolicyTest
+{
+public:
+ DurabilityServicePolicyTest ();
+
+ static bool check (const ::DDS_DurabilityServiceQosPolicy & dds_qos,
+ const ::DDS::DurabilityServiceQosPolicy & qos);
+};
+
+#endif /* DURABILITY_SERVICE_QOS_TEST_H_ */
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/duration.cpp b/modules/CIAO/connectors/dds4ccm/tests/Policies/duration.cpp
new file mode 100644
index 00000000000..83d0483c909
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/duration.cpp
@@ -0,0 +1,16 @@
+//$Id$
+
+#include "duration.h"
+
+Duration::Duration ()
+{
+}
+
+
+bool
+Duration::check (const ::DDS_Duration_t & dds_dur,
+ const ::DDS::Duration_t & dur)
+{
+ return dds_dur.sec == dur.sec &&
+ dds_dur.nanosec == dur.nanosec;
+}
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/duration.h b/modules/CIAO/connectors/dds4ccm/tests/Policies/duration.h
new file mode 100644
index 00000000000..dae8057bfb4
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/duration.h
@@ -0,0 +1,19 @@
+//$Id$
+
+#ifndef DURATION_H_
+#define DURATION_H_
+
+#include "dds4ccm/idl/dds_rtf2_dcpsC.h"
+#include "ndds/ndds_cpp.h"
+#include "dds4ccm/impl/dds/ndds/Duration_t.h"
+
+class Duration
+{
+public:
+ Duration ();
+
+ static bool check (const ::DDS_Duration_t & dds_dur,
+ const ::DDS::Duration_t & dur);
+};
+
+#endif /* DURATION_H_ */
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/dw_qos_test.cpp b/modules/CIAO/connectors/dds4ccm/tests/Policies/dw_qos_test.cpp
new file mode 100644
index 00000000000..6e4278e1b04
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/dw_qos_test.cpp
@@ -0,0 +1,164 @@
+// $Id$
+
+#include "dw_qos_test.h"
+
+#include "dur_qos_test.h"
+#include "dur_service_qos_test.h"
+#include "deadline_qos_test.h"
+#include "lat_budget_qos_test.h"
+#include "liveliness_qos_test.h"
+#include "reliability_qos_test.h"
+#include "dest_order_qos_test.h"
+#include "hist_qos_test.h"
+#include "resource_limits_qos_test.h"
+#include "transport_prio_qos_test.h"
+#include "lifespan_qos_test.h"
+#include "user_data_qos_test.h"
+#include "ownership_qos_test.h"
+#include "ownership_strength_qos_test.h"
+#include "wr_lifecycle_qos_test.h"
+
+DatawriterPolicyTest::DatawriterPolicyTest ()
+{
+}
+
+int
+DatawriterPolicyTest::run ()
+{
+ int ret = 0;
+ try
+ {
+ ::DDS::DataWriterQos policy;
+ DDS_DataWriterQos dds_policy_org, dds_policy;
+
+ dds_policy_org = DDS_DATAWRITER_QOS_DEFAULT;
+
+ policy <<= dds_policy_org;
+ dds_policy <<= policy;
+
+ if (!DurabilityPolicyTest::check (dds_policy.durability,
+ policy.durability))
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR DATAWRITER : "
+ "Error in DurabilityQosPolicy.\n"));
+ ++ret;
+ }
+
+ if (!DurabilityServicePolicyTest::check (dds_policy.durability_service,
+ policy.durability_service))
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR DATAWRITER : "
+ "Error in DurabilityServiceQosPolicy.\n"));
+ ++ret;
+ }
+
+ if (!DeadlinePolicyTest::check (dds_policy.deadline,
+ policy.deadline))
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR DATAWRITER : "
+ "Error in DeadlineQosPolicy.\n"));
+ ++ret;
+ }
+
+ if (!LatencyBudgetPolicyTest::check (dds_policy.latency_budget,
+ policy.latency_budget))
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR DATAWRITER : "
+ "Error in LatencyBudgetQosPolicy.\n"));
+ ++ret;
+ }
+
+ if (!LivelinessPolicyTest::check (dds_policy.liveliness,
+ policy.liveliness))
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR DATAWRITER : "
+ "Error in LivelinessQosPolicy.\n"));
+ ++ret;
+ }
+
+ if (!ReliabilityPolicyTest::check (dds_policy.reliability,
+ policy.reliability))
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR DATAWRITER : "
+ "Error in ReliabilityQosPolicy.\n"));
+ ++ret;
+ }
+
+ if (!DestinationOrderPolicyTest::check (dds_policy.destination_order,
+ policy.destination_order))
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR DATAWRITER : "
+ "Error in DestinationOrderQosPolicy.\n"));
+ ++ret;
+ }
+
+ if (!HistoryPolicyTest::check (dds_policy.history,
+ policy.history))
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR DATAWRITER : "
+ "Error in HistoryQosPolicy.\n"));
+ ++ret;
+ }
+
+ if (!ResourceLimitsPolicyTest::check (dds_policy.resource_limits,
+ policy.resource_limits))
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR DATAWRITER : "
+ "Error in ResourceLimitsQosPolicy.\n"));
+ ++ret;
+ }
+
+ if (!TransportPriorityPolicyTest::check (dds_policy.transport_priority,
+ policy.transport_priority))
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR DATAWRITER : "
+ "Error in TransportPriorityQosPolicy.\n"));
+ ++ret;
+ }
+
+ if (!LifespanPolicyTest::check (dds_policy.lifespan,
+ policy.lifespan))
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR DATAWRITER : "
+ "Error in LifespanQosPolicy.\n"));
+ ++ret;
+ }
+
+ if (!UserDataPolicyTest::check (dds_policy.user_data, policy.user_data))
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR DATAWRITER : "
+ "Error in UserDataQosPolicy.\n"));
+ ++ret;
+ }
+
+ if (!OwnershipPolicyTest::check (dds_policy.ownership,
+ policy.ownership))
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR DATAWRITER : "
+ "Error in OwnershipQosPolicy.\n"));
+ ++ret;
+ }
+
+ if (!OwnershipStrengthPolicyTest::check (dds_policy.ownership_strength,
+ policy.ownership_strength))
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR DATAWRITER : "
+ "Error in OwnershipStrengthQosPolicy.\n"));
+ ++ret;
+ }
+
+ if (!WriterDataLifecyclePolicyTest::check (dds_policy.writer_data_lifecycle,
+ policy.writer_data_lifecycle))
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR DATAWRITER : "
+ "Error in WriterDataLifecycleQosPolicy.\n"));
+ ++ret;
+ }
+ }
+ catch (...)
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR DATAWRITER: Unexpected exception caught."));
+ return -1;
+ }
+ return ret;
+}
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/dw_qos_test.h b/modules/CIAO/connectors/dds4ccm/tests/Policies/dw_qos_test.h
new file mode 100644
index 00000000000..23bf760321b
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/dw_qos_test.h
@@ -0,0 +1,18 @@
+// $Id$
+
+#ifndef DATAWRITER_QOS_TEST_H_
+#define DATAWRITER_QOS_TEST_H_
+
+#include "dds4ccm/idl/dds_rtf2_dcpsC.h"
+#include "ndds/ndds_cpp.h"
+#include "dds4ccm/impl/dds/ndds/DataWriterQos.h"
+
+class DatawriterPolicyTest
+{
+public:
+ DatawriterPolicyTest ();
+
+ int run ();
+};
+
+#endif /* DATAWRITER_QOS_TEST_H_ */
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/entity_factory_qos_test.cpp b/modules/CIAO/connectors/dds4ccm/tests/Policies/entity_factory_qos_test.cpp
new file mode 100644
index 00000000000..4bc00e2434f
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/entity_factory_qos_test.cpp
@@ -0,0 +1,15 @@
+// $Id$
+
+#include "entity_factory_qos_test.h"
+
+EntityFactoryPolicyTest::EntityFactoryPolicyTest ()
+{
+}
+
+bool
+EntityFactoryPolicyTest::check (const ::DDS_EntityFactoryQosPolicy & dds_qos,
+ const ::DDS::EntityFactoryQosPolicy & qos)
+{
+ return dds_qos.autoenable_created_entities ==
+ static_cast <DDS_Boolean> (qos.autoenable_created_entities);
+}
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/entity_factory_qos_test.h b/modules/CIAO/connectors/dds4ccm/tests/Policies/entity_factory_qos_test.h
new file mode 100644
index 00000000000..ef53fb43aea
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/entity_factory_qos_test.h
@@ -0,0 +1,19 @@
+// $Id$
+
+#ifndef ENTITY_FACTORY_QOS_TEST_H_
+#define ENTITY_FACTORY_QOS_TEST_H_
+
+#include "dds4ccm/idl/dds_rtf2_dcpsC.h"
+#include "ndds/ndds_cpp.h"
+#include "dds4ccm/impl/dds/ndds/EntityFactoryQosPolicy.h"
+
+class EntityFactoryPolicyTest
+{
+public:
+ EntityFactoryPolicyTest ();
+
+ static bool check (const ::DDS_EntityFactoryQosPolicy & dds_qos,
+ const ::DDS::EntityFactoryQosPolicy & qos);
+};
+
+#endif /* ENTITY_FACTORY_QOS_TEST_H_ */
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/group_data_qos_test.cpp b/modules/CIAO/connectors/dds4ccm/tests/Policies/group_data_qos_test.cpp
new file mode 100644
index 00000000000..e1100e04cc2
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/group_data_qos_test.cpp
@@ -0,0 +1,18 @@
+// $Id$
+
+#include "group_data_qos_test.h"
+
+#include "octet_seq.h"
+
+GroupDataPolicyTest::GroupDataPolicyTest ()
+{
+}
+
+bool
+GroupDataPolicyTest::check (const ::DDS_GroupDataQosPolicy & dds_qos,
+ const ::DDS::GroupDataQosPolicy & qos)
+{
+ return OctetSequence::check (dds_qos.value,
+ qos.value,
+ "GroupDataPolicyTest");
+}
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/group_data_qos_test.h b/modules/CIAO/connectors/dds4ccm/tests/Policies/group_data_qos_test.h
new file mode 100644
index 00000000000..ba5347e505e
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/group_data_qos_test.h
@@ -0,0 +1,19 @@
+// $Id$
+
+#ifndef GROUP_DATA_QOS_TEST_H_
+#define GROUP_DATA_QOS_TEST_H_
+
+#include "dds4ccm/idl/dds_rtf2_dcpsC.h"
+#include "ndds/ndds_cpp.h"
+#include "dds4ccm/impl/dds/ndds/GroupDataQosPolicy.h"
+
+class GroupDataPolicyTest
+{
+public:
+ GroupDataPolicyTest ();
+
+ static bool check (const ::DDS_GroupDataQosPolicy & dds_qos,
+ const ::DDS::GroupDataQosPolicy & qos);
+};
+
+#endif /* GROUP_DATA_QOS_TEST_H_ */
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/hist_qos_test.cpp b/modules/CIAO/connectors/dds4ccm/tests/Policies/hist_qos_test.cpp
new file mode 100644
index 00000000000..e65aa5ff338
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/hist_qos_test.cpp
@@ -0,0 +1,16 @@
+// $Id$
+
+#include "hist_qos_test.h"
+
+HistoryPolicyTest::HistoryPolicyTest ()
+{
+}
+
+bool
+HistoryPolicyTest::check (const ::DDS_HistoryQosPolicy & dds_qos,
+ const ::DDS::HistoryQosPolicy & qos)
+{
+
+ return dds_qos.kind == static_cast <DDS_HistoryQosPolicyKind> (qos.kind) &&
+ dds_qos.depth == qos.depth;
+}
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/hist_qos_test.h b/modules/CIAO/connectors/dds4ccm/tests/Policies/hist_qos_test.h
new file mode 100644
index 00000000000..0290a8bd519
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/hist_qos_test.h
@@ -0,0 +1,19 @@
+//$Id$
+
+#ifndef HISTORY_QOS_TEST_H_
+#define HISTORY_QOS_TEST_H_
+
+#include "dds4ccm/idl/dds_rtf2_dcpsC.h"
+#include "ndds/ndds_cpp.h"
+#include "dds4ccm/impl/dds/ndds/HistoryQosPolicy.h"
+
+class HistoryPolicyTest
+{
+public:
+ HistoryPolicyTest ();
+
+ static bool check (const ::DDS_HistoryQosPolicy & dds_qos,
+ const ::DDS::HistoryQosPolicy & qos);
+};
+
+#endif /* HISTORY_QOS_TEST_H_ */
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/lat_budget_qos_test.cpp b/modules/CIAO/connectors/dds4ccm/tests/Policies/lat_budget_qos_test.cpp
new file mode 100644
index 00000000000..5a530caa2cc
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/lat_budget_qos_test.cpp
@@ -0,0 +1,16 @@
+// $Id$
+
+#include "lat_budget_qos_test.h"
+
+#include "duration.h"
+
+LatencyBudgetPolicyTest::LatencyBudgetPolicyTest ()
+{
+}
+
+bool
+LatencyBudgetPolicyTest::check (const ::DDS_LatencyBudgetQosPolicy & dds_qos,
+ const ::DDS::LatencyBudgetQosPolicy & qos)
+{
+ return Duration::check (dds_qos.duration, qos.duration);
+}
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/lat_budget_qos_test.h b/modules/CIAO/connectors/dds4ccm/tests/Policies/lat_budget_qos_test.h
new file mode 100644
index 00000000000..be70a034310
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/lat_budget_qos_test.h
@@ -0,0 +1,19 @@
+//$Id$
+
+#ifndef LATENCY_BUDGET_QOS_TEST_H_
+#define LATENCY_BUDGET_QOS_TEST_H_
+
+#include "dds4ccm/idl/dds_rtf2_dcpsC.h"
+#include "ndds/ndds_cpp.h"
+#include "dds4ccm/impl/dds/ndds/LatencyBudgetQosPolicy.h"
+
+class LatencyBudgetPolicyTest
+{
+public:
+ LatencyBudgetPolicyTest ();
+
+ static bool check (const ::DDS_LatencyBudgetQosPolicy & dds_qos,
+ const ::DDS::LatencyBudgetQosPolicy & qos);
+};
+
+#endif /* LATENCY_BUDGET_QOS_TEST_H_ */
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/lifespan_qos_test.cpp b/modules/CIAO/connectors/dds4ccm/tests/Policies/lifespan_qos_test.cpp
new file mode 100644
index 00000000000..ee02d9aa09c
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/lifespan_qos_test.cpp
@@ -0,0 +1,16 @@
+// $Id$
+
+#include "lifespan_qos_test.h"
+
+#include "duration.h"
+
+LifespanPolicyTest::LifespanPolicyTest ()
+{
+}
+
+bool
+LifespanPolicyTest::check (const ::DDS_LifespanQosPolicy & dds_qos,
+ const ::DDS::LifespanQosPolicy & qos)
+{
+ return Duration::check (dds_qos.duration, qos.duration);
+}
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/lifespan_qos_test.h b/modules/CIAO/connectors/dds4ccm/tests/Policies/lifespan_qos_test.h
new file mode 100644
index 00000000000..482a2927450
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/lifespan_qos_test.h
@@ -0,0 +1,19 @@
+//$Id$
+
+#ifndef LIFESPAN_QOS_TEST_H_
+#define LIFESPAN_QOS_TEST_H_
+
+#include "dds4ccm/idl/dds_rtf2_dcpsC.h"
+#include "ndds/ndds_cpp.h"
+#include "dds4ccm/impl/dds/ndds/LifespanQosPolicy.h"
+
+class LifespanPolicyTest
+{
+public:
+ LifespanPolicyTest ();
+
+ static bool check (const ::DDS_LifespanQosPolicy & dds_qos,
+ const ::DDS::LifespanQosPolicy & qos);
+};
+
+#endif /* LIFESPAN_QOS_TEST_H_ */
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/liveliness_qos_test.cpp b/modules/CIAO/connectors/dds4ccm/tests/Policies/liveliness_qos_test.cpp
new file mode 100644
index 00000000000..b9f364a703f
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/liveliness_qos_test.cpp
@@ -0,0 +1,17 @@
+// $Id$
+
+#include "liveliness_qos_test.h"
+
+#include "duration.h"
+
+LivelinessPolicyTest::LivelinessPolicyTest ()
+{
+}
+
+bool
+LivelinessPolicyTest::check (const ::DDS_LivelinessQosPolicy & dds_qos,
+ const ::DDS::LivelinessQosPolicy & qos)
+{
+ return dds_qos.kind == static_cast <DDS_LivelinessQosPolicyKind> (qos.kind) &&
+ Duration::check (dds_qos.lease_duration, qos.lease_duration);
+}
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/liveliness_qos_test.h b/modules/CIAO/connectors/dds4ccm/tests/Policies/liveliness_qos_test.h
new file mode 100644
index 00000000000..a1d9208879c
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/liveliness_qos_test.h
@@ -0,0 +1,19 @@
+//$Id$
+
+#ifndef LIVELINESS_QOS_TEST_H_
+#define LIVELINESS_QOS_TEST_H_
+
+#include "dds4ccm/idl/dds_rtf2_dcpsC.h"
+#include "ndds/ndds_cpp.h"
+#include "dds4ccm/impl/dds/ndds/LivelinessQosPolicy.h"
+
+class LivelinessPolicyTest
+{
+public:
+ LivelinessPolicyTest ();
+
+ static bool check (const ::DDS_LivelinessQosPolicy & dds_qos,
+ const ::DDS::LivelinessQosPolicy & qos);
+};
+
+#endif /* LIVELINESS_QOS_TEST_H_ */
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/main.cpp b/modules/CIAO/connectors/dds4ccm/tests/Policies/main.cpp
new file mode 100644
index 00000000000..985081f29ae
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/main.cpp
@@ -0,0 +1,73 @@
+// $Id$
+
+#include "ace/OS_main.h"
+#include "ace/Log_Msg.h"
+
+#include "pub_qos_test.h"
+#include "sub_qos_test.h"
+#include "dw_qos_test.h"
+#include "dr_qos_test.h"
+#include "tp_qos_test.h"
+#include "dp_qos_test.h"
+
+int handle_result (const int & result,
+ const char * test)
+{
+ int ret = 0;
+ if (result == -1)
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR POLICIES : "
+ "Exception caught while testing "
+ "%C QoS\n",
+ test));
+ }
+ else if (result > 0)
+ {
+ ret = result;
+ ACE_ERROR ((LM_ERROR, "ERROR POLICIES : "
+ "<%d> errors found while testing "
+ "%C QoS\n",
+ result, test));
+ }
+ else
+ {
+ ACE_DEBUG ((LM_DEBUG, "%C QoS test passed!\n",
+ test));
+ }
+ return ret;
+}
+
+int
+ACE_TMAIN (int , ACE_TCHAR **)
+{
+ PublisherPolicyTest publisher;
+ SubscriberPolicyTest subscriber;
+ DatawriterPolicyTest datawriter;
+ DatareaderPolicyTest datareader;
+ TopicPolicyTest topic;
+ DomainParticipantPolicyTest domainparticipant;
+
+ int ret = 0;
+ int test = 0;
+ try
+ {
+ test = publisher.run ();
+ ret += handle_result (test, "Publisher");
+ test = subscriber.run ();
+ ret += handle_result (test, "Subscriber");
+ test = datawriter.run ();
+ ret += handle_result (test, "Datawriter");
+ test = datareader.run ();
+ ret += handle_result (test, "DataReader");
+ test = topic.run ();
+ ret += handle_result (test, "Topic");
+ test = domainparticipant.run ();
+ ret += handle_result (test, "DomainParticipant");
+ }
+ catch (...)
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR: Unexpected exception caught."));
+ return -1;
+ }
+ return 0;
+}
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/octet_seq.cpp b/modules/CIAO/connectors/dds4ccm/tests/Policies/octet_seq.cpp
new file mode 100644
index 00000000000..9912b6f1eee
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/octet_seq.cpp
@@ -0,0 +1,34 @@
+//$Id$
+
+#include "octet_seq.h"
+
+OctetSequence::OctetSequence ()
+{
+}
+
+bool
+OctetSequence::check (const ::DDS_OctetSeq & dds_seq,
+ const ::DDS::OctetSeq & seq,
+ const char * test)
+{
+ if (static_cast < ::CORBA::ULong> (dds_seq.length ()) !=
+ seq.length ())
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR %C : "
+ "Length group_data is not equal to original length.\n",
+ test));
+ return false;
+ }
+
+ for (::DDS_Long i = 0; i < dds_seq.length (); ++i)
+ {
+ if (seq[i] != dds_seq[i])
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR %C : "
+ "Item %d of group_data is not equal to original.\n",
+ test, i));
+ return false;
+ }
+ }
+ return true;
+}
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/octet_seq.h b/modules/CIAO/connectors/dds4ccm/tests/Policies/octet_seq.h
new file mode 100644
index 00000000000..62401a7630d
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/octet_seq.h
@@ -0,0 +1,20 @@
+//$Id$
+
+#ifndef OCTET_SEQ_H_
+#define OCTET_SEQ_H_
+
+#include "dds4ccm/idl/dds_rtf2_dcpsC.h"
+#include "ndds/ndds_cpp.h"
+#include "dds4ccm/impl/dds/ndds/OctetSeq.h"
+
+class OctetSequence
+{
+public:
+ OctetSequence ();
+
+ static bool check (const ::DDS_OctetSeq & dds_seq,
+ const ::DDS::OctetSeq & seq,
+ const char * test);
+};
+
+#endif /* OCTET_SEQ_H_ */
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/ownership_qos_test.cpp b/modules/CIAO/connectors/dds4ccm/tests/Policies/ownership_qos_test.cpp
new file mode 100644
index 00000000000..b439bfe1b74
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/ownership_qos_test.cpp
@@ -0,0 +1,15 @@
+// $Id$
+
+#include "ownership_qos_test.h"
+
+OwnershipPolicyTest::OwnershipPolicyTest ()
+{
+}
+
+bool
+OwnershipPolicyTest::check (const ::DDS_OwnershipQosPolicy & dds_qos,
+ const ::DDS::OwnershipQosPolicy & qos)
+{
+ return dds_qos.kind ==
+ static_cast <DDS_OwnershipQosPolicyKind> (qos.kind);
+}
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/ownership_qos_test.h b/modules/CIAO/connectors/dds4ccm/tests/Policies/ownership_qos_test.h
new file mode 100644
index 00000000000..1307c7f6037
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/ownership_qos_test.h
@@ -0,0 +1,19 @@
+//$Id$
+
+#ifndef OWNERSHIP_QOS_TEST_H_
+#define OWNERSHIP_QOS_TEST_H_
+
+#include "dds4ccm/idl/dds_rtf2_dcpsC.h"
+#include "ndds/ndds_cpp.h"
+#include "dds4ccm/impl/dds/ndds/OwnershipQosPolicy.h"
+
+class OwnershipPolicyTest
+{
+public:
+ OwnershipPolicyTest ();
+
+ static bool check (const ::DDS_OwnershipQosPolicy & dds_qos,
+ const ::DDS::OwnershipQosPolicy & qos);
+};
+
+#endif /* OWNERSHIP_QOS_TEST_H_ */
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/ownership_strength_qos_test.cpp b/modules/CIAO/connectors/dds4ccm/tests/Policies/ownership_strength_qos_test.cpp
new file mode 100644
index 00000000000..d65bd7f725a
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/ownership_strength_qos_test.cpp
@@ -0,0 +1,14 @@
+// $Id$
+
+#include "ownership_strength_qos_test.h"
+
+OwnershipStrengthPolicyTest::OwnershipStrengthPolicyTest ()
+{
+}
+
+bool
+OwnershipStrengthPolicyTest::check (const ::DDS_OwnershipStrengthQosPolicy & dds_qos,
+ const ::DDS::OwnershipStrengthQosPolicy & qos)
+{
+ return dds_qos.value == qos.value;
+}
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/ownership_strength_qos_test.h b/modules/CIAO/connectors/dds4ccm/tests/Policies/ownership_strength_qos_test.h
new file mode 100644
index 00000000000..36e3169b594
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/ownership_strength_qos_test.h
@@ -0,0 +1,19 @@
+//$Id$
+
+#ifndef OWNERSHIP_STRENGTH_QOS_TEST_H_
+#define OWNERSHIP_STRENGTH_QOS_TEST_H_
+
+#include "dds4ccm/idl/dds_rtf2_dcpsC.h"
+#include "ndds/ndds_cpp.h"
+#include "dds4ccm/impl/dds/ndds/OwnershipStrengthQosPolicy.h"
+
+class OwnershipStrengthPolicyTest
+{
+public:
+ OwnershipStrengthPolicyTest ();
+
+ static bool check (const ::DDS_OwnershipStrengthQosPolicy & dds_qos,
+ const ::DDS::OwnershipStrengthQosPolicy & qos);
+};
+
+#endif /* OWNERSHIP_STRENGTH_QOS_TEST_H_ */
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/partition_qos_test.cpp b/modules/CIAO/connectors/dds4ccm/tests/Policies/partition_qos_test.cpp
new file mode 100644
index 00000000000..f0f56774186
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/partition_qos_test.cpp
@@ -0,0 +1,33 @@
+// $Id$
+
+#include "partition_qos_test.h"
+
+PartitionPolicyTest::PartitionPolicyTest ()
+{
+}
+
+bool
+PartitionPolicyTest::check (const ::DDS_PartitionQosPolicy & dds_qos,
+ const ::DDS::PartitionQosPolicy & qos)
+{
+ if (static_cast <CORBA::ULong> (dds_qos.name.length ()) !=
+ qos.name.length ())
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR PartitionPolicyTest : "
+ "Length name sequence is not equal "
+ "to original length.\n"));
+ return false;
+ }
+ for (DDS_Long i = 0; i < dds_qos.name.length (); ++i)
+ {
+ if (ACE_OS::strcmp (dds_qos.name[i], qos.name[i]) != 0)
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR PartitionPolicyTest : "
+ "Item %d of name sequence is not equal "
+ "to original.\n",
+ i));
+ return false;
+ }
+ }
+ return true;
+}
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/partition_qos_test.h b/modules/CIAO/connectors/dds4ccm/tests/Policies/partition_qos_test.h
new file mode 100644
index 00000000000..6fef89f535d
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/partition_qos_test.h
@@ -0,0 +1,19 @@
+//$Id$
+
+#ifndef PARTITION_QOS_TEST_H_
+#define PARTITION_QOS_TEST_H_
+
+#include "dds4ccm/idl/dds_rtf2_dcpsC.h"
+#include "ndds/ndds_cpp.h"
+#include "dds4ccm/impl/dds/ndds/PartitionQosPolicy.h"
+
+class PartitionPolicyTest
+{
+public:
+ PartitionPolicyTest ();
+
+ static bool check (const ::DDS_PartitionQosPolicy & dds_qos,
+ const ::DDS::PartitionQosPolicy & qos);
+};
+
+#endif /* PARTITION_QOS_TEST_H_ */
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/policies.mpc b/modules/CIAO/connectors/dds4ccm/tests/Policies/policies.mpc
new file mode 100644
index 00000000000..02e68929f89
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/policies.mpc
@@ -0,0 +1,46 @@
+// $Id$
+
+project(DDS_Policies_Test) : taoexe, dds4ccm_base {
+ includes += $(CIAO_ROOT)
+ exename = policies_test
+ requires += dds4ccm_ndds
+
+ Source_Files {
+ deadline_qos_test.cpp
+ dest_order_qos_test.cpp
+ dp_factory_qos_test.cpp
+ dp_qos_test.cpp
+ dr_qos_test.cpp
+ dur_qos_test.cpp
+ dur_service_qos_test.cpp
+ dw_qos_test.cpp
+ entity_factory_qos_test.cpp
+ group_data_qos_test.cpp
+ hist_qos_test.cpp
+ lat_budget_qos_test.cpp
+ lifespan_qos_test.cpp
+ liveliness_qos_test.cpp
+ main.cpp
+ ownership_qos_test.cpp
+ partition_qos_test.cpp
+ presentation_qos_test.cpp
+ pub_qos_test.cpp
+ reliability_qos_test.cpp
+ resource_limits_qos_test.cpp
+ sub_qos_test.cpp
+ tp_data_qos_test.cpp
+ tp_qos_test.cpp
+ transport_prio_qos_test.cpp
+ user_data_qos_test.cpp
+ rd_lifecycle_qos_test.cpp
+ tbf_qos_test.cpp
+ ownership_strength_qos_test.cpp
+ wr_lifecycle_qos_test.cpp
+ duration.cpp
+ octet_seq.cpp
+ }
+
+ Header_Files {
+ *.h
+ }
+}
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/presentation_qos_test.cpp b/modules/CIAO/connectors/dds4ccm/tests/Policies/presentation_qos_test.cpp
new file mode 100644
index 00000000000..540bf6e1315
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/presentation_qos_test.cpp
@@ -0,0 +1,19 @@
+// $Id$
+
+#include "presentation_qos_test.h"
+
+PresentationPolicyTest::PresentationPolicyTest ()
+{
+}
+
+bool
+PresentationPolicyTest::check (const ::DDS_PresentationQosPolicy & dds_qos,
+ const ::DDS::PresentationQosPolicy & qos)
+{
+ return dds_qos.access_scope ==
+ static_cast <DDS_PresentationQosPolicyAccessScopeKind>(qos.access_scope) &&
+ dds_qos.coherent_access ==
+ static_cast <DDS_Boolean> (qos.coherent_access) &&
+ dds_qos.ordered_access ==
+ static_cast <DDS_Boolean> (qos.ordered_access);
+}
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/presentation_qos_test.h b/modules/CIAO/connectors/dds4ccm/tests/Policies/presentation_qos_test.h
new file mode 100644
index 00000000000..4359e25632c
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/presentation_qos_test.h
@@ -0,0 +1,19 @@
+//$Id$
+
+#ifndef PRESENTATION_QOS_TEST_H_
+#define PRESENTATION_QOS_TEST_H_
+
+#include "dds4ccm/idl/dds_rtf2_dcpsC.h"
+#include "ndds/ndds_cpp.h"
+#include "dds4ccm/impl/dds/ndds/PresentationQosPolicy.h"
+
+class PresentationPolicyTest
+{
+public:
+ PresentationPolicyTest ();
+
+ static bool check (const ::DDS_PresentationQosPolicy & dds_qos,
+ const ::DDS::PresentationQosPolicy & qos);
+};
+
+#endif /* PRESENTATION_QOS_TEST_H_ */
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/pub_qos_test.cpp b/modules/CIAO/connectors/dds4ccm/tests/Policies/pub_qos_test.cpp
new file mode 100644
index 00000000000..7a3c0cb7737
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/pub_qos_test.cpp
@@ -0,0 +1,58 @@
+// $Id$
+
+#include "pub_qos_test.h"
+#include "group_data_qos_test.h"
+#include "entity_factory_qos_test.h"
+#include "presentation_qos_test.h"
+#include "partition_qos_test.h"
+
+PublisherPolicyTest::PublisherPolicyTest ()
+{
+}
+
+int
+PublisherPolicyTest::run ()
+{
+ int ret = 0;
+ try
+ {
+ ::DDS::PublisherQos policy;
+ DDS_PublisherQos dds_policy_org, dds_policy;
+
+ dds_policy_org = DDS_PUBLISHER_QOS_DEFAULT;
+
+ policy <<= dds_policy_org;
+ dds_policy <<= policy;
+
+ if (!PresentationPolicyTest::check (dds_policy.presentation, policy.presentation))
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR PUBLISHER : "
+ "Error in PresentationQosPolicy.\n"));
+ ++ret;
+ }
+ if (!PartitionPolicyTest::check (dds_policy.partition, policy.partition))
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR PUBLISHER : "
+ "Error in PartitionQosPolicy.\n"));
+ ++ret;
+ }
+ if (!GroupDataPolicyTest::check (dds_policy.group_data, policy.group_data))
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR PUBLISHER : "
+ "Error in GroupDataQosPolicy.\n"));
+ ++ret;
+ }
+ if (!EntityFactoryPolicyTest::check (dds_policy.entity_factory, policy.entity_factory))
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR PUBLISHER : "
+ "Error in EntityFactoryQosPolicy.\n"));
+ ++ret;
+ }
+ }
+ catch (...)
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR PUBLISHER: Unexpected exception caught."));
+ return -1;
+ }
+ return ret;
+}
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/pub_qos_test.h b/modules/CIAO/connectors/dds4ccm/tests/Policies/pub_qos_test.h
new file mode 100644
index 00000000000..c2d022aff88
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/pub_qos_test.h
@@ -0,0 +1,18 @@
+// $Id$
+
+#ifndef PUBLISHER_QOS_TEST_H_
+#define PUBLISHER_QOS_TEST_H_
+
+#include "dds4ccm/idl/dds_rtf2_dcpsC.h"
+#include "ndds/ndds_cpp.h"
+#include "dds4ccm/impl/dds/ndds/PublisherQos.h"
+
+class PublisherPolicyTest
+{
+public:
+ PublisherPolicyTest ();
+
+ int run ();
+};
+
+#endif /* PUBLISHER_QOS_TEST_H_ */
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/rd_lifecycle_qos_test.cpp b/modules/CIAO/connectors/dds4ccm/tests/Policies/rd_lifecycle_qos_test.cpp
new file mode 100644
index 00000000000..11574a4abfe
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/rd_lifecycle_qos_test.cpp
@@ -0,0 +1,19 @@
+// $Id$
+
+#include "rd_lifecycle_qos_test.h"
+
+#include "duration.h"
+
+ReaderDataLifecyclePolicyTest::ReaderDataLifecyclePolicyTest ()
+{
+}
+
+bool
+ReaderDataLifecyclePolicyTest::check (const ::DDS_ReaderDataLifecycleQosPolicy & dds_qos,
+ const ::DDS::ReaderDataLifecycleQosPolicy & qos)
+{
+ return Duration::check (dds_qos.autopurge_nowriter_samples_delay,
+ qos.autopurge_nowriter_samples_delay) &&
+ Duration::check (dds_qos.autopurge_disposed_samples_delay,
+ qos.autopurge_disposed_samples_delay);
+}
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/rd_lifecycle_qos_test.h b/modules/CIAO/connectors/dds4ccm/tests/Policies/rd_lifecycle_qos_test.h
new file mode 100644
index 00000000000..314704e1e96
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/rd_lifecycle_qos_test.h
@@ -0,0 +1,19 @@
+//$Id$
+
+#ifndef READER_DATA_LIFECYCLE_QOS_TEST_H_
+#define READER_DATA_LIFECYCLE_QOS_TEST_H_
+
+#include "dds4ccm/idl/dds_rtf2_dcpsC.h"
+#include "ndds/ndds_cpp.h"
+#include "dds4ccm/impl/dds/ndds/ReaderDataLifecycleQosPolicy.h"
+
+class ReaderDataLifecyclePolicyTest
+{
+public:
+ ReaderDataLifecyclePolicyTest ();
+
+ static bool check (const ::DDS_ReaderDataLifecycleQosPolicy & dds_qos,
+ const ::DDS::ReaderDataLifecycleQosPolicy & qos);
+};
+
+#endif /* READER_DATA_LIFECYCLE_QOS_TEST_H_ */
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/reliability_qos_test.cpp b/modules/CIAO/connectors/dds4ccm/tests/Policies/reliability_qos_test.cpp
new file mode 100644
index 00000000000..e4e405fdfc0
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/reliability_qos_test.cpp
@@ -0,0 +1,17 @@
+// $Id$
+
+#include "reliability_qos_test.h"
+
+#include "duration.h"
+
+ReliabilityPolicyTest::ReliabilityPolicyTest ()
+{
+}
+
+bool
+ReliabilityPolicyTest::check (const ::DDS_ReliabilityQosPolicy & dds_qos,
+ const ::DDS::ReliabilityQosPolicy & qos)
+{
+ return dds_qos.kind == static_cast <DDS_ReliabilityQosPolicyKind> (qos.kind) &&
+ Duration::check (dds_qos.max_blocking_time, qos.max_blocking_time);
+}
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/reliability_qos_test.h b/modules/CIAO/connectors/dds4ccm/tests/Policies/reliability_qos_test.h
new file mode 100644
index 00000000000..d325f489c90
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/reliability_qos_test.h
@@ -0,0 +1,19 @@
+//$Id$
+
+#ifndef RELIABILITY_QOS_TEST_H_
+#define RELIABILITY_QOS_TEST_H_
+
+#include "dds4ccm/idl/dds_rtf2_dcpsC.h"
+#include "ndds/ndds_cpp.h"
+#include "dds4ccm/impl/dds/ndds/ReliabilityQosPolicy.h"
+
+class ReliabilityPolicyTest
+{
+public:
+ ReliabilityPolicyTest ();
+
+ static bool check (const ::DDS_ReliabilityQosPolicy & dds_qos,
+ const ::DDS::ReliabilityQosPolicy & qos);
+};
+
+#endif /* RELIABILITY_QOS_TEST_H_ */
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/resource_limits_qos_test.cpp b/modules/CIAO/connectors/dds4ccm/tests/Policies/resource_limits_qos_test.cpp
new file mode 100644
index 00000000000..46a1adc0327
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/resource_limits_qos_test.cpp
@@ -0,0 +1,17 @@
+// $Id$
+
+#include "resource_limits_qos_test.h"
+
+ResourceLimitsPolicyTest::ResourceLimitsPolicyTest ()
+{
+}
+
+
+bool
+ResourceLimitsPolicyTest::check (const ::DDS_ResourceLimitsQosPolicy & dds_qos,
+ const ::DDS::ResourceLimitsQosPolicy & qos)
+{
+ return dds_qos.max_samples == qos.max_samples &&
+ dds_qos.max_instances == qos.max_instances &&
+ dds_qos.max_samples_per_instance == qos.max_samples_per_instance;
+}
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/resource_limits_qos_test.h b/modules/CIAO/connectors/dds4ccm/tests/Policies/resource_limits_qos_test.h
new file mode 100644
index 00000000000..a430ee30034
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/resource_limits_qos_test.h
@@ -0,0 +1,19 @@
+//$Id$
+
+#ifndef RESOURCE_LIMITS_QOS_TEST_H_
+#define RESOURCE_LIMITS_QOS_TEST_H_
+
+#include "dds4ccm/idl/dds_rtf2_dcpsC.h"
+#include "ndds/ndds_cpp.h"
+#include "dds4ccm/impl/dds/ndds/ResourceLimitsQosPolicy.h"
+
+class ResourceLimitsPolicyTest
+{
+public:
+ ResourceLimitsPolicyTest ();
+
+ static bool check (const ::DDS_ResourceLimitsQosPolicy & dds_qos,
+ const ::DDS::ResourceLimitsQosPolicy & qos);
+};
+
+#endif /* RESOURCE_LIMITS_QOS_TEST_H_ */
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/run_test.pl b/modules/CIAO/connectors/dds4ccm/tests/Policies/run_test.pl
new file mode 100755
index 00000000000..87048af071f
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/run_test.pl
@@ -0,0 +1,25 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# -*- perl -*-
+
+use lib "$ENV{ACE_ROOT}/bin";
+use PerlACE::TestTarget;
+
+my $program = PerlACE::TestTarget::create_target (1) || die "Create target 1 failed\n";
+
+$PROG = $program->CreateProcess ("policies_test", "");
+$program_status = $PROG->Spawn ();
+
+if ($program_status != 0) {
+ print STDERR "ERROR: GroupDataPolicy returned $program_status\n";
+ exit 1;
+}
+
+sleep ($program->ProcessStartWaitInterval());
+
+$program_status = $PROG->Kill ();
+
+exit 0;
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/sub_qos_test.cpp b/modules/CIAO/connectors/dds4ccm/tests/Policies/sub_qos_test.cpp
new file mode 100644
index 00000000000..15950dc88b4
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/sub_qos_test.cpp
@@ -0,0 +1,59 @@
+// $Id$
+
+#include "sub_qos_test.h"
+
+#include "group_data_qos_test.h"
+#include "entity_factory_qos_test.h"
+#include "presentation_qos_test.h"
+#include "partition_qos_test.h"
+
+SubscriberPolicyTest::SubscriberPolicyTest ()
+{
+}
+
+int
+SubscriberPolicyTest::run ()
+{
+ int ret = 0;
+ try
+ {
+ ::DDS::SubscriberQos policy;
+ DDS_SubscriberQos dds_policy_org, dds_policy;
+
+ dds_policy_org = DDS_SUBSCRIBER_QOS_DEFAULT;
+
+ policy <<= dds_policy_org;
+ dds_policy <<= policy;
+
+ if (!PresentationPolicyTest::check (dds_policy.presentation, policy.presentation))
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR SUBSCRIBER : "
+ "Error in PresentationQosPolicy.\n"));
+ ++ret;
+ }
+ if (!PartitionPolicyTest::check (dds_policy.partition, policy.partition))
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR SUBSCRIBER : "
+ "Error in PartitionQosPolicy.\n"));
+ ++ret;
+ }
+ if (!GroupDataPolicyTest::check (dds_policy.group_data, policy.group_data))
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR SUBSCRIBER : "
+ "Error in GroupDataQosPolicy.\n"));
+ ++ret;
+ }
+ if (!EntityFactoryPolicyTest::check (dds_policy.entity_factory, policy.entity_factory))
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR SUBSCRIBER : "
+ "Error in EntityFactoryQosPolicy.\n"));
+ ++ret;
+ }
+ }
+ catch (...)
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR SUBSCRIBER: Unexpected exception caught."));
+ return -1;
+ }
+ return ret;
+}
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/sub_qos_test.h b/modules/CIAO/connectors/dds4ccm/tests/Policies/sub_qos_test.h
new file mode 100644
index 00000000000..dc85ffdd582
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/sub_qos_test.h
@@ -0,0 +1,19 @@
+// $Id$
+
+#ifndef SUBSCRIBER_QOS_TEST_H_
+#define SUBSCRIBER_QOS_TEST_H_
+
+
+#include "dds4ccm/idl/dds_rtf2_dcpsC.h"
+#include "ndds/ndds_cpp.h"
+#include "dds4ccm/impl/dds/ndds/SubscriberQos.h"
+
+class SubscriberPolicyTest
+{
+public:
+ SubscriberPolicyTest ();
+
+ int run ();
+};
+
+#endif /* SUBSCRIBER_QOS_TEST_H_ */
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/tbf_qos_test.cpp b/modules/CIAO/connectors/dds4ccm/tests/Policies/tbf_qos_test.cpp
new file mode 100644
index 00000000000..c300174e7f7
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/tbf_qos_test.cpp
@@ -0,0 +1,15 @@
+// $Id$
+
+#include "tbf_qos_test.h"
+#include "duration.h"
+
+TimeBasedFilterPolicyTest::TimeBasedFilterPolicyTest ()
+{
+}
+
+bool
+TimeBasedFilterPolicyTest::check (const ::DDS_TimeBasedFilterQosPolicy & dds_qos,
+ const ::DDS::TimeBasedFilterQosPolicy & qos)
+{
+ return Duration::check (dds_qos.minimum_separation, qos.minimum_separation);
+}
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/tbf_qos_test.h b/modules/CIAO/connectors/dds4ccm/tests/Policies/tbf_qos_test.h
new file mode 100644
index 00000000000..f42d8aaf7e0
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/tbf_qos_test.h
@@ -0,0 +1,19 @@
+//$Id$
+
+#ifndef TIME_BASED_FILTER_QOS_TEST_H_
+#define TIME_BASED_FILTER_QOS_TEST_H_
+
+#include "dds4ccm/idl/dds_rtf2_dcpsC.h"
+#include "ndds/ndds_cpp.h"
+#include "dds4ccm/impl/dds/ndds/TimeBasedFilterQosPolicy.h"
+
+class TimeBasedFilterPolicyTest
+{
+public:
+ TimeBasedFilterPolicyTest ();
+
+ static bool check (const ::DDS_TimeBasedFilterQosPolicy & dds_qos,
+ const ::DDS::TimeBasedFilterQosPolicy & qos);
+};
+
+#endif /* TIME_BASED_FILTER_QOS_TEST_H_ */
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/tp_data_qos_test.cpp b/modules/CIAO/connectors/dds4ccm/tests/Policies/tp_data_qos_test.cpp
new file mode 100644
index 00000000000..c9377c996b7
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/tp_data_qos_test.cpp
@@ -0,0 +1,18 @@
+// $Id$
+
+#include "tp_data_qos_test.h"
+
+#include "octet_seq.h"
+
+TopicDataPolicyTest::TopicDataPolicyTest ()
+{
+}
+
+bool
+TopicDataPolicyTest::check (const ::DDS_TopicDataQosPolicy & dds_qos,
+ const ::DDS::TopicDataQosPolicy & qos)
+{
+ return OctetSequence::check (dds_qos.value,
+ qos.value,
+ "TopicDataPolicyTest");
+}
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/tp_data_qos_test.h b/modules/CIAO/connectors/dds4ccm/tests/Policies/tp_data_qos_test.h
new file mode 100644
index 00000000000..2ccb36be118
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/tp_data_qos_test.h
@@ -0,0 +1,19 @@
+//$Id$
+
+#ifndef TOPIC_DATA_QOS_TEST_H_
+#define TOPIC_DATA_QOS_TEST_H_
+
+#include "dds4ccm/idl/dds_rtf2_dcpsC.h"
+#include "ndds/ndds_cpp.h"
+#include "dds4ccm/impl/dds/ndds/TopicDataQosPolicy.h"
+
+class TopicDataPolicyTest
+{
+public:
+ TopicDataPolicyTest ();
+
+ static bool check (const ::DDS_TopicDataQosPolicy & dds_qos,
+ const ::DDS::TopicDataQosPolicy & qos);
+};
+
+#endif /* TOPIC_DATA_QOS_TEST_H_ */
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/tp_qos_test.cpp b/modules/CIAO/connectors/dds4ccm/tests/Policies/tp_qos_test.cpp
new file mode 100644
index 00000000000..65a338ae499
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/tp_qos_test.cpp
@@ -0,0 +1,148 @@
+// $Id$
+
+#include "tp_qos_test.h"
+
+#include "tp_data_qos_test.h"
+#include "dur_qos_test.h"
+#include "dur_service_qos_test.h"
+#include "deadline_qos_test.h"
+#include "lat_budget_qos_test.h"
+#include "liveliness_qos_test.h"
+#include "reliability_qos_test.h"
+#include "dest_order_qos_test.h"
+#include "hist_qos_test.h"
+#include "resource_limits_qos_test.h"
+#include "transport_prio_qos_test.h"
+#include "lifespan_qos_test.h"
+#include "ownership_qos_test.h"
+
+TopicPolicyTest::TopicPolicyTest ()
+{
+}
+
+int
+TopicPolicyTest::run ()
+{
+ int ret = 0;
+ try
+ {
+ ::DDS::TopicQos policy;
+ DDS_TopicQos dds_policy_org, dds_policy;
+
+ dds_policy_org = DDS_TOPIC_QOS_DEFAULT;
+
+ policy <<= dds_policy_org;
+ dds_policy <<= policy;
+
+
+ if (!TopicDataPolicyTest::check (dds_policy.topic_data,
+ policy.topic_data))
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR TOPIC : "
+ "Error in TopicDataQosPolicy.\n"));
+ ++ret;
+ }
+
+ if (!DurabilityPolicyTest::check (dds_policy.durability,
+ policy.durability))
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR TOPIC : "
+ "Error in DurabilityQosPolicy.\n"));
+ ++ret;
+ }
+
+ if (!DurabilityServicePolicyTest::check (dds_policy.durability_service,
+ policy.durability_service))
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR TOPIC : "
+ "Error in DurabilityServiceQosPolicy.\n"));
+ ++ret;
+ }
+
+ if (!DeadlinePolicyTest::check (dds_policy.deadline,
+ policy.deadline))
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR TOPIC : "
+ "Error in DeadlineQosPolicy.\n"));
+ ++ret;
+ }
+
+ if (!LatencyBudgetPolicyTest::check (dds_policy.latency_budget,
+ policy.latency_budget))
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR TOPIC : "
+ "Error in LatencyBudgetQosPolicy.\n"));
+ ++ret;
+ }
+
+ if (!LivelinessPolicyTest::check (dds_policy.liveliness,
+ policy.liveliness))
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR TOPIC : "
+ "Error in LivelinessQosPolicy.\n"));
+ ++ret;
+ }
+
+ if (!ReliabilityPolicyTest::check (dds_policy.reliability,
+ policy.reliability))
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR TOPIC : "
+ "Error in ReliabilityQosPolicy.\n"));
+ ++ret;
+ }
+
+ if (!DestinationOrderPolicyTest::check (dds_policy.destination_order,
+ policy.destination_order))
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR TOPIC : "
+ "Error in DestinationOrderQosPolicy.\n"));
+ ++ret;
+ }
+
+ if (!HistoryPolicyTest::check (dds_policy.history,
+ policy.history))
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR TOPIC : "
+ "Error in HistoryQosPolicy.\n"));
+ ++ret;
+ }
+
+ if (!ResourceLimitsPolicyTest::check (dds_policy.resource_limits,
+ policy.resource_limits))
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR TOPIC : "
+ "Error in ResourceLimitsQosPolicy.\n"));
+ ++ret;
+ }
+
+ if (!TransportPriorityPolicyTest::check (dds_policy.transport_priority,
+ policy.transport_priority))
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR TOPIC : "
+ "Error in TransportPriorityQosPolicy.\n"));
+ ++ret;
+ }
+
+ if (!LifespanPolicyTest::check (dds_policy.lifespan,
+ policy.lifespan))
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR TOPIC : "
+ "Error in LifespanQosPolicy.\n"));
+ ++ret;
+ }
+
+ if (!OwnershipPolicyTest::check (dds_policy.ownership,
+ policy.ownership))
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR TOPIC : "
+ "Error in OwnershipQosPolicy.\n"));
+ ++ret;
+ }
+ }
+ catch (...)
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR TOPIC: Unexpected exception caught."));
+ return -1;
+ }
+ return ret;
+}
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/tp_qos_test.h b/modules/CIAO/connectors/dds4ccm/tests/Policies/tp_qos_test.h
new file mode 100644
index 00000000000..0508102b8e3
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/tp_qos_test.h
@@ -0,0 +1,18 @@
+// $Id$
+
+#ifndef TOPIC_QOS_TEST_H_
+#define TOPIC_QOS_TEST_H_
+
+#include "dds4ccm/idl/dds_rtf2_dcpsC.h"
+#include "ndds/ndds_cpp.h"
+#include "dds4ccm/impl/dds/ndds/TopicQos.h"
+
+class TopicPolicyTest
+{
+public:
+ TopicPolicyTest ();
+
+ int run ();
+};
+
+#endif /* TOPIC_QOS_TEST_H_ */
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/transport_prio_qos_test.cpp b/modules/CIAO/connectors/dds4ccm/tests/Policies/transport_prio_qos_test.cpp
new file mode 100644
index 00000000000..d4aaa7d74ad
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/transport_prio_qos_test.cpp
@@ -0,0 +1,14 @@
+// $Id$
+
+#include "transport_prio_qos_test.h"
+
+TransportPriorityPolicyTest::TransportPriorityPolicyTest ()
+{
+}
+
+bool
+TransportPriorityPolicyTest::check (const ::DDS_TransportPriorityQosPolicy & dds_qos,
+ const ::DDS::TransportPriorityQosPolicy & qos)
+{
+ return dds_qos.value == qos.value;
+}
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/transport_prio_qos_test.h b/modules/CIAO/connectors/dds4ccm/tests/Policies/transport_prio_qos_test.h
new file mode 100644
index 00000000000..358dd62388f
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/transport_prio_qos_test.h
@@ -0,0 +1,19 @@
+//$Id$
+
+#ifndef TRANSPORT_PRIORITY_QOS_TEST_H_
+#define TRANSPORT_PRIORITY_QOS_TEST_H_
+
+#include "dds4ccm/idl/dds_rtf2_dcpsC.h"
+#include "ndds/ndds_cpp.h"
+#include "dds4ccm/impl/dds/ndds/TransportPriorityQosPolicy.h"
+
+class TransportPriorityPolicyTest
+{
+public:
+ TransportPriorityPolicyTest ();
+
+ static bool check (const ::DDS_TransportPriorityQosPolicy & dds_qos,
+ const ::DDS::TransportPriorityQosPolicy & qos);
+};
+
+#endif /* TRANSPORT_PRIORITY_QOS_TEST_H_ */
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/user_data_qos_test.cpp b/modules/CIAO/connectors/dds4ccm/tests/Policies/user_data_qos_test.cpp
new file mode 100644
index 00000000000..48ee76b0e20
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/user_data_qos_test.cpp
@@ -0,0 +1,18 @@
+// $Id$
+
+#include "user_data_qos_test.h"
+
+#include "octet_seq.h"
+
+UserDataPolicyTest::UserDataPolicyTest ()
+{
+}
+
+bool
+UserDataPolicyTest::check (const ::DDS_UserDataQosPolicy & dds_qos,
+ const ::DDS::UserDataQosPolicy & qos)
+{
+ return OctetSequence::check (dds_qos.value,
+ qos.value,
+ "UserDataPolicyTest");
+}
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/user_data_qos_test.h b/modules/CIAO/connectors/dds4ccm/tests/Policies/user_data_qos_test.h
new file mode 100644
index 00000000000..c56c94f48f9
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/user_data_qos_test.h
@@ -0,0 +1,19 @@
+//$Id$
+
+#ifndef USER_DATA_QOS_TEST_H_
+#define USER_DATA_QOS_TEST_H_
+
+#include "dds4ccm/idl/dds_rtf2_dcpsC.h"
+#include "ndds/ndds_cpp.h"
+#include "dds4ccm/impl/dds/ndds/UserDataQosPolicy.h"
+
+class UserDataPolicyTest
+{
+public:
+ UserDataPolicyTest ();
+
+ static bool check (const ::DDS_UserDataQosPolicy & dds_qos,
+ const ::DDS::UserDataQosPolicy & qos);
+};
+
+#endif /* USER_DATA_QOS_TEST_H_ */
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/wr_lifecycle_qos_test.cpp b/modules/CIAO/connectors/dds4ccm/tests/Policies/wr_lifecycle_qos_test.cpp
new file mode 100644
index 00000000000..6a8da1b9103
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/wr_lifecycle_qos_test.cpp
@@ -0,0 +1,15 @@
+// $Id$
+
+#include "wr_lifecycle_qos_test.h"
+
+WriterDataLifecyclePolicyTest::WriterDataLifecyclePolicyTest ()
+{
+}
+
+bool
+WriterDataLifecyclePolicyTest::check (const ::DDS_WriterDataLifecycleQosPolicy & dds_qos,
+ const ::DDS::WriterDataLifecycleQosPolicy & qos)
+{
+ return dds_qos.autodispose_unregistered_instances ==
+ static_cast <DDS_Boolean> (qos.autodispose_unregistered_instances);
+}
diff --git a/modules/CIAO/connectors/dds4ccm/tests/Policies/wr_lifecycle_qos_test.h b/modules/CIAO/connectors/dds4ccm/tests/Policies/wr_lifecycle_qos_test.h
new file mode 100644
index 00000000000..ac8674525f0
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/Policies/wr_lifecycle_qos_test.h
@@ -0,0 +1,19 @@
+//$Id$
+
+#ifndef WRITER_DATA_LIFECYCLE_QOS_TEST_H_
+#define WRITER_DATA_LIFECYCLE_QOS_TEST_H_
+
+#include "dds4ccm/idl/dds_rtf2_dcpsC.h"
+#include "ndds/ndds_cpp.h"
+#include "dds4ccm/impl/dds/ndds/WriterDataLifecycleQosPolicy.h"
+
+class WriterDataLifecyclePolicyTest
+{
+public:
+ WriterDataLifecyclePolicyTest ();
+
+ static bool check (const ::DDS_WriterDataLifecycleQosPolicy & dds_qos,
+ const ::DDS::WriterDataLifecycleQosPolicy & qos);
+};
+
+#endif /* WRITER_DATA_LIFECYCLE_QOS_TEST_H_ */