[OSADL-svn-commits] r82 - fapia-trunk/FAPIAController/test/conversions/source

OSADL repository commits osadl-svn-commits at lists.osadl.org
Tue Oct 2 11:46:32 CEST 2007


Author: tb10rts
Date: Thu Jul 19 07:12:01 2007
New Revision: 82

Log:
Added a folder remotely

Added:
   fapia-trunk/FAPIAController/test/conversions/source/
   fapia-trunk/FAPIAController/test/conversions/source/main.cpp
   fapia-trunk/FAPIAController/test/conversions/source/test_fapia_controller_conversions.cpp
   fapia-trunk/FAPIAController/test/conversions/source/test_fapia_controller_conversions.h

Added: fapia-trunk/FAPIAController/test/conversions/source/main.cpp
==============================================================================
--- (empty file)
+++ fapia-trunk/FAPIAController/test/conversions/source/main.cpp	Thu Jul 19 07:12:01 2007
@@ -0,0 +1,19 @@
+
+#include <stdio.h>
+#include <assert.h>
+#include <cppunit/extensions/TestFactoryRegistry.h>
+#include <cppunit/TestResult.h>
+#include <cppunit/TestResultCollector.h>
+#include <cppunit/ui/text/TestRunner.h>
+
+#include /**/ <ace/ace.h>
+
+
+int main( int argc, char **argv)
+{
+  CppUnit::TextUi::TestRunner runner;
+  CppUnit::TestFactoryRegistry &registry = CppUnit::TestFactoryRegistry::getRegistry();
+  runner.addTest( registry.makeTest() );
+  bool wasSuccessful = runner.run( "", false);
+  return wasSuccessful;
+}

Added: fapia-trunk/FAPIAController/test/conversions/source/test_fapia_controller_conversions.cpp
==============================================================================
--- (empty file)
+++ fapia-trunk/FAPIAController/test/conversions/source/test_fapia_controller_conversions.cpp	Thu Jul 19 07:12:01 2007
@@ -0,0 +1,495 @@
+// $Id$
+
+
+#include "test_fapia_controller_conversions.h"
+#include "../../../source/FAPIAControllerController.h"
+#include "../../../../FAPIAIPCSynchronize/interface/FAPIAIPCSynchronize.h"
+
+namespace FAPI
+  {
+    namespace Acyclic
+      {
+        namespace Controller
+          {
+            namespace Test
+              {
+
+                CPPUNIT_TEST_SUITE_REGISTRATION (ConversionsTest);
+
+/*---------------------------------------------------------------------------*/
+
+                ConversionsTest::ConversionsTest()
+                  {
+                  }
+
+/*---------------------------------------------------------------------------*/
+
+                void ConversionsTest::setUp()
+                  {
+                  }
+
+/*---------------------------------------------------------------------------*/
+
+                void ConversionsTest::tearDown()
+                  {
+                  }
+
+/*---------------------------------------------------------------------------*/
+
+                void ConversionsTest::test_method_request_conversions (void)
+                  {
+                    FAPI::Acyclic::IPC::Synchronize::Init         init;
+                      {
+                        // Initialize controller. *****************************
+                        FAPI::Acyclic::Controller::Controller controller;
+
+                        FAPI::Acyclic::IPC::Synchronize::Error        error;
+                        FAPI::Acyclic::IPC::Synchronize::Synchronize* synchronize = 0;
+                        ACE_NEW_NORETURN (synchronize, FAPI::Acyclic::IPC::Synchronize::Synchronize ());
+                        CPPUNIT_ASSERT (synchronize != 0);
+
+                        init.physical_object_address_ = "127.0.0.0";
+                        init.physical_object_name_    = "source_physical_object_name";
+                        init.fapia_shared_memory_name_ = "0123";
+                        int rc = synchronize->init (init, error);
+                        CPPUNIT_ASSERT (rc == 0);
+                        controller.ipc_synchronize_ = synchronize;
+
+                        FAPI::Acyclic::IPC::Parameter::MethodRequestReadRequest mr_read_request;
+                        FAPI::Acyclic::IPC::Parameter::MethodRequestReadResponse mr_read_response;
+                        FAPI::Acyclic::IPC::Parameter::MethodRequestWriteRequest mr_write_request;
+                        FAPI::Acyclic::IPC::Parameter::MethodRequestWriteResponse mr_write_response;
+                        FAPIACommunication  fapia_communication;
+                        FAPIAParameter      fapia_parameters[3];
+                        FAPIAValue          fapia_values[3];
+                        FAPIAError          fapia_errors[3];
+
+
+
+                        // Initialize for test 1 and 2. ***********************
+                        fapia_communication.communication_error.error_code = FAPIA_ERROR_COMMUNICATION;
+                        fapia_communication.communication_error.reason = "reason";
+                        fapia_communication.transaction_id = 4711;
+                        fapia_communication.source_physical_object_name = "source_physical_object_name";
+                        fapia_communication.priority = FAPIA_COMMUNICATION_PRIORITY_LOW;
+                        fapia_communication.send_reply = true;
+                        fapia_communication.number_of_entries = sizeof (fapia_parameters) / sizeof (FAPIAParameter);
+
+                        fapia_parameters[0].logical_object_name = "logical_object_name0";
+                        fapia_parameters[1].logical_object_name = "logical_object_name1";
+                        fapia_parameters[2].logical_object_name = "logical_object_name2";
+                        fapia_parameters[0].parameter_name = "parameter_name0";
+                        fapia_parameters[1].parameter_name = "parameter_name1";
+                        fapia_parameters[2].parameter_name = "parameter_name2";
+
+
+
+                        // Conversion test 1. *********************************
+                        rc = controller.convert_to_read_request (
+                            &mr_read_request,
+                            &fapia_communication,
+                            fapia_parameters);
+
+                        CPPUNIT_ASSERT (rc == 0);
+                        CPPUNIT_ASSERT (mr_read_request.destination_physical_object_address_ == "127.0.0.0");
+                        CPPUNIT_ASSERT (mr_read_request.communication_.communication_error_.error_code_ == FAPIA_ERROR_COMMUNICATION);
+                        CPPUNIT_ASSERT (mr_read_request.communication_.communication_error_.reason_ == "reason");
+                        CPPUNIT_ASSERT (mr_read_request.communication_.transaction_id_ == 4711);
+                        CPPUNIT_ASSERT (mr_read_request.communication_.source_physical_object_name_ == "source_physical_object_name");
+                        CPPUNIT_ASSERT (mr_read_request.communication_.send_reply_ == true);
+                        CPPUNIT_ASSERT (mr_read_request.parameters_.size () == 3);
+                        CPPUNIT_ASSERT (mr_read_request.parameters_[0].logical_object_name_ == "logical_object_name0");
+                        CPPUNIT_ASSERT (mr_read_request.parameters_[1].logical_object_name_ == "logical_object_name1");
+                        CPPUNIT_ASSERT (mr_read_request.parameters_[2].logical_object_name_ == "logical_object_name2");
+                        CPPUNIT_ASSERT (mr_read_request.parameters_[0].parameter_name_ == "parameter_name0");
+                        CPPUNIT_ASSERT (mr_read_request.parameters_[1].parameter_name_ == "parameter_name1");
+                        CPPUNIT_ASSERT (mr_read_request.parameters_[2].parameter_name_ == "parameter_name2");
+
+
+
+                        // Conversion test 2. *********************************
+                        rc = controller.convert_from_read_request (
+                            &fapia_communication,
+                            fapia_parameters,
+                            &mr_read_request);
+
+                        CPPUNIT_ASSERT (rc == 0);
+                        CPPUNIT_ASSERT (fapia_communication.communication_error.error_code == FAPIA_ERROR_COMMUNICATION);
+                        CPPUNIT_ASSERT (ACE_OS::strcmp(fapia_communication.communication_error.reason, "reason") == 0);
+                        CPPUNIT_ASSERT (fapia_communication.transaction_id == 4711);
+                        CPPUNIT_ASSERT (ACE_OS::strcmp(fapia_communication.source_physical_object_name, "source_physical_object_name") == 0);
+                        CPPUNIT_ASSERT (fapia_communication.priority == FAPIA_COMMUNICATION_PRIORITY_LOW);
+                        CPPUNIT_ASSERT (fapia_communication.send_reply != 0);
+                        CPPUNIT_ASSERT (fapia_communication.number_of_entries == 3);
+                        CPPUNIT_ASSERT (ACE_OS::strcmp(fapia_parameters[0].logical_object_name, "logical_object_name0") == 0);
+                        CPPUNIT_ASSERT (ACE_OS::strcmp(fapia_parameters[1].logical_object_name, "logical_object_name1") == 0);
+                        CPPUNIT_ASSERT (ACE_OS::strcmp(fapia_parameters[2].logical_object_name, "logical_object_name2") == 0);
+                        CPPUNIT_ASSERT (ACE_OS::strcmp(fapia_parameters[0].parameter_name , "parameter_name0") == 0);
+                        CPPUNIT_ASSERT (ACE_OS::strcmp(fapia_parameters[1].parameter_name , "parameter_name1") == 0);
+                        CPPUNIT_ASSERT (ACE_OS::strcmp(fapia_parameters[2].parameter_name , "parameter_name2") == 0);
+
+                        controller.free_memory (fapia_parameters, fapia_communication.number_of_entries);
+                        controller.free_memory (&fapia_communication);
+
+
+
+                        // Initialize for test 3 and 4. ***********************
+                        fapia_communication.communication_error.error_code = FAPIA_ERROR_COMMUNICATION;
+                        fapia_communication.communication_error.reason = "reason";
+                        fapia_communication.transaction_id = 4711;
+                        fapia_communication.source_physical_object_name = "source_physical_object_name";
+                        fapia_communication.priority = FAPIA_COMMUNICATION_PRIORITY_LOW;
+                        fapia_communication.send_reply = true;
+                        fapia_communication.number_of_entries = sizeof (fapia_parameters) / sizeof (FAPIAParameter);
+
+                        fapia_parameters[0].logical_object_name = "logical_object_name0";
+                        fapia_parameters[1].logical_object_name = "logical_object_name1";
+                        fapia_parameters[2].logical_object_name = "logical_object_name2";
+                        fapia_parameters[0].parameter_name = "parameter_name0";
+                        fapia_parameters[1].parameter_name = "parameter_name1";
+                        fapia_parameters[2].parameter_name = "parameter_name2";
+
+                        unsigned short us = 29;
+                        double d          = 1.234;
+                        char * s          = "test string";
+
+                        fapia_values[0].data_type   = FAPIA_DATA_TYPE_SHORT;
+                        fapia_values[0].data_length = sizeof (unsigned short);
+                        fapia_values[0].data_value  = &us;
+                        fapia_values[0].unit        = "msec";
+
+                        fapia_values[1].data_type   = FAPIA_DATA_TYPE_DOUBLE;
+                        fapia_values[1].data_length = sizeof (double);
+                        fapia_values[1].data_value  = &d;
+                        fapia_values[1].unit        = "kB";
+
+                        fapia_values[2].data_type   = FAPIA_DATA_TYPE_STRING;
+                        fapia_values[2].data_length = ACE_OS::strlen (s);
+                        fapia_values[2].data_value  = s;
+                        fapia_values[2].unit        = "";
+
+                        fapia_errors[0].error_code = FAPIA_ERROR_PARAMETER_NOT_FOUND;
+                        fapia_errors[0].reason = "The parameter parameter_name0 could not be found";
+
+                        fapia_errors[1].error_code = FAPIA_ERROR_OK;
+                        fapia_errors[1].reason = "";
+
+                        fapia_errors[2].error_code = FAPIA_ERROR_OK;
+                        fapia_errors[2].reason = "";
+
+
+
+                        // Conversion test 3. *********************************
+                        rc = controller.convert_to_read_response (
+                            &mr_read_response,
+                            &fapia_communication,
+                            fapia_parameters,
+                            fapia_values,
+                            fapia_errors);
+
+                        CPPUNIT_ASSERT (rc == 0);
+                        CPPUNIT_ASSERT (mr_read_response.destination_physical_object_address_ == "127.0.0.0");
+                        CPPUNIT_ASSERT (mr_read_response.communication_.communication_error_.error_code_ == FAPIA_ERROR_COMMUNICATION);
+                        CPPUNIT_ASSERT (mr_read_response.communication_.communication_error_.reason_ == "reason");
+                        CPPUNIT_ASSERT (mr_read_response.communication_.transaction_id_ == 4711);
+                        CPPUNIT_ASSERT (mr_read_response.communication_.source_physical_object_name_ == "source_physical_object_name");
+                        CPPUNIT_ASSERT (mr_read_response.communication_.send_reply_ == true);
+                        CPPUNIT_ASSERT (mr_read_response.parameters_.size () == 3);
+                        CPPUNIT_ASSERT (mr_read_response.parameters_[0].logical_object_name_ == "logical_object_name0");
+                        CPPUNIT_ASSERT (mr_read_response.parameters_[1].logical_object_name_ == "logical_object_name1");
+                        CPPUNIT_ASSERT (mr_read_response.parameters_[2].logical_object_name_ == "logical_object_name2");
+                        CPPUNIT_ASSERT (mr_read_response.parameters_[0].parameter_name_ == "parameter_name0");
+                        CPPUNIT_ASSERT (mr_read_response.parameters_[1].parameter_name_ == "parameter_name1");
+                        CPPUNIT_ASSERT (mr_read_response.parameters_[2].parameter_name_ == "parameter_name2");
+                        CPPUNIT_ASSERT (mr_read_response.values_.size () == 3);
+                        CPPUNIT_ASSERT (mr_read_response.values_[0].data_type_ == FAPIA_DATA_TYPE_SHORT);
+                        CPPUNIT_ASSERT (mr_read_response.values_[0].data_len ()== sizeof (unsigned short));
+                        CPPUNIT_ASSERT (ACE_OS::memcmp (mr_read_response.values_[0].data_value (), &us, mr_read_response.values_[0].data_len ()) == 0);
+                        CPPUNIT_ASSERT (mr_read_response.values_[0].unit_ == "msec");
+                        CPPUNIT_ASSERT (mr_read_response.values_[1].data_type_ == FAPIA_DATA_TYPE_DOUBLE);
+                        CPPUNIT_ASSERT (mr_read_response.values_[1].data_len ()== sizeof (double));
+                        CPPUNIT_ASSERT (ACE_OS::memcmp (mr_read_response.values_[1].data_value (), &d, mr_read_response.values_[1].data_len ()) == 0);
+                        CPPUNIT_ASSERT (mr_read_response.values_[1].unit_ == "kB");
+                        CPPUNIT_ASSERT (mr_read_response.values_[2].data_type_ == FAPIA_DATA_TYPE_STRING);
+                        CPPUNIT_ASSERT (mr_read_response.values_[2].data_len ()== ACE_OS::strlen (s));
+                        CPPUNIT_ASSERT (ACE_OS::memcmp (mr_read_response.values_[2].data_value (), s, mr_read_response.values_[2].data_len ()) == 0);
+                        CPPUNIT_ASSERT (mr_read_response.values_[2].unit_ == "");
+                        CPPUNIT_ASSERT (mr_read_response.errors_.size () == 3);
+                        CPPUNIT_ASSERT (mr_read_response.errors_[0].error_code_ == FAPIA_ERROR_PARAMETER_NOT_FOUND);
+                        CPPUNIT_ASSERT (mr_read_response.errors_[0].reason_ == "The parameter parameter_name0 could not be found");
+                        CPPUNIT_ASSERT (mr_read_response.errors_[1].error_code_ == FAPIA_ERROR_OK);
+                        CPPUNIT_ASSERT (mr_read_response.errors_[1].reason_ == "");
+                        CPPUNIT_ASSERT (mr_read_response.errors_[2].error_code_ == FAPIA_ERROR_OK);
+                        CPPUNIT_ASSERT (mr_read_response.errors_[2].reason_ == "");
+
+
+
+
+
+                        // Conversion test 4. *********************************
+                        rc = controller.convert_from_read_response (
+                            &fapia_communication,
+                            fapia_parameters,
+                            fapia_values,
+                            fapia_errors,
+                            &mr_read_response);
+
+                        CPPUNIT_ASSERT (rc == 0);
+                        CPPUNIT_ASSERT (fapia_communication.communication_error.error_code == FAPIA_ERROR_COMMUNICATION);
+                        CPPUNIT_ASSERT (ACE_OS::strcmp(fapia_communication.communication_error.reason, "reason") == 0);
+                        CPPUNIT_ASSERT (fapia_communication.transaction_id == 4711);
+                        CPPUNIT_ASSERT (ACE_OS::strcmp(fapia_communication.source_physical_object_name, "source_physical_object_name") == 0);
+                        CPPUNIT_ASSERT (fapia_communication.priority == FAPIA_COMMUNICATION_PRIORITY_LOW);
+                        CPPUNIT_ASSERT (fapia_communication.send_reply != 0);
+                        CPPUNIT_ASSERT (fapia_communication.number_of_entries == 3);
+                        CPPUNIT_ASSERT (ACE_OS::strcmp(fapia_parameters[0].logical_object_name, "logical_object_name0") == 0);
+                        CPPUNIT_ASSERT (ACE_OS::strcmp(fapia_parameters[1].logical_object_name, "logical_object_name1") == 0);
+                        CPPUNIT_ASSERT (ACE_OS::strcmp(fapia_parameters[2].logical_object_name, "logical_object_name2") == 0);
+                        CPPUNIT_ASSERT (ACE_OS::strcmp(fapia_parameters[0].parameter_name , "parameter_name0") == 0);
+                        CPPUNIT_ASSERT (ACE_OS::strcmp(fapia_parameters[1].parameter_name , "parameter_name1") == 0);
+                        CPPUNIT_ASSERT (ACE_OS::strcmp(fapia_parameters[2].parameter_name , "parameter_name2") == 0);
+                        CPPUNIT_ASSERT (fapia_values[0].data_type == FAPIA_DATA_TYPE_SHORT);
+                        CPPUNIT_ASSERT (fapia_values[0].data_length == sizeof (unsigned short));
+                        CPPUNIT_ASSERT (ACE_OS::memcmp (fapia_values[0].data_value, &us, sizeof (unsigned short)) == 0);
+                        CPPUNIT_ASSERT (ACE_OS::strcmp (fapia_values[0].unit, "msec") == 0);
+                        CPPUNIT_ASSERT (fapia_values[1].data_type == FAPIA_DATA_TYPE_DOUBLE);
+                        CPPUNIT_ASSERT (fapia_values[1].data_length == sizeof (double));
+                        CPPUNIT_ASSERT (ACE_OS::memcmp (fapia_values[1].data_value, &d, sizeof (double)) == 0);
+                        CPPUNIT_ASSERT (ACE_OS::strcmp (fapia_values[1].unit, "kB") == 0);
+                        CPPUNIT_ASSERT (fapia_values[2].data_type == FAPIA_DATA_TYPE_STRING);
+                        CPPUNIT_ASSERT (fapia_values[2].data_length == ACE_OS::strlen (s));
+                        CPPUNIT_ASSERT (ACE_OS::strcmp ((char *)fapia_values[2].data_value, s) == 0);
+                        CPPUNIT_ASSERT (ACE_OS::strcmp (fapia_values[2].unit, "") == 0);
+                        CPPUNIT_ASSERT (fapia_errors[0].error_code == FAPIA_ERROR_PARAMETER_NOT_FOUND);
+                        CPPUNIT_ASSERT (ACE_OS::strcmp (fapia_errors[0].reason , "The parameter parameter_name0 could not be found") == 0);
+                        CPPUNIT_ASSERT (fapia_errors[1].error_code == FAPIA_ERROR_OK);
+                        CPPUNIT_ASSERT (ACE_OS::strcmp (fapia_errors[1].reason , "") == 0);
+                        CPPUNIT_ASSERT (fapia_errors[2].error_code == FAPIA_ERROR_OK);
+                        CPPUNIT_ASSERT (ACE_OS::strcmp (fapia_errors[2].reason , "") == 0);
+
+
+                        controller.free_memory (fapia_errors, fapia_communication.number_of_entries);
+                        controller.free_memory (fapia_values, fapia_communication.number_of_entries);
+                        controller.free_memory (fapia_parameters, fapia_communication.number_of_entries);
+                        controller.free_memory (&fapia_communication);
+
+
+
+
+                        // Initialize for test 5 and 6. ***********************
+                        fapia_communication.communication_error.error_code = FAPIA_ERROR_COMMUNICATION;
+                        fapia_communication.communication_error.reason = "reason";
+                        fapia_communication.transaction_id = 4711;
+                        fapia_communication.source_physical_object_name = "source_physical_object_name";
+                        fapia_communication.priority = FAPIA_COMMUNICATION_PRIORITY_LOW;
+                        fapia_communication.send_reply = true;
+                        fapia_communication.number_of_entries = sizeof (fapia_parameters) / sizeof (FAPIAParameter);
+
+                        fapia_parameters[0].logical_object_name = "logical_object_name0";
+                        fapia_parameters[1].logical_object_name = "logical_object_name1";
+                        fapia_parameters[2].logical_object_name = "logical_object_name2";
+                        fapia_parameters[0].parameter_name = "parameter_name0";
+                        fapia_parameters[1].parameter_name = "parameter_name1";
+                        fapia_parameters[2].parameter_name = "parameter_name2";
+
+                        fapia_values[0].data_type   = FAPIA_DATA_TYPE_SHORT;
+                        fapia_values[0].data_length = sizeof (unsigned short);
+                        fapia_values[0].data_value  = &us;
+                        fapia_values[0].unit        = "msec";
+
+                        fapia_values[1].data_type   = FAPIA_DATA_TYPE_DOUBLE;
+                        fapia_values[1].data_length = sizeof (double);
+                        fapia_values[1].data_value  = &d;
+                        fapia_values[1].unit        = "kB";
+
+                        fapia_values[2].data_type   = FAPIA_DATA_TYPE_STRING;
+                        fapia_values[2].data_length = ACE_OS::strlen (s);
+                        fapia_values[2].data_value  = s;
+                        fapia_values[2].unit        = "";
+
+
+
+                        // Conversion test 5. *********************************
+                        rc = controller.convert_to_write_request (
+                            &mr_write_request,
+                            &fapia_communication,
+                            fapia_parameters,
+                            fapia_values);
+
+                        CPPUNIT_ASSERT (rc == 0);
+                        CPPUNIT_ASSERT (mr_write_request.destination_physical_object_address_ == "127.0.0.0");
+                        CPPUNIT_ASSERT (mr_write_request.communication_.communication_error_.error_code_ == FAPIA_ERROR_COMMUNICATION);
+                        CPPUNIT_ASSERT (mr_write_request.communication_.communication_error_.reason_ == "reason");
+                        CPPUNIT_ASSERT (mr_write_request.communication_.transaction_id_ == 4711);
+                        CPPUNIT_ASSERT (mr_write_request.communication_.source_physical_object_name_ == "source_physical_object_name");
+                        CPPUNIT_ASSERT (mr_write_request.communication_.send_reply_ == true);
+                        CPPUNIT_ASSERT (mr_write_request.parameters_.size () == 3);
+                        CPPUNIT_ASSERT (mr_write_request.parameters_[0].logical_object_name_ == "logical_object_name0");
+                        CPPUNIT_ASSERT (mr_write_request.parameters_[1].logical_object_name_ == "logical_object_name1");
+                        CPPUNIT_ASSERT (mr_write_request.parameters_[2].logical_object_name_ == "logical_object_name2");
+                        CPPUNIT_ASSERT (mr_write_request.parameters_[0].parameter_name_ == "parameter_name0");
+                        CPPUNIT_ASSERT (mr_write_request.parameters_[1].parameter_name_ == "parameter_name1");
+                        CPPUNIT_ASSERT (mr_write_request.parameters_[2].parameter_name_ == "parameter_name2");
+                        CPPUNIT_ASSERT (mr_write_request.values_[0].data_type_ == FAPIA_DATA_TYPE_SHORT);
+                        CPPUNIT_ASSERT (mr_write_request.values_[0].data_len ()== sizeof (unsigned short));
+                        CPPUNIT_ASSERT (ACE_OS::memcmp (mr_write_request.values_[0].data_value (), &us, mr_write_request.values_[0].data_len ()) == 0);
+                        CPPUNIT_ASSERT (mr_write_request.values_[0].unit_ == "msec");
+                        CPPUNIT_ASSERT (mr_write_request.values_[1].data_type_ == FAPIA_DATA_TYPE_DOUBLE);
+                        CPPUNIT_ASSERT (mr_write_request.values_[1].data_len ()== sizeof (double));
+                        CPPUNIT_ASSERT (ACE_OS::memcmp (mr_write_request.values_[1].data_value (), &d, mr_write_request.values_[1].data_len ()) == 0);
+                        CPPUNIT_ASSERT (mr_write_request.values_[1].unit_ == "kB");
+                        CPPUNIT_ASSERT (mr_write_request.values_[2].data_type_ == FAPIA_DATA_TYPE_STRING);
+                        CPPUNIT_ASSERT (mr_write_request.values_[2].data_len ()== ACE_OS::strlen (s));
+                        CPPUNIT_ASSERT (ACE_OS::memcmp (mr_write_request.values_[2].data_value (), s, mr_write_request.values_[2].data_len ()) == 0);
+                        CPPUNIT_ASSERT (mr_write_request.values_[2].unit_ == "");
+
+
+
+
+
+                        // Conversion test 6. *********************************
+                        rc = controller.convert_from_write_request (
+                            &fapia_communication,
+                            fapia_parameters,
+                            fapia_values,
+                            &mr_write_request);
+
+                        CPPUNIT_ASSERT (rc == 0);
+                        CPPUNIT_ASSERT (fapia_communication.communication_error.error_code == FAPIA_ERROR_COMMUNICATION);
+                        CPPUNIT_ASSERT (ACE_OS::strcmp(fapia_communication.communication_error.reason, "reason") == 0);
+                        CPPUNIT_ASSERT (fapia_communication.transaction_id == 4711);
+                        CPPUNIT_ASSERT (ACE_OS::strcmp(fapia_communication.source_physical_object_name, "source_physical_object_name") == 0);
+                        CPPUNIT_ASSERT (fapia_communication.priority == FAPIA_COMMUNICATION_PRIORITY_LOW);
+                        CPPUNIT_ASSERT (fapia_communication.send_reply != 0);
+                        CPPUNIT_ASSERT (fapia_communication.number_of_entries == 3);
+                        CPPUNIT_ASSERT (ACE_OS::strcmp(fapia_parameters[0].logical_object_name, "logical_object_name0") == 0);
+                        CPPUNIT_ASSERT (ACE_OS::strcmp(fapia_parameters[1].logical_object_name, "logical_object_name1") == 0);
+                        CPPUNIT_ASSERT (ACE_OS::strcmp(fapia_parameters[2].logical_object_name, "logical_object_name2") == 0);
+                        CPPUNIT_ASSERT (ACE_OS::strcmp(fapia_parameters[0].parameter_name , "parameter_name0") == 0);
+                        CPPUNIT_ASSERT (ACE_OS::strcmp(fapia_parameters[1].parameter_name , "parameter_name1") == 0);
+                        CPPUNIT_ASSERT (ACE_OS::strcmp(fapia_parameters[2].parameter_name , "parameter_name2") == 0);
+                        CPPUNIT_ASSERT (fapia_values[0].data_type == FAPIA_DATA_TYPE_SHORT);
+                        CPPUNIT_ASSERT (fapia_values[0].data_length == sizeof (unsigned short));
+                        CPPUNIT_ASSERT (ACE_OS::memcmp (fapia_values[0].data_value, &us, sizeof (unsigned short)) == 0);
+                        CPPUNIT_ASSERT (ACE_OS::strcmp (fapia_values[0].unit, "msec") == 0);
+                        CPPUNIT_ASSERT (fapia_values[1].data_type == FAPIA_DATA_TYPE_DOUBLE);
+                        CPPUNIT_ASSERT (fapia_values[1].data_length == sizeof (double));
+                        CPPUNIT_ASSERT (ACE_OS::memcmp (fapia_values[1].data_value, &d, sizeof (double)) == 0);
+                        CPPUNIT_ASSERT (ACE_OS::strcmp (fapia_values[1].unit, "kB") == 0);
+                        CPPUNIT_ASSERT (fapia_values[2].data_type == FAPIA_DATA_TYPE_STRING);
+                        CPPUNIT_ASSERT (fapia_values[2].data_length == ACE_OS::strlen (s));
+                        CPPUNIT_ASSERT (ACE_OS::strcmp ((char *)fapia_values[2].data_value, s) == 0);
+                        CPPUNIT_ASSERT (ACE_OS::strcmp (fapia_values[2].unit, "") == 0);
+
+                        controller.free_memory (fapia_values, fapia_communication.number_of_entries);
+                        controller.free_memory (fapia_parameters, fapia_communication.number_of_entries);
+                        controller.free_memory (&fapia_communication);
+
+
+
+                        // Initialize for test 7 and 8. ***********************
+                        fapia_communication.communication_error.error_code = FAPIA_ERROR_COMMUNICATION;
+                        fapia_communication.communication_error.reason = "reason";
+                        fapia_communication.transaction_id = 4711;
+                        fapia_communication.source_physical_object_name = "source_physical_object_name";
+                        fapia_communication.priority = FAPIA_COMMUNICATION_PRIORITY_LOW;
+                        fapia_communication.send_reply = true;
+                        fapia_communication.number_of_entries = sizeof (fapia_parameters) / sizeof (FAPIAParameter);
+
+                        fapia_parameters[0].logical_object_name = "logical_object_name0";
+                        fapia_parameters[1].logical_object_name = "logical_object_name1";
+                        fapia_parameters[2].logical_object_name = "logical_object_name2";
+                        fapia_parameters[0].parameter_name = "parameter_name0";
+                        fapia_parameters[1].parameter_name = "parameter_name1";
+                        fapia_parameters[2].parameter_name = "parameter_name2";
+
+                        fapia_errors[0].error_code = FAPIA_ERROR_PARAMETER_NOT_FOUND;
+                        fapia_errors[0].reason = "The parameter parameter_name0 could not be found";
+
+                        fapia_errors[1].error_code = FAPIA_ERROR_OK;
+                        fapia_errors[1].reason = "";
+
+                        fapia_errors[2].error_code = FAPIA_ERROR_OK;
+                        fapia_errors[2].reason = "";
+
+
+
+                        // Conversion test 7. *********************************
+                        rc = controller.convert_to_write_response (
+                            &mr_write_response,
+                            &fapia_communication,
+                            fapia_parameters,
+                            fapia_errors);
+
+                        CPPUNIT_ASSERT (rc == 0);
+                        CPPUNIT_ASSERT (mr_write_response.destination_physical_object_address_ == "127.0.0.0");
+                        CPPUNIT_ASSERT (mr_write_response.communication_.communication_error_.error_code_ == FAPIA_ERROR_COMMUNICATION);
+                        CPPUNIT_ASSERT (mr_write_response.communication_.communication_error_.reason_ == "reason");
+                        CPPUNIT_ASSERT (mr_write_response.communication_.transaction_id_ == 4711);
+                        CPPUNIT_ASSERT (mr_write_response.communication_.source_physical_object_name_ == "source_physical_object_name");
+                        CPPUNIT_ASSERT (mr_write_response.communication_.send_reply_ == true);
+                        CPPUNIT_ASSERT (mr_write_response.parameters_.size () == 3);
+                        CPPUNIT_ASSERT (mr_write_response.parameters_[0].logical_object_name_ == "logical_object_name0");
+                        CPPUNIT_ASSERT (mr_write_response.parameters_[1].logical_object_name_ == "logical_object_name1");
+                        CPPUNIT_ASSERT (mr_write_response.parameters_[2].logical_object_name_ == "logical_object_name2");
+                        CPPUNIT_ASSERT (mr_write_response.parameters_[0].parameter_name_ == "parameter_name0");
+                        CPPUNIT_ASSERT (mr_write_response.parameters_[1].parameter_name_ == "parameter_name1");
+                        CPPUNIT_ASSERT (mr_write_response.parameters_[2].parameter_name_ == "parameter_name2");
+                        CPPUNIT_ASSERT (mr_write_response.errors_.size () == 3);
+                        CPPUNIT_ASSERT (mr_write_response.errors_[0].error_code_ == FAPIA_ERROR_PARAMETER_NOT_FOUND);
+                        CPPUNIT_ASSERT (mr_write_response.errors_[0].reason_ == "The parameter parameter_name0 could not be found");
+                        CPPUNIT_ASSERT (mr_write_response.errors_[1].error_code_ == FAPIA_ERROR_OK);
+                        CPPUNIT_ASSERT (mr_write_response.errors_[1].reason_ == "");
+                        CPPUNIT_ASSERT (mr_write_response.errors_[2].error_code_ == FAPIA_ERROR_OK);
+                        CPPUNIT_ASSERT (mr_write_response.errors_[2].reason_ == "");
+
+
+
+
+
+                        // Conversion test 8. *********************************
+                        rc = controller.convert_from_write_response (
+                            &fapia_communication,
+                            fapia_parameters,
+                            fapia_errors,
+                            &mr_write_response);
+
+                        CPPUNIT_ASSERT (rc == 0);
+                        CPPUNIT_ASSERT (fapia_communication.communication_error.error_code == FAPIA_ERROR_COMMUNICATION);
+                        CPPUNIT_ASSERT (ACE_OS::strcmp(fapia_communication.communication_error.reason, "reason") == 0);
+                        CPPUNIT_ASSERT (fapia_communication.transaction_id == 4711);
+                        CPPUNIT_ASSERT (ACE_OS::strcmp(fapia_communication.source_physical_object_name, "source_physical_object_name") == 0);
+                        CPPUNIT_ASSERT (fapia_communication.priority == FAPIA_COMMUNICATION_PRIORITY_LOW);
+                        CPPUNIT_ASSERT (fapia_communication.send_reply != 0);
+                        CPPUNIT_ASSERT (fapia_communication.number_of_entries == 3);
+                        CPPUNIT_ASSERT (ACE_OS::strcmp(fapia_parameters[0].logical_object_name, "logical_object_name0") == 0);
+                        CPPUNIT_ASSERT (ACE_OS::strcmp(fapia_parameters[1].logical_object_name, "logical_object_name1") == 0);
+                        CPPUNIT_ASSERT (ACE_OS::strcmp(fapia_parameters[2].logical_object_name, "logical_object_name2") == 0);
+                        CPPUNIT_ASSERT (ACE_OS::strcmp(fapia_parameters[0].parameter_name , "parameter_name0") == 0);
+                        CPPUNIT_ASSERT (ACE_OS::strcmp(fapia_parameters[1].parameter_name , "parameter_name1") == 0);
+                        CPPUNIT_ASSERT (ACE_OS::strcmp(fapia_parameters[2].parameter_name , "parameter_name2") == 0);
+                        CPPUNIT_ASSERT (fapia_errors[0].error_code == FAPIA_ERROR_PARAMETER_NOT_FOUND);
+                        CPPUNIT_ASSERT (ACE_OS::strcmp (fapia_errors[0].reason , "The parameter parameter_name0 could not be found") == 0);
+                        CPPUNIT_ASSERT (fapia_errors[1].error_code == FAPIA_ERROR_OK);
+                        CPPUNIT_ASSERT (ACE_OS::strcmp (fapia_errors[1].reason , "") == 0);
+                        CPPUNIT_ASSERT (fapia_errors[2].error_code == FAPIA_ERROR_OK);
+                        CPPUNIT_ASSERT (ACE_OS::strcmp (fapia_errors[2].reason , "") == 0);
+
+
+                        controller.free_memory (fapia_errors, fapia_communication.number_of_entries);
+                        controller.free_memory (fapia_parameters, fapia_communication.number_of_entries);
+                        controller.free_memory (&fapia_communication);
+
+                        controller.fapia_deinit ();
+                      }
+                    ACE_OS::unlink (init.fapia_shared_memory_name_.c_str ());
+                  }
+
+/*---------------------------------------------------------------------------*/
+
+
+             } /* namespace Test */
+          } /* namespace Controller */
+      } /* namespace Acyclic */
+  } /* namespace FAPI */
+ 

Added: fapia-trunk/FAPIAController/test/conversions/source/test_fapia_controller_conversions.h
==============================================================================
--- (empty file)
+++ fapia-trunk/FAPIAController/test/conversions/source/test_fapia_controller_conversions.h	Thu Jul 19 07:12:01 2007
@@ -0,0 +1,49 @@
+/* -*- C++ -*- */
+
+//=============================================================================
+/**
+ *  @file    marshallingtest.h
+ *
+ *  $Id$
+ *
+ *  @author Thomas Rothfuss <thomas.rothfuss at homag.de>
+ */
+//=============================================================================
+
+#ifndef _FAPIA_IPC_SYNCHRONIZE_ONE_PROCESS_TEST_H_
+#define _FAPIA_IPC_SYNCHRONIZE_ONE_PROCESS_TEST_H_
+
+#include <cppunit/extensions/HelperMacros.h>
+
+namespace FAPI
+  {
+    namespace Acyclic
+      {
+        namespace Controller
+          {
+            namespace Test
+              {
+                class ConversionsTest : public CppUnit::TestFixture
+                  {
+                  public:
+                    CPPUNIT_TEST_SUITE (ConversionsTest);
+                    CPPUNIT_TEST (test_method_request_conversions);
+                    CPPUNIT_TEST_SUITE_END ();
+                  
+                  private:
+                  
+                  public:
+                    ConversionsTest (void);
+
+                    void setUp (void);
+                    void tearDown (void);
+
+                    void test_method_request_conversions (void);
+                  }; /* class ConversionsTest */
+
+            } /* namespace Test */
+          } /* namespace Controller */
+      } /* namespace Acyclic */
+  } /* namespace FAPI */
+
+#endif // _FAPIA_IPC_SYNCHRONIZE_ONE_PROCESS_TEST_H_


More information about the OSADL-svn-commits mailing list