Back to index

salome-kernel  6.5.0
TestSALOMEDS.cxx File Reference
#include "SALOMELocalTraceTest.hxx"
#include "SALOMEDSImplTest.hxx"
#include "SALOMEDSTest.hxx"
#include <cppunit/CompilerOutputter.h>
#include <cppunit/TestResult.h>
#include <cppunit/TestResultCollector.h>
#include <cppunit/TextTestProgressListener.h>
#include <cppunit/BriefTestProgressListener.h>
#include <cppunit/extensions/TestFactoryRegistry.h>
#include <cppunit/TestRunner.h>
#include <stdexcept>
#include <iostream>
#include <fstream>
#include <SALOMEconfig.h>
#include "utilities.h"
#include "Utils_SINGLETON.hxx"
#include "Utils_ORB_INIT.hxx"
#include "Basics_Utils.hxx"
#include "SALOME_NamingService.hxx"
#include "NamingService_WaitForServerReadiness.hxx"
#include "SALOMEDS_StudyManager_i.hxx"

Go to the source code of this file.


int main (int argc, char *argv[])
 Main program source for Unit Tests with cppunit package does not depend on actual tests, so we use the same for all partial unit tests.

Function Documentation

int main ( int  argc,
char *  argv[] 

Main program source for Unit Tests with cppunit package does not depend on actual tests, so we use the same for all partial unit tests.

Definition at line 64 of file TestSALOMEDS.cxx.

  // --- Run Salome without GUI

  setenv("SALOME_trace", "file:./traceUnitTest.log", 1); // 1: overwrite

  system("runSalome -t &");

  // --- Wait till SALOMEDS server is launched
  char hostname[511];
  int size;
  gethostname(hostname, size);
  char* chr_port = getenv("SALOMEDS_UNITTESTS_PORT");
  std::string port;
  if(chr_port) port = chr_port;
  if(port.empty()) port = "2810";
  std::string cfg_file = std::string(getenv("HOME"))+"/.omniORB_"+std::string(hostname)+"_"+port+".cfg";
  setenv("OMNIORB_CONFIG", cfg_file.c_str(), 1);

  ORB_INIT &init = *SINGLETON_<ORB_INIT>::Instance() ;
  CORBA::ORB_var orb = init(argc , argv ) ;


  std::string host; // = Kernel_Utils::GetHostname();
  char* wait_Superv = getenv("SALOMEDS_UNITTESTS_WAIT_SUPERVISOR");
  if(wait_Superv) host = Kernel_Utils::GetHostname(); 

  SALOME_NamingService NS(orb);
    NamingService_WaitForServerReadiness(&NS, "/myStudyManager");
  else {
    std::string serverName = "/Containers/"+host+"/SuperVisionContainer";
    NamingService_WaitForServerReadiness(&NS, serverName);

  CORBA::Object_var obj = NS.Resolve( "/myStudyManager" );
  if(CORBA::is_nil(obj)) {
     return 1;

  //Set up the environement for Embedded case
  std::string kernel_root = getenv("KERNEL_ROOT_DIR");

  CORBA::Object_var poaObj = orb->resolve_initial_references("RootPOA");
  if(!CORBA::is_nil(poaObj)) {
                PortableServer::POA_var poa = PortableServer::POA::_narrow(poaObj);

    SALOMEDS_StudyManager_i * aStudyManager_i = new  SALOMEDS_StudyManager_i(orb, poa);
    // Activate the objects.  This tells the POA that the objects are ready to accept requests.
    PortableServer::ObjectId_var aStudyManager_iid =  poa->activate_object(aStudyManager_i);
    // Obtain a POAManager, and tell the POA to start accepting
    // requests on its objects.
    PortableServer::POAManager_var pman = poa->the_POAManager();

  // --- Create the event manager and test controller
  CPPUNIT_NS::TestResult controller;

  // ---  Add a listener that colllects test result
  CPPUNIT_NS::TestResultCollector result;
  controller.addListener( &result );        

  // ---  Add a listener that print dots as test run.
#ifdef WIN32
  CPPUNIT_NS::TextTestProgressListener progress;
  CPPUNIT_NS::BriefTestProgressListener progress;
  controller.addListener( &progress );      

  // ---  Get the top level suite from the registry

  CPPUNIT_NS::Test *suite =

  // ---  Adds the test to the list of test to run

  CPPUNIT_NS::TestRunner runner;
  runner.addTest( suite ); controller);

  // ---  Print test in a compiler compatible format.

  std::ofstream testFile;"UnitTestsResult", std::ios::out |  std::ios::trunc);
  //CPPUNIT_NS::CompilerOutputter outputter( &result, std::cerr );
  CPPUNIT_NS::CompilerOutputter outputter( &result, testFile );

  // ---  Run the tests.

  bool wasSucessful = result.wasSuccessful();

  // --- Kill all created Salome process


  // ---  Return error code 1 if the one of test failed.

  return wasSucessful ? 0 : 1;

Here is the call graph for this function: