summaryrefslogtreecommitdiff
path: root/modules/CIAO/DAnCE/tests/DeploymentPlanTestReferences/test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'modules/CIAO/DAnCE/tests/DeploymentPlanTestReferences/test.cpp')
-rw-r--r--modules/CIAO/DAnCE/tests/DeploymentPlanTestReferences/test.cpp52
1 files changed, 52 insertions, 0 deletions
diff --git a/modules/CIAO/DAnCE/tests/DeploymentPlanTestReferences/test.cpp b/modules/CIAO/DAnCE/tests/DeploymentPlanTestReferences/test.cpp
new file mode 100644
index 00000000000..92930bb3fdf
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/DeploymentPlanTestReferences/test.cpp
@@ -0,0 +1,52 @@
+// $Id$
+#include "ace/Auto_Ptr.h"
+#include "tools/Config_Handlers/DnC_Dump.h"
+#include "tools/Config_Handlers/XML_File_Intf.h"
+#include "DAnCE/Logger/Log_Macros.h"
+
+int ACE_TMAIN (int argc, ACE_TCHAR * argv[])
+{
+ try
+ {
+ if (argc < 1)
+ {
+ DANCE_ERROR((LM_ERROR, ACE_TEXT ("[%M] Incorrect count of arguments. Path to deployment plan has not been specified.\n")));
+ return 1;
+ }
+ //parsing plan
+ CIAO::Config_Handlers::XML_File_Intf file (argv[1]);
+ file.add_search_path (ACE_TEXT ("CIAO_ROOT"), ACE_TEXT ("/docs/schema/"));
+ file.add_search_path (ACE_TEXT ("TAO_ROOT"), ACE_TEXT ("/docs/schema/"));
+ auto_ptr<Deployment::DeploymentPlan> plan (file.release_plan());
+
+ //check instance references to corresponding implementations
+ for ( ::CORBA::ULong i = 0; i < plan->instance.length(); i++)
+ {
+ if (plan->instance[i].implementationRef > plan->implementation.length() - 1)
+ {
+ DANCE_ERROR((LM_ERROR, ACE_TEXT ("[%M] incorrect implementationRef in instance %C.\n"), plan->instance[i].name.in()));
+ return 1;
+ }
+ }
+
+ //check artifact reference for implementations of Home objects
+ for ( ::CORBA::ULong i = 0; i < plan->implementation.length(); i++)
+ {
+ if (plan->implementation[i].artifactRef.length() > 0)
+ {
+ if (plan->implementation[i].artifactRef[0] > plan->artifact.length() - 1)
+ {
+ DANCE_ERROR((LM_ERROR, ACE_TEXT ("[%M] incorrect artifactRef in the implementation %C.\n"), plan->implementation[i].name.in()));
+ return 1;
+ }
+ }
+ }
+ }
+ catch (...)
+ {
+ DANCE_ERROR((LM_ERROR, ACE_TEXT ("[%M] Unexpected exception")));
+ return 1;
+ }
+
+ return 0;
+}