Salome HOME
Some tests are modified to work in session less mode.
authorOvidiu Mircescu <ovidiu.mircescu@edf.fr>
Wed, 1 Sep 2021 15:09:56 +0000 (17:09 +0200)
committerOvidiu Mircescu <ovidiu.mircescu@edf.fr>
Wed, 1 Sep 2021 15:09:56 +0000 (17:09 +0200)
15 files changed:
src/py2yacs/Test/CTestTestfileInstall.cmake
src/runtime/SalomeContainer.cxx
src/yacsloader/Test/CTestTestfileInstall.cmake
src/yacsloader/driver.cxx
src/yacsloader_swig/Test/CTestTestfileInstall.cmake
src/yacsloader_swig/Test/runUnitTest.sh
src/yacsloader_swig/Test/testEdit.py
src/yacsloader_swig/Test/testExec.py
src/yacsloader_swig/Test/testExecForEachGeoMesh.py
src/yacsloader_swig/Test/testLoader.py
src/yacsloader_swig/Test/testProgress.py
src/yacsloader_swig/Test/testRefcount.py
src/yacsloader_swig/Test/testResume.py
src/yacsloader_swig/Test/testSave.py
src/yacsloader_swig/Test/testSaveLoadRun.py

index f6a2865d504af4a816210eec1f91bd6571848551..f7add30cfe68757955e93d7e6724ba5de86ab5e8 100644 (file)
 IF(NOT WIN32)
   SET(TEST_NAME ${COMPONENT_NAME}_Py2YacsTest)
   # Need a salome session for this test
-  ADD_TEST(${TEST_NAME} ${SALOME_TEST_DRIVER} ${TIMEOUT} ./TestPy2yacs)
+  ADD_TEST(${TEST_NAME} ./TestPy2yacs)
   SET_TESTS_PROPERTIES(${TEST_NAME} PROPERTIES
                                     LABELS "${COMPONENT_NAME}"
+                                    ENVIRONMENT "SALOME_EMB_SERVANT=1"
                       )
 
   SET(TEST_NAME ${COMPONENT_NAME}_PyDecorator)
-  ADD_TEST(${TEST_NAME} ${SALOME_TEST_DRIVER} ${TIMEOUT} testDeco.py)
+  ADD_TEST(${TEST_NAME} testDeco.py)
   SET_TESTS_PROPERTIES(${TEST_NAME} PROPERTIES
                                     LABELS "${COMPONENT_NAME}"
+                                    ENVIRONMENT "SALOME_EMB_SERVANT=1"
                       )
 ENDIF()
index 8014525c5eeab31edc98dce0f111d7f2c1f8581f..65ed0ed67208e26b408088d5babcc5ff9cbca150 100644 (file)
@@ -236,11 +236,9 @@ void SalomeContainer::start(const Task *askingNode,
     SalomeContainerTools tempSct = _sct;
     tempSct.setProperty("name", resource_name);
     tempSct.setProperty("container_name", container_name);
-    //SalomeContainerTools::Start(_componentNames,_launchModeType,tempSct,_shutdownLevel,this,askingNode);
     // components are not supported yet on this kind of start
     std::vector<std::string> noComponentNames;
-    int shutdownLevel = 999;
-    SalomeContainerTools::Start(noComponentNames,_launchModeType,tempSct,shutdownLevel,this,askingNode);
+    SalomeContainerTools::Start(noComponentNames,_launchModeType,tempSct,_shutdownLevel,this,askingNode);
   }
   else
     start(askingNode);
index e9b25113bf07e53615b3c89ffd4fb54b8ea18d67..b97b5145ac9b39768a9bd925bdebdeb58e9282f5 100644 (file)
@@ -25,6 +25,9 @@ IF(NOT WIN32)
                                     ENVIRONMENT "LD_LIBRARY_PATH=${YACS_TEST_LIB}:$ENV{LD_LIBRARY_PATH}")
 
   SET(TEST_NAME ${COMPONENT_NAME}_YacsPMMLExeTest)
-  ADD_TEST(${TEST_NAME} ${SALOME_TEST_DRIVER} ${TIMEOUT} ./TestYACSPMML)
-  SET_TESTS_PROPERTIES(${TEST_NAME} PROPERTIES LABELS "${COMPONENT_NAME}")
+  ADD_TEST(${TEST_NAME} ./TestYACSPMML)
+  SET_TESTS_PROPERTIES(${TEST_NAME} PROPERTIES
+                                    LABELS "${COMPONENT_NAME}"
+                                    ENVIRONMENT "SALOME_EMB_SERVANT=1"
+                                    )
 ENDIF()
index e579d97055d2fd2aeebef71a7c0c287af4759b92..c03dfcd2dfbef46ffd32a5a90a879e148fffb527 100644 (file)
@@ -317,7 +317,7 @@ int main (int argc, char* argv[])
   myArgs.dump = 0;
   myArgs.loadState = (char *)"";
   myArgs.xmlSchema = (char *)"";
-  myArgs.shutdown = 1;
+  myArgs.shutdown = 10;
   myArgs.reset = 0;
   myArgs.killPort = 0;
   myArgs.init_ports.clear();
index 5e678c9746f4356409297317dccd40fc53cc53a2..83c14a60ed4172f911623448effc02f16965db36 100644 (file)
@@ -25,21 +25,59 @@ IF(NOT WIN32)
                       )
 
   SET(TEST_NAME ${COMPONENT_NAME}_StdAloneYacsLoaderTest1)
-  ADD_TEST(${TEST_NAME} ${SALOME_TEST_DRIVER} ${TIMEOUT} StdAloneYacsLoaderTest1.py)
+  ADD_TEST(${TEST_NAME} StdAloneYacsLoaderTest1.py)
   SET_TESTS_PROPERTIES(${TEST_NAME} PROPERTIES
                                     LABELS "${COMPONENT_NAME}"
+                                    ENVIRONMENT "SALOME_EMB_SERVANT=1"
                       )
 
   SET(TEST_NAME ${COMPONENT_NAME}_PyNodeWithCache_swig)
-  ADD_TEST(${TEST_NAME} ${SALOME_TEST_DRIVER} ${TIMEOUT} testPynodeWithCache.py)
+  ADD_TEST(${TEST_NAME} testPynodeWithCache.py)
   SET_TESTS_PROPERTIES(${TEST_NAME} PROPERTIES
                                     LABELS "${COMPONENT_NAME}"
+                                    ENVIRONMENT "SALOME_EMB_SERVANT=1"
                       )
 
   SET(TEST_NAME ${COMPONENT_NAME}_WorkloadManager_swig)
-  ADD_TEST(${TEST_NAME} ${SALOME_TEST_DRIVER} ${TIMEOUT} testWorkloadManager.py)
+  ADD_TEST(${TEST_NAME} testWorkloadManager.py)
   SET_TESTS_PROPERTIES(${TEST_NAME} PROPERTIES
                                     LABELS "${COMPONENT_NAME}"
+                                    ENVIRONMENT "SALOME_EMB_SERVANT=1"
+                      )
+
+  SET(TEST_NAME ${COMPONENT_NAME}_Progress_swig)
+  ADD_TEST(${TEST_NAME} testProgress.py)
+  SET_TESTS_PROPERTIES(${TEST_NAME} PROPERTIES
+                                    LABELS "${COMPONENT_NAME}"
+                                    ENVIRONMENT "SALOME_EMB_SERVANT=1"
+                      )
+
+  SET(TEST_NAME ${COMPONENT_NAME}_Refcount_swig)
+  ADD_TEST(${TEST_NAME} testRefcount.py)
+  SET_TESTS_PROPERTIES(${TEST_NAME} PROPERTIES
+                                    LABELS "${COMPONENT_NAME}"
+                                    ENVIRONMENT "SALOME_EMB_SERVANT=1"
+                      )
+
+  SET(TEST_NAME ${COMPONENT_NAME}_Resume_swig)
+  ADD_TEST(${TEST_NAME} testResume.py)
+  SET_TESTS_PROPERTIES(${TEST_NAME} PROPERTIES
+                                    LABELS "${COMPONENT_NAME}"
+                                    ENVIRONMENT "SALOME_EMB_SERVANT=1"
+                      )
+
+  SET(TEST_NAME ${COMPONENT_NAME}_SaveLoadRun_swig)
+  ADD_TEST(${TEST_NAME} testSaveLoadRun.py)
+  SET_TESTS_PROPERTIES(${TEST_NAME} PROPERTIES
+                                    LABELS "${COMPONENT_NAME}"
+                                    ENVIRONMENT "SALOME_EMB_SERVANT=1"
+                      )
+
+  SET(TEST_NAME ${COMPONENT_NAME}_ValidationChecks_swig)
+  ADD_TEST(${TEST_NAME} testValidationChecks.py)
+  SET_TESTS_PROPERTIES(${TEST_NAME} PROPERTIES
+                                    LABELS "${COMPONENT_NAME}"
+                                    ENVIRONMENT "SALOME_EMB_SERVANT=1"
                       )
 
 ENDIF()
index c9b0b9d37c5a963e811c0f1b108bd6161137af16..dc0f0035f2be0b4378f533debe3d5bfb48461e78 100755 (executable)
@@ -28,8 +28,7 @@ sleep 3
 export TESTCOMPONENT_ROOT_DIR=`pwd`/../runtime
 
 #python3 -m unittest discover
-MODULES_TO_TEST="testEdit testExec testLoader testProgress testRefcount \
-testResume testSave testSaveLoadRun testValidationChecks"
+MODULES_TO_TEST="testEdit testExec testLoader testSave "
 
 python3 -m unittest $MODULES_TO_TEST
 ret=$?
index 68c9aa1a64aec8505f7e3654f91fedf9be054d31..3e2e412db864e138296bd89a170acc0dc6bcbe94 100755 (executable)
@@ -196,9 +196,11 @@ def f():
 
 
 if __name__ == '__main__':
+  import tempfile
   import os
-  U = os.getenv('USER')
-  with open("/tmp/" + U + "/UnitTestsResult", 'a') as f:
+  dir_test = tempfile.mkdtemp(suffix=".yacstest")
+  file_test = os.path.join(dir_test,"UnitTestsResult")
+  with open(file_test, 'a') as f:
       f.write("  --- TEST src/yacsloader: testEdit.py\n")
       suite = unittest.makeSuite(TestEdit)
       result=unittest.TextTestRunner(f, descriptions=1, verbosity=1).run(suite)
index 741cdcefe8b6a3ddb3ccb4fa1f74966d38f2bbe0..e508b96ffc8033167f5bbdd500faa40b22435d7b 100755 (executable)
@@ -185,12 +185,11 @@ class TestExec(unittest.TestCase):
     pass
 
 if __name__ == '__main__':
-    import os
-    import sys
-    U = os.getenv('USER')
-    with open(os.path.join("/tmp", U, "UnitTestsResult"), 'a') as f:
+  dir_test = tempfile.mkdtemp(suffix=".yacstest")
+  file_test = os.path.join(dir_test,"UnitTestsResult")
+  with open(file_test, 'a') as f:
         f.write("  --- TEST src/yacsloader: testExec.py\n")
         suite = unittest.makeSuite(TestExec)
         result = unittest.TextTestRunner(f, descriptions=1, verbosity=1).run(suite)
 
-    sys.exit(not result.wasSuccessful())
+  sys.exit(not result.wasSuccessful())
index c8533a7182b719b1b4ac7f56cbf20cbab93deafd..1895025d2eb9f17a572e1205d43d82a14ff861a0 100755 (executable)
@@ -27,6 +27,7 @@ import loader
 import pilot
 
 import os
+import tempfile
 
 class TestExecForEachGeoMesh(unittest.TestCase):
 
@@ -57,12 +58,11 @@ class TestExecForEachGeoMesh(unittest.TestCase):
     pass
 
 if __name__ == '__main__':
-    import os
-    import sys
-    U = os.getenv('USER')
-    with open(os.path.join("/tmp", U, "UnitTestsResult"), 'a') as f:
+  dir_test = tempfile.mkdtemp(suffix=".yacstest")
+  file_test = os.path.join(dir_test,"UnitTestsResult")
+  with open(file_test, 'a') as f:
         f.write("  --- TEST src/yacsloader: testExec.py\n")
         suite = unittest.makeSuite(TestExecForEachGeoMesh)
         result = unittest.TextTestRunner(f, descriptions=1, verbosity=1).run(suite)
 
-    sys.exit(not result.wasSuccessful())
+  sys.exit(not result.wasSuccessful())
index cd009402247647d9bcd4709331f1ecd83778c27e..8d962a8b3d5f32df02315cce30efddd4d5a8b8c4 100755 (executable)
@@ -1,3 +1,4 @@
+#!/usr/bin/env python3
 # Copyright (C) 2006-2021  CEA/DEN, EDF R&D
 #
 # This library is free software; you can redistribute it and/or
@@ -83,9 +84,11 @@ class TestLoader(unittest.TestCase):
     pass
 
 if __name__ == '__main__':
+  import tempfile
   import os
-  U = os.getenv('USER')
-  with open("/tmp/" + U + "/UnitTestsResult", 'a') as f:
+  dir_test = tempfile.mkdtemp(suffix=".yacstest")
+  file_test = os.path.join(dir_test,"UnitTestsResult")
+  with open(file_test, 'a') as f:
       f.write("  --- TEST src/yacsloader: testLoader.py\n")
       suite = unittest.makeSuite(TestLoader)
       result=unittest.TextTestRunner(f, descriptions=1, verbosity=1).run(suite)
index 5d15ba9d5523d8d173a815acb7994f6f26847fda..46472260589a9bcb528a1ded368b7e1acaccbe61 100755 (executable)
@@ -1,3 +1,4 @@
+#!/usr/bin/env python3
 # Copyright (C) 2006-2021  CEA/DEN, EDF R&D
 #
 # This library is free software; you can redistribute it and/or
@@ -129,11 +130,13 @@ class TestEdit(unittest.TestCase):
         myRun.join()
         self.assertEqual(p.getState(),pilot.DONE)
         self.assertEqual(p.getGlobalProgressPercent(),100)
-         
+
 if __name__ == '__main__':
+  import tempfile
   import os
-  U = os.getenv('USER')
-  with open("/tmp/" + U + "/UnitTestsResult", 'a') as f:
+  dir_test = tempfile.mkdtemp(suffix=".yacstest")
+  file_test = os.path.join(dir_test,"UnitTestsResult")
+  with open(file_test, 'a') as f:
       f.write("  --- TEST src/yacsloader: testProgress.py\n")
       suite = unittest.makeSuite(TestEdit)
       result=unittest.TextTestRunner(f, descriptions=1, verbosity=3).run(suite)
index 2e79f1a284251026025a4b410fe090bdee5a2888..ab86bc4743249fd1b6667368fc056f067494e085 100755 (executable)
@@ -1,3 +1,4 @@
+#!/usr/bin/env python3
 # Copyright (C) 2006-2021  CEA/DEN, EDF R&D
 #
 # This library is free software; you can redistribute it and/or
@@ -266,9 +267,11 @@ class TestTypeCodeRef(unittest.TestCase):
     self.assertEqual(tc.getRefCnt(), 3)
 
 if __name__ == '__main__':
+  import tempfile
   import os
-  U = os.getenv('USER')
-  with open("/tmp/" + U + "/UnitTestsResult", 'a') as f:
+  dir_test = tempfile.mkdtemp(suffix=".yacstest")
+  file_test = os.path.join(dir_test,"UnitTestsResult")
+  with open(file_test, 'a') as f:
       f.write("  --- TEST src/yacsloader: testRefcount.py\n")
       suite1 = unittest.makeSuite(TestContainerRef)
       suite2 = unittest.makeSuite(TestTypeCodeRef)
index aca37ae5d406543ef5d4a62c49029bd390c260f6..45d09939fce02eab8704921778741e83abb02343 100755 (executable)
@@ -27,6 +27,7 @@ import os
 import SALOMERuntime
 import loader
 import pilot
+import salome
 
 class TestResume(unittest.TestCase):
 
@@ -39,6 +40,12 @@ class TestResume(unittest.TestCase):
         self.statefile = os.path.join(workdir, 'dumpPartialBloc2.xml')
         pass
 
+    def tearDown(self):
+      salome.salome_init()
+      cm = salome.lcc.getContainerManager()
+      cm.ShutdownContainers()
+      pass
+
     def test1_PartialExec(self):
         # --- stop execution after breakpoint
         time.sleep(1)
@@ -88,9 +95,9 @@ class TestResume(unittest.TestCase):
     pass
 
 if __name__ == '__main__':
-  import os
-  U = os.getenv('USER')
-  with open("/tmp/" + U + "/UnitTestsResult", 'a') as f:
+  dir_test = tempfile.mkdtemp(suffix=".yacstest")
+  file_test = os.path.join(dir_test,"UnitTestsResult")
+  with open(file_test, 'a') as f:
       f.write("  --- TEST src/yacsloader: testResume.py\n")
       suite = unittest.makeSuite(TestResume)
       result=unittest.TextTestRunner(f, descriptions=1, verbosity=1).run(suite)
index 4dd5f7450bda482ccfbb80b97cd3566a13d1a2ea..dff992344cb5dc68d4cd21bf80f7a847e304fc90 100755 (executable)
@@ -99,9 +99,9 @@ class TestSave(unittest.TestCase):
             pass
 
 if __name__ == '__main__':
-  import os
-  U = os.getenv('USER')
-  with open("/tmp/" + U + "/UnitTestsResult", 'a') as f:
+  dir_test = tempfile.mkdtemp(suffix=".yacstest")
+  file_test = os.path.join(dir_test,"UnitTestsResult")
+  with open(file_test, 'a') as f:
       f.write("  --- TEST src/yacsloader: testSave.py\n")
       suite = unittest.makeSuite(TestSave)
       result=unittest.TextTestRunner(f, descriptions=1, verbosity=1).run(suite)
index 0479c522f4e65c5afec6fab3d62875798e8549cb..1c84f7666c4cc5ad542dd57490e2849de6ba6dda 100755 (executable)
@@ -1,3 +1,4 @@
+#!/usr/bin/env python3
 # Copyright (C) 2006-2021  CEA/DEN, EDF R&D
 #
 # This library is free software; you can redistribute it and/or
@@ -24,6 +25,7 @@ import os
 import pilot
 import SALOMERuntime
 import loader
+import salome
 
 import datetime
 
@@ -34,6 +36,13 @@ class TestSaveLoadRun(unittest.TestCase):
     self.workdir = tempfile.mkdtemp(suffix=".yacstest")
     pass
 
+  def tearDown(self):
+    salome.salome_init()
+    cm = salome.lcc.getContainerManager()
+    cm.ShutdownContainers()
+    salome.dsm.shutdownScopes()
+    pass
+
   def test0(self):
     """First test of HP Container no loop here only the 3 sorts of python nodes (the Distributed is it still used and useful ?) """
     fname=os.path.join(self.workdir, "TestSaveLoadRun0.xml")
@@ -1248,6 +1257,11 @@ for i in i8:
     p=self.r.createProc("pr")
     ti=p.createType("int","int")
     cont=p.createContainer("DefaultContainer","Salome")
+    # enable WorkloadManager mode because containers are not registered right
+    # in classical mode (4 containers with the same name are launched at the
+    # same time).
+    p.setProperty("executor", "WorkloadManager")
+    cont.setProperty("type", "multi")
     cont.setProperty("container_name","FactoryServer")
     b=self.r.createBloc("Bloc") ; p.edAddChild(b)
     #
@@ -1677,13 +1691,13 @@ o2=2*i1
     cont1.setProperty("name","localhost")
     cont1.setProperty("hostname","localhost")
     cont1.setProperty("type","multi")
-    cont1.setProperty("container_name","container1@")
+    cont1.setProperty("container_name","container1")
     #
     cont2=p.createContainer("cont2","Salome")
     cont2.setProperty("name","localhost")
     cont2.setProperty("hostname","localhost")
     cont2.setProperty("type","multi")
-    cont2.setProperty("container_name","container2@")
+    cont2.setProperty("container_name","container2")
     #
     td=p.createType("double","double")
     ti=p.createType("int","int")
@@ -1736,7 +1750,8 @@ def str2Obj(strr):
   return pickle.loads(strr)
 
 salome.salome_init()
-dsm=salome.naming_service.Resolve("/DataServerManager")
+#dsm=salome.naming_service.Resolve("/DataServerManager")
+dsm = salome.dsm
 dss,isCreated=dsm.giveADataScopeTransactionCalled(scopeName)
 assert(not isCreated)
 
@@ -1746,6 +1761,7 @@ wk2=dss.waitForKeyInVar(varName,obj2Str("ef"))
 wk2.waitFor()
 assert(str2Obj(dss.waitForMonoThrRev(wk2))==[11,12])""")
     n1.setContainer(cont1)
+    n1.setExecutionMode("remote")
     #
     n2=r.createScriptNode("","n2")
     n2_sn=n2.edAddInputPort("scopeName",ts)
@@ -1765,7 +1781,8 @@ def str2Obj(strr):
   return pickle.loads(strr)
 
 salome.salome_init()
-dsm=salome.naming_service.Resolve("/DataServerManager")
+#dsm=salome.naming_service.Resolve("/DataServerManager") #doesn't work in ssl
+dsm = salome.dsm # works in ssl
 dss,isCreated=dsm.giveADataScopeTransactionCalled(scopeName)
 assert(not isCreated)
 time.sleep(3.)
@@ -1774,6 +1791,7 @@ t1.addKeyValueInVarErrorIfAlreadyExistingNow(obj2Str("cd"),obj2Str([7,8,9,10]))
 t1.addKeyValueInVarErrorIfAlreadyExistingNow(obj2Str("ef"),obj2Str([11,12]))
 """)
     n2.setContainer(cont2)
+    n2.setExecutionMode("remote")
     #
     p.edAddChild(n0)
     p.edAddChild(n1)
@@ -1837,9 +1855,9 @@ t1.addKeyValueInVarErrorIfAlreadyExistingNow(obj2Str("ef"),obj2Str([11,12]))
     pass
 
 if __name__ == '__main__':
-  import os,sys
-  U = os.getenv('USER')
-  with open("/tmp/" + U + "/UnitTestsResult", 'a') as f:
+  dir_test = tempfile.mkdtemp(suffix=".yacstest")
+  file_test = os.path.join(dir_test,"UnitTestsResult")
+  with open(file_test, 'a') as f:
       f.write("  --- TEST src/yacsloader: testSaveLoadRun.py\n")
       suite = unittest.makeSuite(TestSaveLoadRun)
       result=unittest.TextTestRunner(f, descriptions=1, verbosity=1).run(suite)