salome.kernel 9.14.0.post6__cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- salome/bin/salome/IDLparser.py +882 -0
- salome/bin/salome/KernelHelpersUseCases +0 -0
- salome/bin/salome/NSparam.py +51 -0
- salome/bin/salome/ORBConfigFile.py +55 -0
- salome/bin/salome/SALOMEDS_Client +0 -0
- salome/bin/salome/SALOMEDS_Server +0 -0
- salome/bin/salome/SALOME_ConnectionManagerServer +0 -0
- salome/bin/salome/SALOME_Container +0 -0
- salome/bin/salome/SALOME_ContainerPy.py +397 -0
- salome/bin/salome/SALOME_Container_No_NS_Serv +0 -0
- salome/bin/salome/SALOME_Container_No_NS_Serv_OutProcess +0 -0
- salome/bin/salome/SALOME_Container_No_NS_Serv_OutProcess_FT +0 -0
- salome/bin/salome/SALOME_Container_No_NS_Serv_OutProcess_Replay +0 -0
- salome/bin/salome/SALOME_Container_No_NS_Serv_OutProcess_Replay_FT +0 -0
- salome/bin/salome/SALOME_DataScopeServer +0 -0
- salome/bin/salome/SALOME_DataScopeServer_SSL +0 -0
- salome/bin/salome/SALOME_LauncherServer +0 -0
- salome/bin/salome/SALOME_Logger_Server +0 -0
- salome/bin/salome/SALOME_ModuleCatalog_Client +0 -0
- salome/bin/salome/SALOME_ModuleCatalog_Server +0 -0
- salome/bin/salome/SALOME_Registry_Server +0 -0
- salome/bin/salome/TestComponentPy.py +71 -0
- salome/bin/salome/TestContainer +0 -0
- salome/bin/salome/TestContainerManager +0 -0
- salome/bin/salome/TestLauncher +0 -0
- salome/bin/salome/TestLifeCycleCORBA.py +89 -0
- salome/bin/salome/TestLogger +0 -0
- salome/bin/salome/TestLogger.py +27 -0
- salome/bin/salome/TestModuleCatalog.py +87 -0
- salome/bin/salome/Test_LifeCycleCORBA +0 -0
- salome/bin/salome/VERSION +3 -0
- salome/bin/salome/addToKillList.py +35 -0
- salome/bin/salome/app-quickstart.py +288 -0
- salome/bin/salome/appli/.bashrc +50 -0
- salome/bin/salome/appli/extra.env.d/001.py +42 -0
- salome/bin/salome/appli/python_test_driver.py +148 -0
- salome/bin/salome/appli/salome +193 -0
- salome/bin/salome/appli/salome_instance.py +31 -0
- salome/bin/salome/appli/salome_test_driver.py +150 -0
- salome/bin/salome/appli/salome_test_driver_gui.py +82 -0
- salome/bin/salome/appli_clean.sh +53 -0
- salome/bin/salome/appli_gen.py +606 -0
- salome/bin/salome/dummyexe_loggerTraceCollector +0 -0
- salome/bin/salome/envSalome.py +59 -0
- salome/bin/salome/killSalome.py +48 -0
- salome/bin/salome/killSalomeWithPort.py +56 -0
- salome/bin/salome/prepare_generating_doc.py +104 -0
- salome/bin/salome/pythonpath_reduction.py +184 -0
- salome/bin/salome/runConsole.py +39 -0
- salome/bin/salome/runIDLparser +58 -0
- salome/bin/salome/runRemote.py +101 -0
- salome/bin/salome/runSalome.py +30 -0
- salome/bin/salome/runSalomeNoServer.py +24 -0
- salome/bin/salome/runSalomeOld.py +36 -0
- salome/bin/salome/runSalomeOnDemand.py +41 -0
- salome/bin/salome/salomeContext.py +36 -0
- salome/bin/salome/salome_process_attach +44 -0
- salome/bin/salome/salome_process_launcher +58 -0
- salome/bin/salome/setenv.py +32 -0
- salome/bin/salome/showNS.py +33 -0
- salome/bin/salome/test/kernel/ArgvKeeper/CTestTestfile.cmake +31 -0
- salome/bin/salome/test/kernel/ArgvKeeper/TestArgvKeeper +0 -0
- salome/bin/salome/test/kernel/ArgvKeeper/test_ArgvKeeper.py +34 -0
- salome/bin/salome/test/kernel/CTestTestfile.cmake +49 -0
- salome/bin/salome/test/kernel/Container/CTestTestfile.cmake +29 -0
- salome/bin/salome/test/kernel/Container/testProxy.py +291 -0
- salome/bin/salome/test/kernel/Container/testcontainer.py +106 -0
- salome/bin/salome/test/kernel/KernelHelpers/CTestTestfile.cmake +31 -0
- salome/bin/salome/test/kernel/KernelHelpers/KernelHelpersUnitTests.hxx +58 -0
- salome/bin/salome/test/kernel/KernelHelpers/TestKernelHelpers +0 -0
- salome/bin/salome/test/kernel/KernelHelpers/TestKernelHelpers.py +55 -0
- salome/bin/salome/test/kernel/Launcher/CTestTestfile.cmake +43 -0
- salome/bin/salome/test/kernel/Launcher/TestSSLAttached.py +110 -0
- salome/bin/salome/test/kernel/Launcher/launcher_use_case.py +65 -0
- salome/bin/salome/test/kernel/Launcher/testCrashProofContainer.py +423 -0
- salome/bin/salome/test/kernel/Launcher/testPerfLogManager1.py +382 -0
- salome/bin/salome/test/kernel/Launcher/test_launcher.py +674 -0
- salome/bin/salome/test/kernel/Launcher/test_stress.sh +45 -0
- salome/bin/salome/test/kernel/Launcher_SWIG/CTestTestfile.cmake +30 -0
- salome/bin/salome/test/kernel/Launcher_SWIG/test_swig_launcher.py +706 -0
- salome/bin/salome/test/kernel/LifeCycleCORBA/CTestTestfile.cmake +27 -0
- salome/bin/salome/test/kernel/LifeCycleCORBA/LifeCycleCORBATest.hxx +105 -0
- salome/bin/salome/test/kernel/LifeCycleCORBA/TestLifeCycleCORBA +0 -0
- salome/bin/salome/test/kernel/LifeCycleCORBA/TestLifeCycleCORBA.py +93 -0
- salome/bin/salome/test/kernel/LifeCycleCORBA_SWIG/CTestTestfile.cmake +40 -0
- salome/bin/salome/test/kernel/LifeCycleCORBA_SWIG/CatalogResources_resource.xml +15 -0
- salome/bin/salome/test/kernel/LifeCycleCORBA_SWIG/LifeCycleCORBA_SWIGTest.py +217 -0
- salome/bin/salome/test/kernel/LifeCycleCORBA_SWIG/SALOME_TestComponentPy.py +49 -0
- salome/bin/salome/test/kernel/LifeCycleCORBA_SWIG/TestLifeCycleCORBA_SWIG.py +100 -0
- salome/bin/salome/test/kernel/LifeCycleCORBA_SWIG/testcontainermanager.py +88 -0
- salome/bin/salome/test/kernel/LifeCycleCORBA_SWIG/testresourcemanager.py +155 -0
- salome/bin/salome/test/kernel/NamingService/CTestTestfile.cmake +28 -0
- salome/bin/salome/test/kernel/NamingService/NamingServiceTest.hxx +169 -0
- salome/bin/salome/test/kernel/NamingService/TestNamingService +0 -0
- salome/bin/salome/test/kernel/NamingService/TestNamingService.py +64 -0
- salome/bin/salome/test/kernel/SALOMEDS/CTestTestfile.cmake +27 -0
- salome/bin/salome/test/kernel/SALOMEDS/SALOMEDSTest.hxx +192 -0
- salome/bin/salome/test/kernel/SALOMEDS/TestSALOMEDS +0 -0
- salome/bin/salome/test/kernel/SALOMEDS/TestSALOMEDS.py +55 -0
- salome/bin/salome/test/kernel/SALOMEDSImpl/CTestTestfile.cmake +27 -0
- salome/bin/salome/test/kernel/SALOMEDSImpl/SALOMEDSImplTest.hxx +51 -0
- salome/bin/salome/test/kernel/SALOMEDSImpl/TestSALOMEDSImpl +0 -0
- salome/bin/salome/test/kernel/SALOMEDSImpl/TestSALOMEDSImpl.py +55 -0
- salome/bin/salome/test/kernel/SALOMELocalTrace/CTestTestfile.cmake +27 -0
- salome/bin/salome/test/kernel/SALOMELocalTrace/SALOMELocalTraceTest.hxx +59 -0
- salome/bin/salome/test/kernel/SALOMELocalTrace/TestSALOMELocalTrace +0 -0
- salome/bin/salome/test/kernel/SALOMELocalTrace/TestSALOMELocalTrace.py +40 -0
- salome/bin/salome/test/kernel/SALOMETraceCollector/CTestTestfile.cmake +27 -0
- salome/bin/salome/test/kernel/SALOMETraceCollector/SALOMETraceCollectorTest.hxx +51 -0
- salome/bin/salome/test/kernel/SALOMETraceCollector/TestSALOMETraceCollector +0 -0
- salome/bin/salome/test/kernel/SALOMETraceCollector/TestSALOMETraceCollector.py +57 -0
- salome/bin/salome/test/kernel/UnitTests/CTestTestfile.cmake +28 -0
- salome/bin/salome/test/kernel/UnitTests/UnitTests +0 -0
- salome/bin/salome/test/kernel/UnitTests/UnitTests.py +89 -0
- salome/bin/salome/test/kernel/Utils/CTestTestfile.cmake +27 -0
- salome/bin/salome/test/kernel/Utils/TestUtils +0 -0
- salome/bin/salome/test/kernel/Utils/TestUtils.py +55 -0
- salome/bin/salome/test/kernel/Utils/UtilsTest.hxx +58 -0
- salome/bin/salome/test/kernel/lib/libLifeCycleCORBATest.so +0 -0
- salome/bin/salome/test/kernel/lib/libNamingServiceTest.so +0 -0
- salome/bin/salome/test/kernel/lib/libSALOMEDSImplTest.so +0 -0
- salome/bin/salome/test/kernel/lib/libSALOMEDSTest.so +0 -0
- salome/bin/salome/test/kernel/lib/libSALOMELocalTraceTest.so +0 -0
- salome/bin/salome/test/kernel/lib/libSALOMETraceCollectorTest.so +0 -0
- salome/bin/salome/test/kernel/lib/libSalomeKernelHelpersTest.so +0 -0
- salome/bin/salome/test/kernel/lib/libUtilsTest.so +0 -0
- salome/bin/salome/testDF +0 -0
- salome/bin/salome/testDS +0 -0
- salome/bin/salome/virtual_salome.py +38 -0
- salome/bin/salome/waitContainers.py +82 -0
- salome/bin/salome/waitNS.py +31 -0
- salome/kernel/ArgvKeeper.py +132 -0
- salome/kernel/Calcium_Ports_idl.py +645 -0
- salome/kernel/DSC_Engines_idl.py +443 -0
- salome/kernel/Engines/__init__.py +24 -0
- salome/kernel/Engines__POA/__init__.py +24 -0
- salome/kernel/Help.py +141 -0
- salome/kernel/KernelBasis.py +463 -0
- salome/kernel/KernelContainer.py +81 -0
- salome/kernel/KernelDS.py +87 -0
- salome/kernel/KernelLauncher.py +117 -0
- salome/kernel/KernelLogger.py +75 -0
- salome/kernel/KernelModuleCatalog.py +76 -0
- salome/kernel/KernelSDS.py +92 -0
- salome/kernel/KernelServices.py +105 -0
- salome/kernel/LifeCycleCORBA.py +92 -0
- salome/kernel/Logger_idl.py +89 -0
- salome/kernel/NSTEST/__init__.py +13 -0
- salome/kernel/NSTEST__POA/__init__.py +13 -0
- salome/kernel/NSparam_impl.py +50 -0
- salome/kernel/NamingService.py +365 -0
- salome/kernel/ORBConfigFile_impl.py +102 -0
- salome/kernel/Palm_Ports_idl.py +162 -0
- salome/kernel/PortManager.py +259 -0
- salome/kernel/Ports/Calcium_Ports/__init__.py +13 -0
- salome/kernel/Ports/Palm_Ports/__init__.py +13 -0
- salome/kernel/Ports/__init__.py +18 -0
- salome/kernel/Ports__POA/Calcium_Ports/__init__.py +13 -0
- salome/kernel/Ports__POA/Palm_Ports/__init__.py +13 -0
- salome/kernel/Ports__POA/__init__.py +18 -0
- salome/kernel/PyInterp.py +99 -0
- salome/kernel/Registry/__init__.py +13 -0
- salome/kernel/Registry__POA/__init__.py +13 -0
- salome/kernel/SALOME/__init__.py +19 -0
- salome/kernel/SALOMEDS/__init__.py +14 -0
- salome/kernel/SALOMEDS_Attributes_idl.py +2288 -0
- salome/kernel/SALOMEDS__POA/__init__.py +14 -0
- salome/kernel/SALOMEDS_idl.py +1590 -0
- salome/kernel/SALOMEWrappedStdType.py +383 -0
- salome/kernel/SALOME_Comm_idl.py +1045 -0
- salome/kernel/SALOME_CommonTypes_idl.py +69 -0
- salome/kernel/SALOME_ComponentPy.py +338 -0
- salome/kernel/SALOME_Component_idl.py +962 -0
- salome/kernel/SALOME_Container.py +242 -0
- salome/kernel/SALOME_ContainerHelper.py +840 -0
- salome/kernel/SALOME_ContainerManager_idl.py +236 -0
- salome/kernel/SALOME_DriverPy.py +86 -0
- salome/kernel/SALOME_Embedded_NamingService.py +41 -0
- salome/kernel/SALOME_Embedded_NamingService_ClientPy.py +59 -0
- salome/kernel/SALOME_Embedded_NamingService_idl.py +125 -0
- salome/kernel/SALOME_Exception_idl.py +75 -0
- salome/kernel/SALOME_ExternalServerLauncher_idl.py +199 -0
- salome/kernel/SALOME_GenericObj_idl.py +154 -0
- salome/kernel/SALOME_GlobalsImpl.py +38 -0
- salome/kernel/SALOME_Launcher_idl.py +327 -0
- salome/kernel/SALOME_Locker_idl.py +185 -0
- salome/kernel/SALOME_LogManager.py +103 -0
- salome/kernel/SALOME_LogManager_idl.py +348 -0
- salome/kernel/SALOME_Logger/__init__.py +13 -0
- salome/kernel/SALOME_Logger__POA/__init__.py +13 -0
- salome/kernel/SALOME_MPIObject_idl.py +100 -0
- salome/kernel/SALOME_ModuleCatalog/__init__.py +13 -0
- salome/kernel/SALOME_ModuleCatalog__POA/__init__.py +13 -0
- salome/kernel/SALOME_ModuleCatalog_idl.py +624 -0
- salome/kernel/SALOME_NamingServicePy.py +313 -0
- salome/kernel/SALOME_PACOExtension_idl.py +292 -0
- salome/kernel/SALOME_ParamPorts_idl.py +102 -0
- salome/kernel/SALOME_Parametric_idl.py +154 -0
- salome/kernel/SALOME_Ports_idl.py +347 -0
- salome/kernel/SALOME_PyNode.py +1557 -0
- salome/kernel/SALOME_PyNode_idl.py +387 -0
- salome/kernel/SALOME_Registry_idl.py +155 -0
- salome/kernel/SALOME_ResourcesManager_idl.py +215 -0
- salome/kernel/SALOME_SDS_idl.py +1181 -0
- salome/kernel/SALOME_Session_idl.py +214 -0
- salome/kernel/SALOME_TYPES/__init__.py +14 -0
- salome/kernel/SALOME_TYPES__POA/__init__.py +14 -0
- salome/kernel/SALOME_TestComponent_idl.py +121 -0
- salome/kernel/SALOME_TestModuleCatalog/__init__.py +13 -0
- salome/kernel/SALOME_TestModuleCatalog__POA/__init__.py +13 -0
- salome/kernel/SALOME_TestModuleCatalog_idl.py +194 -0
- salome/kernel/SALOME_Trace.py +96 -0
- salome/kernel/SALOME_Types_idl.py +81 -0
- salome/kernel/SALOME__POA/__init__.py +19 -0
- salome/kernel/SALOME_utilities.py +63 -0
- salome/kernel/SalomeSDSClt.py +552 -0
- salome/kernel/TestKiller.py +76 -0
- salome/kernel/Utils_Identity.py +93 -0
- salome/kernel/_ArgvKeeper.so +0 -0
- salome/kernel/_KernelBasis.so +0 -0
- salome/kernel/_KernelContainer.so +0 -0
- salome/kernel/_KernelDS.so +0 -0
- salome/kernel/_KernelLauncher.so +0 -0
- salome/kernel/_KernelLogger.so +0 -0
- salome/kernel/_KernelModuleCatalog.so +0 -0
- salome/kernel/_KernelSDS.so +0 -0
- salome/kernel/_KernelServices.so +0 -0
- salome/kernel/_NamingService.so +0 -0
- salome/kernel/_calcium.so +0 -0
- salome/kernel/_libNOTIFICATION.so +0 -0
- salome/kernel/_libSALOME_Comm.so +0 -0
- salome/kernel/_libSALOME_LifeCycleCORBA.so +0 -0
- salome/kernel/_pylauncher.so +0 -0
- salome/kernel/addToKillList_impl.py +127 -0
- salome/kernel/batchmode_salome.py +295 -0
- salome/kernel/calcium.py +866 -0
- salome/kernel/dsccalcium.py +98 -0
- salome/kernel/iparameters.py +255 -0
- salome/kernel/kernel_test.py +114 -0
- salome/kernel/killSalomeWithPort_impl.py +518 -0
- salome/kernel/killSalome_impl.py +94 -0
- salome/kernel/launchConfigureParser.py +1234 -0
- salome/kernel/launcher_proxy.py +122 -0
- salome/kernel/libNOTIFICATION.py +119 -0
- salome/kernel/libSALOME_Comm.py +85 -0
- salome/kernel/libSALOME_LifeCycleCORBA.py +232 -0
- salome/kernel/main.py +8 -0
- salome/kernel/nameserver.py +134 -0
- salome/kernel/nstest_idl.py +129 -0
- salome/kernel/omnipatch.py +136 -0
- salome/kernel/orbmodule.py +246 -0
- salome/kernel/parseConfigFile.py +261 -0
- salome/kernel/pylauncher.py +883 -0
- salome/kernel/runConsole_impl.py +224 -0
- salome/kernel/runSalomeCommon.py +418 -0
- salome/kernel/runSalomeNoServer_impl.py +48 -0
- salome/kernel/runSalomeOld_impl.py +603 -0
- salome/kernel/runSalomeOnDemand_impl.py +72 -0
- salome/kernel/runSalome_impl.py +341 -0
- salome/kernel/runSession.py +360 -0
- salome/kernel/runTests.py +90 -0
- salome/kernel/salome/__init__.py +648 -0
- salome/kernel/salome/kernel/__init__.py +111 -0
- salome/kernel/salome/kernel/datamodeler.py +363 -0
- salome/kernel/salome/kernel/deprecation.py +165 -0
- salome/kernel/salome/kernel/diclookup.py +137 -0
- salome/kernel/salome/kernel/enumerate.py +232 -0
- salome/kernel/salome/kernel/logconfig.py +27 -0
- salome/kernel/salome/kernel/logger.py +290 -0
- salome/kernel/salome/kernel/parametric/__init__.py +26 -0
- salome/kernel/salome/kernel/parametric/compo_utils.py +137 -0
- salome/kernel/salome/kernel/parametric/pyscript_utils.py +135 -0
- salome/kernel/salome/kernel/parametric/study_exchange_vars.py +285 -0
- salome/kernel/salome/kernel/pyunittester.py +184 -0
- salome/kernel/salome/kernel/services.py +267 -0
- salome/kernel/salome/kernel/studyedit.py +637 -0
- salome/kernel/salome/kernel/syshelper.py +116 -0
- salome/kernel/salome/kernel/termcolor.py +239 -0
- salome/kernel/salome/kernel/testdata.py +159 -0
- salome/kernel/salome/kernel/threadhelper.py +385 -0
- salome/kernel/salome/kernel/uiexception.py +121 -0
- salome/kernel/salome/kernel/unittester.py +89 -0
- salome/kernel/salomeContextUtils.py +353 -0
- salome/kernel/salomeContext_impl.py +731 -0
- salome/kernel/salome_ComponentGUI.py +92 -0
- salome/kernel/salome_genericobj.py +44 -0
- salome/kernel/salome_iapp.py +206 -0
- salome/kernel/salome_instance_impl.py +109 -0
- salome/kernel/salome_kernel_utils.py +88 -0
- salome/kernel/salome_notebook.py +183 -0
- salome/kernel/salome_psutil.py +94 -0
- salome/kernel/salome_pynode.py +74 -0
- salome/kernel/salome_study.py +347 -0
- salome/kernel/salome_test.py +56 -0
- salome/kernel/salome_utils.py +563 -0
- salome/kernel/salome_version.py +164 -0
- salome/kernel/searchFreePort.py +130 -0
- salome/kernel/server.py +154 -0
- salome/kernel/setenv_impl.py +240 -0
- salome/kernel/share/salome/resources/kernel/Anita semi square.ttf +0 -0
- salome/kernel/share/salome/resources/kernel/CatalogModulePersonnel.xml_skel +24 -0
- salome/kernel/share/salome/resources/kernel/CatalogResources.xml +4 -0
- salome/kernel/share/salome/resources/kernel/KERNELCatalog.xml +102 -0
- salome/kernel/share/salome/resources/kernel/SALOMEDS_Resources +10 -0
- salome/kernel/share/salome/resources/kernel/ScriptsTemplate/SALOME_CM_LOCAL_MPI_LAN.py +19 -0
- salome/kernel/share/salome/resources/kernel/ScriptsTemplate/SALOME_CM_LOCAL_MPI_MPICH.py +18 -0
- salome/kernel/share/salome/resources/kernel/ScriptsTemplate/SALOME_CM_LOCAL_MPI_OPENMPI.py +21 -0
- salome/kernel/share/salome/resources/kernel/ScriptsTemplate/SALOME_CM_LOCAL_NO_MPI.py +25 -0
- salome/kernel/share/salome/resources/kernel/ScriptsTemplate/SALOME_CM_REMOTE.py +108 -0
- salome/kernel/share/salome/resources/kernel/ScriptsTemplate/SALOME_CM_REMOTE_OLD.py +115 -0
- salome/kernel/share/salome/resources/kernel/ScriptsTemplate/script_parameters.py +25 -0
- salome/kernel/share/salome/resources/kernel/app-template/CMakeLists.txt +125 -0
- salome/kernel/share/salome/resources/kernel/app-template/LICENCE +504 -0
- salome/kernel/share/salome/resources/kernel/app-template/README +0 -0
- salome/kernel/share/salome/resources/kernel/app-template/doc/CMakeLists.txt +31 -0
- salome/kernel/share/salome/resources/kernel/app-template/doc/README +1 -0
- salome/kernel/share/salome/resources/kernel/app-template/doc/conf.py.in +197 -0
- salome/kernel/share/salome/resources/kernel/app-template/doc/index.rst +14 -0
- salome/kernel/share/salome/resources/kernel/app-template/doc/intro.rst +4 -0
- salome/kernel/share/salome/resources/kernel/app-template/doc/link.rst +4 -0
- salome/kernel/share/salome/resources/kernel/app-template/resources/CMakeLists.txt +36 -0
- salome/kernel/share/salome/resources/kernel/app-template/resources/SalomeApp.xml.in +30 -0
- salome/kernel/share/salome/resources/kernel/app-template/resources/about.png +0 -0
- salome/kernel/share/salome/resources/kernel/app-template/resources/app_icon.png +0 -0
- salome/kernel/share/salome/resources/kernel/app-template/resources/app_logo.png +0 -0
- salome/kernel/share/salome/resources/kernel/app-template/resources/doc/CMakeLists.txt +27 -0
- salome/kernel/share/salome/resources/kernel/app-template/resources/doc/README +1 -0
- salome/kernel/share/salome/resources/kernel/app-template/resources/doc/sample.pdf +0 -0
- salome/kernel/share/salome/resources/kernel/app-template/resources/icon_about.png +0 -0
- salome/kernel/share/salome/resources/kernel/app-template/resources/splash.png +0 -0
- salome/kernel/share/salome/resources/kernel/app-template/src/CMakeLists.txt +22 -0
- salome/kernel/share/salome/resources/kernel/app-template/src/resources/CMakeLists.txt +34 -0
- salome/kernel/share/salome/resources/kernel/app-template/src/resources/LightApp_images.ts +23 -0
- salome/kernel/share/salome/resources/kernel/app-template/src/resources/LightApp_msg_en.ts +35 -0
- salome/kernel/share/salome/resources/kernel/app-template/src/resources/LightApp_msg_fr.ts +35 -0
- salome/kernel/share/salome/resources/kernel/app-template/src/resources/LightApp_msg_ja.ts +35 -0
- salome/kernel/share/salome/resources/kernel/app-template/src/tests/CMakeLists.txt +29 -0
- salome/kernel/share/salome/resources/kernel/app-template/src/tests/README +1 -0
- salome/kernel/share/salome/resources/kernel/app-template/src/tests/helloWorld.py +1 -0
- salome/kernel/share/salome/resources/kernel/background.png +0 -0
- salome/kernel/share/salome/resources/kernel/channel.cfg +278 -0
- salome/kernel/share/salome/resources/kernel/testLauncher.xml +10 -0
- salome/kernel/version_and_config.py +24 -0
- salome/share/salome/resources/kernel/Anita semi square.ttf +0 -0
- salome/share/salome/resources/kernel/CatalogModulePersonnel.xml_skel +24 -0
- salome/share/salome/resources/kernel/CatalogResources.xml +4 -0
- salome/share/salome/resources/kernel/KERNELCatalog.xml +102 -0
- salome/share/salome/resources/kernel/SALOMEDS_Resources +10 -0
- salome/share/salome/resources/kernel/ScriptsTemplate/SALOME_CM_LOCAL_MPI_LAN.py +19 -0
- salome/share/salome/resources/kernel/ScriptsTemplate/SALOME_CM_LOCAL_MPI_MPICH.py +18 -0
- salome/share/salome/resources/kernel/ScriptsTemplate/SALOME_CM_LOCAL_MPI_OPENMPI.py +21 -0
- salome/share/salome/resources/kernel/ScriptsTemplate/SALOME_CM_LOCAL_NO_MPI.py +25 -0
- salome/share/salome/resources/kernel/ScriptsTemplate/SALOME_CM_REMOTE.py +108 -0
- salome/share/salome/resources/kernel/ScriptsTemplate/SALOME_CM_REMOTE_OLD.py +115 -0
- salome/share/salome/resources/kernel/ScriptsTemplate/script_parameters.py +25 -0
- salome/share/salome/resources/kernel/app-template/CMakeLists.txt +125 -0
- salome/share/salome/resources/kernel/app-template/LICENCE +504 -0
- salome/share/salome/resources/kernel/app-template/README +0 -0
- salome/share/salome/resources/kernel/app-template/doc/CMakeLists.txt +31 -0
- salome/share/salome/resources/kernel/app-template/doc/README +1 -0
- salome/share/salome/resources/kernel/app-template/doc/conf.py.in +197 -0
- salome/share/salome/resources/kernel/app-template/doc/index.rst +14 -0
- salome/share/salome/resources/kernel/app-template/doc/intro.rst +4 -0
- salome/share/salome/resources/kernel/app-template/doc/link.rst +4 -0
- salome/share/salome/resources/kernel/app-template/resources/CMakeLists.txt +36 -0
- salome/share/salome/resources/kernel/app-template/resources/SalomeApp.xml.in +30 -0
- salome/share/salome/resources/kernel/app-template/resources/about.png +0 -0
- salome/share/salome/resources/kernel/app-template/resources/app_icon.png +0 -0
- salome/share/salome/resources/kernel/app-template/resources/app_logo.png +0 -0
- salome/share/salome/resources/kernel/app-template/resources/doc/CMakeLists.txt +27 -0
- salome/share/salome/resources/kernel/app-template/resources/doc/README +1 -0
- salome/share/salome/resources/kernel/app-template/resources/doc/sample.pdf +0 -0
- salome/share/salome/resources/kernel/app-template/resources/icon_about.png +0 -0
- salome/share/salome/resources/kernel/app-template/resources/splash.png +0 -0
- salome/share/salome/resources/kernel/app-template/src/CMakeLists.txt +22 -0
- salome/share/salome/resources/kernel/app-template/src/resources/CMakeLists.txt +34 -0
- salome/share/salome/resources/kernel/app-template/src/resources/LightApp_images.ts +23 -0
- salome/share/salome/resources/kernel/app-template/src/resources/LightApp_msg_en.ts +35 -0
- salome/share/salome/resources/kernel/app-template/src/resources/LightApp_msg_fr.ts +35 -0
- salome/share/salome/resources/kernel/app-template/src/resources/LightApp_msg_ja.ts +35 -0
- salome/share/salome/resources/kernel/app-template/src/tests/CMakeLists.txt +29 -0
- salome/share/salome/resources/kernel/app-template/src/tests/README +1 -0
- salome/share/salome/resources/kernel/app-template/src/tests/helloWorld.py +1 -0
- salome/share/salome/resources/kernel/background.png +0 -0
- salome/share/salome/resources/kernel/channel.cfg +278 -0
- salome/share/salome/resources/kernel/testLauncher.xml +10 -0
- salome_kernel-9.14.0.post6.dist-info/METADATA +25 -0
- salome_kernel-9.14.0.post6.dist-info/RECORD +443 -0
- salome_kernel-9.14.0.post6.dist-info/WHEEL +6 -0
- salome_kernel-9.14.0.post6.dist-info/entry_points.txt +2 -0
- salome_kernel-9.14.0.post6.dist-info/sboms/auditwheel.cdx.json +1 -0
- salome_kernel.libs/libArgvKeeper-822351d5.so +0 -0
- salome_kernel.libs/libCOS4-b4544fb9.so.2.5 +0 -0
- salome_kernel.libs/libCOSDynamic4-618dbb1d.so.2.5 +0 -0
- salome_kernel.libs/libCalciumC-f6af782c.so +0 -0
- salome_kernel.libs/libDF-281cc999.so +0 -0
- salome_kernel.libs/libLauncher-09c39914.so +0 -0
- salome_kernel.libs/libLauncherWrapHelper-5ee25ab2.so +0 -0
- salome_kernel.libs/libOpUtil-8d37ccc8.so +0 -0
- salome_kernel.libs/libRegistry-e4a63a9e.so +0 -0
- salome_kernel.libs/libResourcesManager-f4ef9548.so +0 -0
- salome_kernel.libs/libSALOMEBasics-f4d874ac.so +0 -0
- salome_kernel.libs/libSALOMELocalTrace-a3992e5b.so +0 -0
- salome_kernel.libs/libSALOMELog-55805468.so +0 -0
- salome_kernel.libs/libSalomeCalcium-859bd08a.so +0 -0
- salome_kernel.libs/libSalomeCatalog-cc0d3e4b.so +0 -0
- salome_kernel.libs/libSalomeCommunication-451307b4.so +0 -0
- salome_kernel.libs/libSalomeContainer-385f22bc.so +0 -0
- salome_kernel.libs/libSalomeContainerServer-22f0534a.so +0 -0
- salome_kernel.libs/libSalomeDS-52142005.so +0 -0
- salome_kernel.libs/libSalomeDSCContainer-50b97993.so +0 -0
- salome_kernel.libs/libSalomeDSCSuperv-c3169f30.so +0 -0
- salome_kernel.libs/libSalomeDSCSupervBasic-49dc930a.so +0 -0
- salome_kernel.libs/libSalomeDSClient-dc9947bb.so +0 -0
- salome_kernel.libs/libSalomeDSImpl-7984f375.so +0 -0
- salome_kernel.libs/libSalomeDatastream-450015c8.so +0 -0
- salome_kernel.libs/libSalomeGenericObj-3ccf0028.so +0 -0
- salome_kernel.libs/libSalomeHDFPersist-5d0aa606.so +0 -0
- salome_kernel.libs/libSalomeIDLKernel-2eb1ed8e.so +0 -0
- salome_kernel.libs/libSalomeKernelHelpers-1e3c2b19.so +0 -0
- salome_kernel.libs/libSalomeLauncher-59553570.so +0 -0
- salome_kernel.libs/libSalomeLifeCycleCORBA-d0360629.so +0 -0
- salome_kernel.libs/libSalomeLoggerServer-15201cc7.so +0 -0
- salome_kernel.libs/libSalomeNS-a03a7eba.so +0 -0
- salome_kernel.libs/libSalomeNotification-66efcfbd.so +0 -0
- salome_kernel.libs/libSalomeORB-f304f4df.so +0 -0
- salome_kernel.libs/libSalomePalm-72fea792.so +0 -0
- salome_kernel.libs/libSalomeResourcesManager-fd411949.so +0 -0
- salome_kernel.libs/libSalomeSDS-543d0459.so +0 -0
- salome_kernel.libs/libSalomeTestComponentEngine-317ebef6.so +0 -0
- salome_kernel.libs/libTOOLSDS-db8e8629.so +0 -0
- salome_kernel.libs/libbatch-779d48ee.so +0 -0
- salome_kernel.libs/libboost_atomic-489c2d94.so.1.81.0 +0 -0
- salome_kernel.libs/libboost_filesystem-e610b554.so.1.81.0 +0 -0
- salome_kernel.libs/libboost_system-4a7650ea.so.1.81.0 +0 -0
- salome_kernel.libs/libcppunit-1-17e77af1.12.so.1.0.0 +0 -0
- salome_kernel.libs/libhdf5-4696a94b.so.103.0.0 +0 -0
- salome_kernel.libs/liblzma-004595ca.so.5.2.2 +0 -0
- salome_kernel.libs/libomniDynamic4-9edc765d.so.2.5 +0 -0
- salome_kernel.libs/libomniORB4-4725824d.so.2.5 +0 -0
- salome_kernel.libs/libomnithread-99f9d0d3.so.4.1 +0 -0
- salome_kernel.libs/libwith_loggerTraceCollector-c1de231b.so +0 -0
- salome_kernel.libs/libwith_loggerTraceCollector.so +0 -0
- salome_kernel.libs/libxml2-3998bec4.so.2.9.1 +0 -0
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
#! /usr/bin/env python3
|
|
2
|
+
# -*- coding: utf-8 -*-
|
|
3
|
+
# Copyright (C) 2021-2024 CEA, EDF
|
|
4
|
+
#
|
|
5
|
+
# This library is free software; you can redistribute it and/or
|
|
6
|
+
# modify it under the terms of the GNU Lesser General Public
|
|
7
|
+
# License as published by the Free Software Foundation; either
|
|
8
|
+
# version 2.1 of the License, or (at your option) any later version.
|
|
9
|
+
#
|
|
10
|
+
# This library is distributed in the hope that it will be useful,
|
|
11
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
13
|
+
# Lesser General Public License for more details.
|
|
14
|
+
#
|
|
15
|
+
# You should have received a copy of the GNU Lesser General Public
|
|
16
|
+
# License along with this library; if not, write to the Free Software
|
|
17
|
+
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
18
|
+
#
|
|
19
|
+
# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
|
20
|
+
#
|
|
21
|
+
|
|
22
|
+
import os
|
|
23
|
+
import sys
|
|
24
|
+
from salome.kernel import salome
|
|
25
|
+
from salome.kernel import Engines
|
|
26
|
+
|
|
27
|
+
salome.salome_init_without_session()
|
|
28
|
+
rp=Engines.ResourceParameters(name="localhost",
|
|
29
|
+
hostname="localhost",
|
|
30
|
+
can_launch_batch_jobs=False,
|
|
31
|
+
can_run_containers=True,
|
|
32
|
+
OS="Linux",
|
|
33
|
+
componentList=[],
|
|
34
|
+
nb_proc=1,
|
|
35
|
+
mem_mb=1000,
|
|
36
|
+
cpu_clock=1000,
|
|
37
|
+
nb_node=1,
|
|
38
|
+
nb_proc_per_node=1,
|
|
39
|
+
policy="first",
|
|
40
|
+
resList=[])
|
|
41
|
+
|
|
42
|
+
cp=Engines.ContainerParameters(container_name="container_test",
|
|
43
|
+
mode="start",
|
|
44
|
+
workingdir=os.getcwd(),
|
|
45
|
+
nb_proc=1,
|
|
46
|
+
isMPI=False,
|
|
47
|
+
parallelLib="",
|
|
48
|
+
resource_params=rp)
|
|
49
|
+
|
|
50
|
+
cm=salome.naming_service.Resolve("/ContainerManager")
|
|
51
|
+
|
|
52
|
+
cont_prov=cm.GiveContainer(cp)
|
|
53
|
+
import CORBA
|
|
54
|
+
import pickle
|
|
55
|
+
orb=CORBA.ORB_init([''])
|
|
56
|
+
|
|
57
|
+
# Testing for CM
|
|
58
|
+
ref_cm = orb.object_to_string(salome.cm)
|
|
59
|
+
pyscript = cont_prov.createPyScriptNode("testCM","""from salome.kernel import salome\nsalome.salome_init()\nthe_cm=salome.cm""")
|
|
60
|
+
pyscript.execute([],pickle.dumps(([],{})))
|
|
61
|
+
cm_to_test = orb.object_to_string(pickle.loads(pyscript.execute(["the_cm"],pickle.dumps(([],{}))))[0])
|
|
62
|
+
if cm_to_test!=ref_cm:
|
|
63
|
+
raise AssertionError("The ContainerManager of salome_init launched in SALOME_Container_No_NS_Serv is not those in current process !")
|
|
64
|
+
pyscriptt = cont_prov.createPyScriptNode("testCM2","""from salome.kernel import salome\nsalome.salome_init()\nthe_cm=salome.naming_service.Resolve("/ContainerManager")""")
|
|
65
|
+
pyscriptt.execute([],pickle.dumps(([],{})))
|
|
66
|
+
cm_to_testt = orb.object_to_string(pickle.loads(pyscriptt.execute(["the_cm"],pickle.dumps(([],{}))))[0])
|
|
67
|
+
if cm_to_testt!=ref_cm:
|
|
68
|
+
raise AssertionError("The ContainerManager of salome_init launched in SALOME_Container_No_NS_Serv is not those in current process !")
|
|
69
|
+
del pyscript,pyscriptt,ref_cm,cm_to_test,cm_to_testt
|
|
70
|
+
|
|
71
|
+
# Testing for RM
|
|
72
|
+
ref_rm = orb.object_to_string(salome.lcc.getResourcesManager())
|
|
73
|
+
pyscript4 = cont_prov.createPyScriptNode("testRM","""from salome.kernel import salome\nsalome.salome_init()\nthe_rm=salome.lcc.getResourcesManager()""")
|
|
74
|
+
pyscript4.execute([],pickle.dumps(([],{})))
|
|
75
|
+
rm_to_test = orb.object_to_string(pickle.loads(pyscript4.execute(["the_rm"],pickle.dumps(([],{}))))[0])
|
|
76
|
+
if rm_to_test!=ref_rm:
|
|
77
|
+
raise AssertionError("The ResourcesManager of salome_init launched in SALOME_Container_No_NS_Serv is not those in current process !")
|
|
78
|
+
pyscript44 = cont_prov.createPyScriptNode("testRM2","""from salome.kernel import salome\nsalome.salome_init()\nthe_rm=salome.naming_service.Resolve("/ResourcesManager")""")
|
|
79
|
+
pyscript44.execute([],pickle.dumps(([],{})))
|
|
80
|
+
rm_to_testt = orb.object_to_string(pickle.loads(pyscript44.execute(["the_rm"],pickle.dumps(([],{}))))[0])
|
|
81
|
+
if rm_to_testt!=ref_rm:
|
|
82
|
+
raise AssertionError("The ResourcesManager of salome_init launched in SALOME_Container_No_NS_Serv is not those in current process !")
|
|
83
|
+
del pyscript4,pyscript44,ref_rm,rm_to_test,rm_to_testt
|
|
84
|
+
|
|
85
|
+
# Testing for DSM
|
|
86
|
+
ref_dsm = orb.object_to_string(salome.dsm)
|
|
87
|
+
pyscript2 = cont_prov.createPyScriptNode("testDSM","""from salome.kernel import salome\nsalome.salome_init()\nthe_dsm=salome.dsm""")
|
|
88
|
+
dsm_to_test = orb.object_to_string(pickle.loads(pyscript2.execute(["the_dsm"],pickle.dumps(([],{}))))[0])
|
|
89
|
+
if dsm_to_test!=ref_dsm:
|
|
90
|
+
raise AssertionError("The DataServerManager of salome_init launched in SALOME_Container_No_NS_Serv is not those in current process !")
|
|
91
|
+
pyscript22 = cont_prov.createPyScriptNode("testDSM","""from salome.kernel import salome\nsalome.salome_init()\nthe_dsm=salome.naming_service.Resolve("/DataServerManager")""")
|
|
92
|
+
dsm_to_test_2 = orb.object_to_string(pickle.loads(pyscript22.execute(["the_dsm"],pickle.dumps(([],{}))))[0])
|
|
93
|
+
if dsm_to_test_2!=ref_dsm:
|
|
94
|
+
raise AssertionError("The DataServerManager of salome_init launched in SALOME_Container_No_NS_Serv is not those in current process !")
|
|
95
|
+
del pyscript2,pyscript22,ref_dsm,dsm_to_test,dsm_to_test_2
|
|
96
|
+
|
|
97
|
+
# Testing for ESM
|
|
98
|
+
ref_esm = orb.object_to_string(salome.esm)
|
|
99
|
+
pyscript3 = cont_prov.createPyScriptNode("testESM","""from salome.kernel import salome\nsalome.salome_init()\nthe_esm=salome.esm""")
|
|
100
|
+
esm_to_test = orb.object_to_string(pickle.loads(pyscript3.execute(["the_esm"],pickle.dumps(([],{}))))[0])
|
|
101
|
+
if esm_to_test!=ref_esm:
|
|
102
|
+
raise AssertionError("The ExternalServerLauncher of salome_init launched in SALOME_Container_No_NS_Serv is not those in current process !")
|
|
103
|
+
pyscript33 = cont_prov.createPyScriptNode("testDSM","""from salome.kernel import salome\nsalome.salome_init()\nthe_esm=salome.naming_service.Resolve("/ExternalServers")""")
|
|
104
|
+
esm_to_test_2 = orb.object_to_string(pickle.loads(pyscript33.execute(["the_esm"],pickle.dumps(([],{}))))[0])
|
|
105
|
+
if esm_to_test_2!=ref_esm:
|
|
106
|
+
raise AssertionError("The ExternalServerLauncher of salome_init launched in SALOME_Container_No_NS_Serv is not those in current process !")
|
|
107
|
+
del pyscript3,pyscript33,ref_esm,esm_to_test,esm_to_test_2
|
|
108
|
+
|
|
109
|
+
# End of test
|
|
110
|
+
cont_prov.Shutdown()
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
#! /usr/bin/env python3
|
|
2
|
+
# -*- coding: utf-8 -*-
|
|
3
|
+
# Copyright (C) 2018-2024 CEA, EDF
|
|
4
|
+
#
|
|
5
|
+
# This library is free software; you can redistribute it and/or
|
|
6
|
+
# modify it under the terms of the GNU Lesser General Public
|
|
7
|
+
# License as published by the Free Software Foundation; either
|
|
8
|
+
# version 2.1 of the License, or (at your option) any later version.
|
|
9
|
+
#
|
|
10
|
+
# This library is distributed in the hope that it will be useful,
|
|
11
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
13
|
+
# Lesser General Public License for more details.
|
|
14
|
+
#
|
|
15
|
+
# You should have received a copy of the GNU Lesser General Public
|
|
16
|
+
# License along with this library; if not, write to the Free Software
|
|
17
|
+
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
18
|
+
#
|
|
19
|
+
# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
|
20
|
+
#
|
|
21
|
+
|
|
22
|
+
# classic use case of a job
|
|
23
|
+
import os
|
|
24
|
+
from salome.kernel import salome
|
|
25
|
+
from salome.kernel import LifeCycleCORBA
|
|
26
|
+
import tempfile
|
|
27
|
+
import time
|
|
28
|
+
import sys
|
|
29
|
+
|
|
30
|
+
if __name__ == '__main__':
|
|
31
|
+
salome.standalone()
|
|
32
|
+
salome.salome_init()
|
|
33
|
+
launcher = salome.naming_service.Resolve('/SalomeLauncher')
|
|
34
|
+
job_params = LifeCycleCORBA.JobParameters()
|
|
35
|
+
job_params.resource_required = LifeCycleCORBA.ResourceParameters()
|
|
36
|
+
job_params.resource_required.name = "localhost"
|
|
37
|
+
job_params.resource_required.nb_proc = 1 # slurm: --ntasks
|
|
38
|
+
|
|
39
|
+
job_params.job_type = "command"
|
|
40
|
+
#cwd = os.getcwd()
|
|
41
|
+
cwd = sys.argv[1]
|
|
42
|
+
case_dir = tempfile.mkdtemp(prefix="test")
|
|
43
|
+
job_params.local_directory = cwd
|
|
44
|
+
job_params.job_file = "command.sh"
|
|
45
|
+
job_params.work_directory = os.path.join(case_dir, "run")
|
|
46
|
+
job_params.result_directory = os.path.join(case_dir, "result")
|
|
47
|
+
job_params.out_files = ["result.txt"]
|
|
48
|
+
job_params.wckey="P11U5:CARBONES"
|
|
49
|
+
job_params.job_name = "MyJob"
|
|
50
|
+
job_id = launcher.createJob(job_params)
|
|
51
|
+
launcher.launchJob(job_id)
|
|
52
|
+
job_string = launcher.dumpJob(job_id)
|
|
53
|
+
jobState = launcher.getJobState(job_id)
|
|
54
|
+
while jobState != 'FINISHED' and jobState != 'FAILED':
|
|
55
|
+
time.sleep(1)
|
|
56
|
+
jobState = launcher.getJobState(job_id)
|
|
57
|
+
launcher.getJobResults(job_id, '')
|
|
58
|
+
launcher.getJobWorkFile(job_id, "result.txt", '')
|
|
59
|
+
launcher.clearJobWorkingDir(job_id)
|
|
60
|
+
launcher.removeJob(job_id)
|
|
61
|
+
new_id = launcher.restoreJob(job_string)
|
|
62
|
+
job_params_bis = launcher.getJobParameters(new_id)
|
|
63
|
+
jobState = launcher.getJobState(new_id)
|
|
64
|
+
launcher.removeJob(new_id)
|
|
65
|
+
launcher.saveJobs(os.path.join(case_dir,"savejobs.xml"))
|
|
@@ -0,0 +1,423 @@
|
|
|
1
|
+
# -*- coding: iso-8859-1 -*-
|
|
2
|
+
# Copyright (C) 2024 CEA/DEN, EDF R&D
|
|
3
|
+
#
|
|
4
|
+
# This library is free software; you can redistribute it and/or
|
|
5
|
+
# modify it under the terms of the GNU Lesser General Public
|
|
6
|
+
# License as published by the Free Software Foundation; either
|
|
7
|
+
# version 2.1 of the License, or (at your option) any later version.
|
|
8
|
+
#
|
|
9
|
+
# This library is distributed in the hope that it will be useful,
|
|
10
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
12
|
+
# Lesser General Public License for more details.
|
|
13
|
+
#
|
|
14
|
+
# You should have received a copy of the GNU Lesser General Public
|
|
15
|
+
# License along with this library; if not, write to the Free Software
|
|
16
|
+
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
17
|
+
#
|
|
18
|
+
# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
|
19
|
+
#
|
|
20
|
+
|
|
21
|
+
from salome.kernel import salome
|
|
22
|
+
from salome.kernel import Engines
|
|
23
|
+
from salome.kernel import SALOME_PyNode
|
|
24
|
+
from salome.kernel import pylauncher
|
|
25
|
+
from salome.kernel import KernelBasis
|
|
26
|
+
from salome.kernel import SALOME
|
|
27
|
+
from salome.kernel.SALOME_PyNode import UnProxyObjectSimple,DecrRefInFile
|
|
28
|
+
|
|
29
|
+
import unittest
|
|
30
|
+
import os
|
|
31
|
+
import tempfile
|
|
32
|
+
import glob
|
|
33
|
+
import pickle
|
|
34
|
+
import tempfile
|
|
35
|
+
import logging
|
|
36
|
+
from datetime import datetime
|
|
37
|
+
import subprocess as sp
|
|
38
|
+
from pathlib import Path
|
|
39
|
+
|
|
40
|
+
killMeCode = """
|
|
41
|
+
import os
|
|
42
|
+
import sys
|
|
43
|
+
import signal
|
|
44
|
+
j = 7 * i
|
|
45
|
+
sys.stdout.write(str(j)) ; sys.stdout.flush() # the aime of test in replay mode to be sure that case is runnable
|
|
46
|
+
os.kill( os.getpid() , signal.SIGKILL)# the aim of test is here
|
|
47
|
+
"""
|
|
48
|
+
|
|
49
|
+
normalCode = """
|
|
50
|
+
j = 8 * i
|
|
51
|
+
my_log_4_this_session.addFreestyleAndFlush( ("a",777) ) # to check that hidden var is still accessible
|
|
52
|
+
"""
|
|
53
|
+
|
|
54
|
+
heatCPUCode = """from salome.kernel import KernelBasis
|
|
55
|
+
nbcore = 3
|
|
56
|
+
cst = KernelBasis.GetTimeAdjustmentCst()
|
|
57
|
+
KernelBasis.HeatMarcel(5 * nbcore * cst,nbcore)
|
|
58
|
+
j = 8*i"""
|
|
59
|
+
|
|
60
|
+
killMeAtTheEnd = """import atexit
|
|
61
|
+
from salome.kernel import KernelServices
|
|
62
|
+
|
|
63
|
+
def ErrorAtexit():
|
|
64
|
+
KernelServices.GenerateViolentMemoryFaultForTestPurpose()
|
|
65
|
+
|
|
66
|
+
atexit.register(ErrorAtexit)
|
|
67
|
+
|
|
68
|
+
print("OKKKKKK")
|
|
69
|
+
j = 9 * i * a
|
|
70
|
+
print("OKKKKKK3333")
|
|
71
|
+
"""
|
|
72
|
+
|
|
73
|
+
killMeAtTheEnd2 = """import atexit
|
|
74
|
+
from salome.kernel import KernelServices
|
|
75
|
+
import os
|
|
76
|
+
|
|
77
|
+
def ErrorAtexit():
|
|
78
|
+
KernelServices.GenerateViolentMemoryFaultForTestPurpose()
|
|
79
|
+
|
|
80
|
+
atexit.register(ErrorAtexit)
|
|
81
|
+
|
|
82
|
+
print("OKKKKKK")
|
|
83
|
+
j = 9 * i * a
|
|
84
|
+
k = os.getcwd()
|
|
85
|
+
print("OKKKKKK3333")
|
|
86
|
+
"""
|
|
87
|
+
|
|
88
|
+
FunnyCase_test5 = """import os
|
|
89
|
+
import time
|
|
90
|
+
if not os.path.exists( {!r} ):
|
|
91
|
+
time.sleep( 20 ) # first exec spend voluntary more than 10 seconds to test retry
|
|
92
|
+
else:
|
|
93
|
+
time.sleep( 2 ) # second exec after retry
|
|
94
|
+
j = 44
|
|
95
|
+
"""
|
|
96
|
+
|
|
97
|
+
FunnyCase_test6 = """
|
|
98
|
+
import numpy as np
|
|
99
|
+
import time
|
|
100
|
+
nb = i.shape[0]
|
|
101
|
+
del i
|
|
102
|
+
#time.sleep(10)
|
|
103
|
+
j = np.zeros(shape=(2*nb,),dtype=np.float64)
|
|
104
|
+
"""
|
|
105
|
+
|
|
106
|
+
FunnyCase_test7 = """
|
|
107
|
+
import numpy as np
|
|
108
|
+
nb = i.shape[0]
|
|
109
|
+
j = np.zeros(shape=(2*nb,),dtype=np.float64)
|
|
110
|
+
"""
|
|
111
|
+
|
|
112
|
+
class testPerfLogManager1(unittest.TestCase):
|
|
113
|
+
def test0(self):
|
|
114
|
+
"""
|
|
115
|
+
EDF29852 : Kill container with OutOfProcessNoReplay mode and see if container still responds.
|
|
116
|
+
"""
|
|
117
|
+
with tempfile.TemporaryDirectory() as tmpdirname:
|
|
118
|
+
salome.salome_init()
|
|
119
|
+
assert(isinstance(KernelBasis.GetAllPyExecutionModes(),tuple))
|
|
120
|
+
KernelBasis.SetPyExecutionMode("OutOfProcessNoReplay") # the aim of test is here
|
|
121
|
+
hostname = "localhost"
|
|
122
|
+
cp = pylauncher.GetRequestForGiveContainer(hostname,"container_crash_test")
|
|
123
|
+
salome.cm.SetBigObjOnDiskThreshold(1000)
|
|
124
|
+
salome.cm.SetOverrideEnvForContainersSimple(env = [])
|
|
125
|
+
salome.cm.SetDirectoryForReplayFiles( str( tmpdirname ) )
|
|
126
|
+
cont = salome.cm.GiveContainer(cp)
|
|
127
|
+
poa = salome.orb.resolve_initial_references("RootPOA")
|
|
128
|
+
obj = SALOME_PyNode.SenderByte_i(poa,pickle.dumps( (["i"],{"i": 3} ) )) ; id_o = poa.activate_object(obj) ; refPtr = poa.id_to_reference(id_o)
|
|
129
|
+
pyscript2 = cont.createPyScriptNode("testScript2",killMeCode)
|
|
130
|
+
pyscript2.executeFirst(refPtr)
|
|
131
|
+
self.assertRaises(SALOME.SALOME_Exception,pyscript2.executeSecond,["j"]) # an agressive SIGKILL has been received and container is still alive :) - it throws an exception :)
|
|
132
|
+
pyscript2.UnRegister()
|
|
133
|
+
pyscript3 = cont.createPyScriptNode("testScript3",normalCode)
|
|
134
|
+
obj = SALOME_PyNode.SenderByte_i(poa,pickle.dumps( (["i"],{"i": 3} ) )) ; id_o = poa.activate_object(obj) ; refPtr = poa.id_to_reference(id_o)
|
|
135
|
+
pyscript3.executeFirst(refPtr)
|
|
136
|
+
ret = pyscript3.executeSecond(["j"])
|
|
137
|
+
ret = pickle.loads( SALOME_PyNode.SeqByteReceiver(ret[0]).data() )
|
|
138
|
+
self.assertEqual(ret,24) # container has received a SIGKILL but it kindly continue to respond :)
|
|
139
|
+
a = salome.logm.NaiveFetch()
|
|
140
|
+
dicToTest = {k:v for k,v in a[0][2][0].get().freestyle}
|
|
141
|
+
self.assertEqual(dicToTest['a'],777)
|
|
142
|
+
cont.Shutdown()
|
|
143
|
+
|
|
144
|
+
def test1(self):
|
|
145
|
+
"""
|
|
146
|
+
EDF29852 : Same than test0 Kill container with OutOfProcessWithReplay mode and see if container still responds. But in addition we test if the python script is runnable !
|
|
147
|
+
"""
|
|
148
|
+
with tempfile.TemporaryDirectory() as tmpdirname:
|
|
149
|
+
salome.salome_init()
|
|
150
|
+
assert(isinstance(KernelBasis.GetAllPyExecutionModes(),tuple))
|
|
151
|
+
KernelBasis.SetPyExecutionMode("OutOfProcessWithReplay") # the aim of test is here
|
|
152
|
+
hostname = "localhost"
|
|
153
|
+
cp = pylauncher.GetRequestForGiveContainer(hostname,"container_crash_test")
|
|
154
|
+
salome.cm.SetBigObjOnDiskThreshold(1000)
|
|
155
|
+
salome.cm.SetOverrideEnvForContainersSimple(env = [])
|
|
156
|
+
salome.cm.SetDirectoryForReplayFiles(str( tmpdirname ))
|
|
157
|
+
cont = salome.cm.GiveContainer(cp)
|
|
158
|
+
poa = salome.orb.resolve_initial_references("RootPOA")
|
|
159
|
+
obj = SALOME_PyNode.SenderByte_i(poa,pickle.dumps( (["i"],{"i": 3} ) )) ; id_o = poa.activate_object(obj) ; refPtr = poa.id_to_reference(id_o)
|
|
160
|
+
pyscript2 = cont.createPyScriptNode("testScript2",killMeCode)
|
|
161
|
+
pyscript2.executeFirst(refPtr)
|
|
162
|
+
self.assertRaises(SALOME.SALOME_Exception,pyscript2.executeSecond,["j"]) # an agressive SIGKILL has been received and container is still alive :) - it throws an exception :)
|
|
163
|
+
pyscript2.UnRegister()
|
|
164
|
+
pyscript3 = cont.createPyScriptNode("testScript3",normalCode)
|
|
165
|
+
obj = SALOME_PyNode.SenderByte_i(poa,pickle.dumps( (["i"],{"i": 3} ) )) ; id_o = poa.activate_object(obj) ; refPtr = poa.id_to_reference(id_o)
|
|
166
|
+
pyscript3.executeFirst(refPtr)
|
|
167
|
+
ret = pyscript3.executeSecond(["j"])
|
|
168
|
+
ret = pickle.loads( SALOME_PyNode.SeqByteReceiver(ret[0]).data() )
|
|
169
|
+
self.assertEqual(ret,24) # container has received a SIGKILL but it kindly continue to respond :)
|
|
170
|
+
a = salome.logm.NaiveFetch()
|
|
171
|
+
dicToTest = {k:v for k,v in a[0][2][0].get().freestyle}
|
|
172
|
+
self.assertEqual(dicToTest['a'],777)
|
|
173
|
+
# EDF30875 : check in verbose mode of presence of entries to debug
|
|
174
|
+
self.assertEqual( set(dicToTest), {'strtdumpout', 'b4loadctx', 'afterloadctx', 'afterdump', 'bforeexec', 'a', 'afterexec'} )
|
|
175
|
+
grpsOfLogToKill = cont.getAllLogFileNameGroups()
|
|
176
|
+
self.assertEqual(1,len(grpsOfLogToKill))
|
|
177
|
+
replayInput = grpsOfLogToKill[0]
|
|
178
|
+
# now try to replay the failing case
|
|
179
|
+
p = sp.Popen(["python3",os.path.basename(replayInput[0])],cwd = os.path.dirname(replayInput[0]),stdout=sp.PIPE,stderr=sp.PIPE)
|
|
180
|
+
out,err = p.communicate()
|
|
181
|
+
self.assertNotEqual(p.returncode,0) # very important ! The failing case must continue to fail :)
|
|
182
|
+
self.assertEqual("21".encode(),out) # very important to check that the reported case is standalone enough to be replayable poste mortem
|
|
183
|
+
# cleanup
|
|
184
|
+
dn = os.path.dirname(replayInput[0])
|
|
185
|
+
for elt in replayInput:
|
|
186
|
+
zeFile = os.path.join( dn, os.path.basename(elt) )
|
|
187
|
+
if os.path.exists( zeFile ):
|
|
188
|
+
os.unlink( zeFile )
|
|
189
|
+
cont.Shutdown()
|
|
190
|
+
|
|
191
|
+
def test2(self):
|
|
192
|
+
"""
|
|
193
|
+
Aim of test is to check that CPU/mem retrieved in log is OK even in OutOfProcessNoReplay mode.
|
|
194
|
+
"""
|
|
195
|
+
with tempfile.TemporaryDirectory() as tmpdirname:
|
|
196
|
+
salome.salome_init()
|
|
197
|
+
salome.logm.clear()
|
|
198
|
+
assert(isinstance(KernelBasis.GetAllPyExecutionModes(),tuple))
|
|
199
|
+
KernelBasis.SetPyExecutionMode("OutOfProcessNoReplay") # the aim of test is here
|
|
200
|
+
hostname = "localhost"
|
|
201
|
+
PROXY_THRES = -1
|
|
202
|
+
#
|
|
203
|
+
salome.cm.SetBigObjOnDiskThreshold(PROXY_THRES)
|
|
204
|
+
salome.cm.SetOverrideEnvForContainersSimple(env = [])
|
|
205
|
+
salome.cm.SetDirectoryForReplayFiles(str( tmpdirname ))
|
|
206
|
+
salome.cm.SetDeltaTimeBetweenCPUMemMeasureInMilliSecond( 250 )
|
|
207
|
+
cp = pylauncher.GetRequestForGiveContainer(hostname,"container_cpu_mem_out_process_test")
|
|
208
|
+
cont = salome.cm.GiveContainer(cp)
|
|
209
|
+
poa = salome.orb.resolve_initial_references("RootPOA")
|
|
210
|
+
obj = SALOME_PyNode.SenderByte_i(poa,pickle.dumps( (["i"],{"i": 3} ) )) ; id_o = poa.activate_object(obj) ; refPtr = poa.id_to_reference(id_o)
|
|
211
|
+
pyscript2 = cont.createPyScriptNode("testScript3",heatCPUCode)
|
|
212
|
+
pyscript2.executeFirst(refPtr)
|
|
213
|
+
ret = pyscript2.executeSecond(["j"])
|
|
214
|
+
ret = pickle.loads( SALOME_PyNode.SeqByteReceiver(ret[0]).data() )
|
|
215
|
+
self.assertEqual(ret,24)
|
|
216
|
+
pyscript2.UnRegister()
|
|
217
|
+
a = salome.logm.NaiveFetch()
|
|
218
|
+
cpu_mem_to_test = a[0][1][0].get()._cpu_mem_during_exec.data # normally even in OutOfProcessNoReplay mode the CPU must report somehing greater than 100
|
|
219
|
+
self.assertGreater(len(cpu_mem_to_test),10) # 5 second of run 250 ms of interval between measures -> 20. In case of problem in HeatMarcel -> 10
|
|
220
|
+
logging.debug("CPU mem measured (even in OutOfProcessNoReplay) : {}".format(cpu_mem_to_test))
|
|
221
|
+
greater_than_100 = [a for a,b in cpu_mem_to_test if a > 100]
|
|
222
|
+
self.assertGreater(len(greater_than_100),1) # At minimum one measure must report CPU load > 100%
|
|
223
|
+
cont.Shutdown()
|
|
224
|
+
|
|
225
|
+
def test3(self):
|
|
226
|
+
"""
|
|
227
|
+
[EDF29150] : test that we can resist to a crash at exit
|
|
228
|
+
"""
|
|
229
|
+
with tempfile.TemporaryDirectory() as tmpdirname:
|
|
230
|
+
salome.salome_init()
|
|
231
|
+
KernelBasis.SetPyExecutionMode("OutOfProcessWithReplayFT")
|
|
232
|
+
hostname = "localhost"
|
|
233
|
+
cp = pylauncher.GetRequestForGiveContainer(hostname,"container_crash_test")
|
|
234
|
+
salome.cm.SetNumberOfRetry( 3 )
|
|
235
|
+
salome.cm.SetCodeOnContainerStartUp("""a = 2""")
|
|
236
|
+
salome.cm.SetBigObjOnDiskThreshold(1000)
|
|
237
|
+
salome.cm.SetOverrideEnvForContainersSimple(env = [])
|
|
238
|
+
salome.cm.SetDirectoryForReplayFiles(str( tmpdirname ))
|
|
239
|
+
cont = salome.cm.GiveContainer(cp)
|
|
240
|
+
poa = salome.orb.resolve_initial_references("RootPOA")
|
|
241
|
+
obj = SALOME_PyNode.SenderByte_i(poa,pickle.dumps( (["i"],{"i": 3} ) )) ; id_o = poa.activate_object(obj) ; refPtr = poa.id_to_reference(id_o)
|
|
242
|
+
pyscript = cont.createPyScriptNode("testScript4",killMeAtTheEnd)
|
|
243
|
+
pyscript.executeFirst(refPtr)
|
|
244
|
+
ret = pyscript.executeSecond(["j"])
|
|
245
|
+
ret = pickle.loads( SALOME_PyNode.SeqByteReceiver(ret[0]).data() )
|
|
246
|
+
self.assertEqual(ret,54)
|
|
247
|
+
with open(cont.locallogfilename) as f:
|
|
248
|
+
logCont = f.read( )
|
|
249
|
+
self.assertTrue( "WARNING : Retry #" in logCont)
|
|
250
|
+
self.assertTrue( "WARNING : Following code has generated non zero return code" in logCont )# should report something into the container
|
|
251
|
+
cont.Shutdown()
|
|
252
|
+
|
|
253
|
+
def test4(self):
|
|
254
|
+
"""
|
|
255
|
+
EDF30399 : Check current directory
|
|
256
|
+
"""
|
|
257
|
+
with tempfile.TemporaryDirectory() as tmpdirname:
|
|
258
|
+
os.chdir( tmpdirname )
|
|
259
|
+
KernelBasis.SetForwardCurrentDirectoryStatus( True ) # key point
|
|
260
|
+
salome.salome_init()
|
|
261
|
+
assert(isinstance(KernelBasis.GetAllPyExecutionModes(),tuple))
|
|
262
|
+
KernelBasis.SetPyExecutionMode("OutOfProcessNoReplayFT") # the aim of test is here
|
|
263
|
+
hostname = "localhost"
|
|
264
|
+
cp = pylauncher.GetRequestForGiveContainer(hostname,"container_crash_test_2")
|
|
265
|
+
salome.cm.SetCodeOnContainerStartUp("""a = 2""")
|
|
266
|
+
salome.cm.SetBigObjOnDiskThreshold(1000)
|
|
267
|
+
salome.cm.SetOverrideEnvForContainersSimple(env = [])
|
|
268
|
+
salome.cm.SetDirectoryForReplayFiles( str( tmpdirname ) )
|
|
269
|
+
cont = salome.cm.GiveContainer(cp)
|
|
270
|
+
poa = salome.orb.resolve_initial_references("RootPOA")
|
|
271
|
+
obj = SALOME_PyNode.SenderByte_i(poa,pickle.dumps( (["i"],{"i": 3} ) )) ; id_o = poa.activate_object(obj) ; refPtr = poa.id_to_reference(id_o)
|
|
272
|
+
pyscript = cont.createPyScriptNode("testScript4",killMeAtTheEnd2)
|
|
273
|
+
pyscript.executeFirst(refPtr)
|
|
274
|
+
ret = pyscript.executeSecond(["j","k"])
|
|
275
|
+
ret0 = pickle.loads( SALOME_PyNode.SeqByteReceiver(ret[0]).data() )
|
|
276
|
+
self.assertEqual(ret0,54)
|
|
277
|
+
ret2 = pickle.loads( SALOME_PyNode.SeqByteReceiver(ret[1]).data() )
|
|
278
|
+
self.assertEqual( ret2, str(tmpdirname) )
|
|
279
|
+
cont.Shutdown()
|
|
280
|
+
|
|
281
|
+
def test5(self):
|
|
282
|
+
"""
|
|
283
|
+
EDF30875 : Verbose mode set to ON
|
|
284
|
+
"""
|
|
285
|
+
from threading import Thread
|
|
286
|
+
def func( fname ):
|
|
287
|
+
import time
|
|
288
|
+
time.sleep( 5 ) # this sleep here is to let time to
|
|
289
|
+
with open( fname, "w" ) as f:
|
|
290
|
+
f.write( "go" )
|
|
291
|
+
# file used to pilot the behaviour of process
|
|
292
|
+
fname = "touch.txt"
|
|
293
|
+
KernelBasis.SetNumberOfRetry(2)
|
|
294
|
+
KernelBasis.SetExecutionTimeOut(10) # <= Key Point is here
|
|
295
|
+
KernelBasis.SetPyExecutionMode("OutOfProcessNoReplayFT") # Fail tolerant
|
|
296
|
+
salome.cm.SetBigObjOnDiskThreshold(1000)
|
|
297
|
+
with tempfile.TemporaryDirectory() as tmpdirname:
|
|
298
|
+
os.chdir( tmpdirname )
|
|
299
|
+
fnameFull = Path(tmpdirname) / fname # this file name will be used to voluntary prevent the first execution to return within 10 seconds. But for 2nd evaluation the execution will return within 10 secs.
|
|
300
|
+
hostname = "localhost"
|
|
301
|
+
cp = pylauncher.GetRequestForGiveContainer(hostname,"container_crash_test_5")
|
|
302
|
+
salome.cm.SetDirectoryForReplayFiles( str( tmpdirname ) )
|
|
303
|
+
with salome.ContainerLauncherCM(cp,True) as cont:
|
|
304
|
+
poa = salome.orb.resolve_initial_references("RootPOA")
|
|
305
|
+
obj = SALOME_PyNode.SenderByte_i(poa,pickle.dumps( (["i"],{"i": 3} ) )) ; id_o = poa.activate_object(obj) ; refPtr = poa.id_to_reference(id_o)
|
|
306
|
+
pyscript = cont.createPyScriptNode("testScript5",FunnyCase_test5.format( fnameFull.as_posix() ))
|
|
307
|
+
t = Thread(target = func,args=[fnameFull.as_posix()])
|
|
308
|
+
t.start()
|
|
309
|
+
pyscript.executeFirst(refPtr)
|
|
310
|
+
ret = pyscript.executeSecond(["j"])
|
|
311
|
+
t.join()
|
|
312
|
+
ret0 = pickle.loads( SALOME_PyNode.SeqByteReceiver(ret[0]).data() )
|
|
313
|
+
self.assertEqual(ret0,44)
|
|
314
|
+
a = salome.logm.NaiveFetch()
|
|
315
|
+
logInfoForCont = [elt for elt in a if "container_crash_test_5" in elt.ns_entry]
|
|
316
|
+
self.assertEqual( len(logInfoForCont), 1 )
|
|
317
|
+
logInfoForCont = logInfoForCont[0]
|
|
318
|
+
self.assertTrue( logInfoForCont[1][0].startExecTime is not None )
|
|
319
|
+
self.assertEqual( [elt[0] for elt in logInfoForCont[1][0].get().freestyle] , ['b4loadctx', 'afterloadctx', 'bforeexec', 'b4loadctx', 'afterloadctx', 'bforeexec', 'afterexec', 'strtdumpout', 'afterdump'] ) # <- aim of test is here. First 3 entries ('b4loadctx', 'afterloadctx', 'bforeexec') prove that first attempt fails to return within 10 sececonds as requested by KernelBasis.SetExecutionTimeOut(10)
|
|
320
|
+
pass
|
|
321
|
+
pass
|
|
322
|
+
KernelBasis.SetExecutionTimeOut(-1)
|
|
323
|
+
|
|
324
|
+
def test6(self):
|
|
325
|
+
"""
|
|
326
|
+
EDF30875 : test focusing on memory management in the context of OutOfProcessNoReplay using TCP/mem
|
|
327
|
+
"""
|
|
328
|
+
import time
|
|
329
|
+
import numpy as np
|
|
330
|
+
import gc
|
|
331
|
+
szOfData = 125000000# 125 ktuples ~ 1GB
|
|
332
|
+
KernelBasis.SetPyExecutionMode("OutOfProcessNoReplay") # No replay -> corba channel
|
|
333
|
+
salome.cm.SetBigObjOnDiskThreshold(1)
|
|
334
|
+
with tempfile.TemporaryDirectory() as tmpdirname:
|
|
335
|
+
os.chdir( tmpdirname )
|
|
336
|
+
hostname = "localhost"
|
|
337
|
+
cp = pylauncher.GetRequestForGiveContainer(hostname,"container_crash_test_6")
|
|
338
|
+
salome.cm.SetDirectoryForReplayFiles( str( tmpdirname ) )
|
|
339
|
+
KernelBasis.SetBigObjOnDiskDirectory( str( tmpdirname ) )
|
|
340
|
+
with salome.ContainerLauncherCM(cp,True) as cont:
|
|
341
|
+
poa = salome.orb.resolve_initial_references("RootPOA")
|
|
342
|
+
arr = np.zeros(shape=(szOfData,),dtype=np.float64) # 125 ktuples ~ 1GB
|
|
343
|
+
obj = SALOME_PyNode.SenderByte_i(poa,pickle.dumps( (["i"],{"i": arr} ) )) ; id_o = poa.activate_object(obj) ; refPtr = poa.id_to_reference(id_o)
|
|
344
|
+
del obj
|
|
345
|
+
gc.collect()
|
|
346
|
+
pyscript = cont.createPyScriptNode("testScript6",FunnyCase_test6)
|
|
347
|
+
pyscript.executeFirst(refPtr)
|
|
348
|
+
ret = pyscript.executeSecond(["j"])
|
|
349
|
+
pxy = pickle.loads( SALOME_PyNode.SeqByteReceiver(ret[0]).data() ) # receiving twice size of input -> 2 GB
|
|
350
|
+
ret0 = UnProxyObjectSimple( pxy ) # it's a proxy -> un proxyfy it
|
|
351
|
+
DecrRefInFile( pxy.getFileName() )
|
|
352
|
+
logging.debug(f"start to sleep...{os.getpid()}")
|
|
353
|
+
self.assertEqual( ret0.shape[0], 2*szOfData )
|
|
354
|
+
del ret0
|
|
355
|
+
gc.collect()
|
|
356
|
+
#time.sleep(10)
|
|
357
|
+
|
|
358
|
+
def test7(self):
|
|
359
|
+
"""
|
|
360
|
+
[EDF30875] : Garanty that DirectoryForReplay is clean after execution.
|
|
361
|
+
"""
|
|
362
|
+
import numpy as np
|
|
363
|
+
import gc
|
|
364
|
+
szOfData = 12000
|
|
365
|
+
KernelBasis.SetPyExecutionMode("OutOfProcessWithReplayFT")
|
|
366
|
+
salome.cm.SetBigObjOnDiskThreshold( 1 ) # enable proxy
|
|
367
|
+
with tempfile.TemporaryDirectory() as tmpdirname:
|
|
368
|
+
os.chdir( tmpdirname )
|
|
369
|
+
hostname = "localhost"
|
|
370
|
+
cp = pylauncher.GetRequestForGiveContainer(hostname,"container_crash_test_7")
|
|
371
|
+
salome.cm.SetDirectoryForReplayFiles( str( tmpdirname ) )
|
|
372
|
+
KernelBasis.SetBigObjOnDiskDirectory( str( tmpdirname ) )
|
|
373
|
+
with salome.ContainerLauncherCM(cp,True) as cont:
|
|
374
|
+
poa = salome.orb.resolve_initial_references("RootPOA")
|
|
375
|
+
arr = np.zeros(shape=(szOfData,),dtype=np.float64)
|
|
376
|
+
obj = SALOME_PyNode.SenderByte_i(poa,pickle.dumps( (["i"],{"i": arr} ) )) ; id_o = poa.activate_object(obj) ; refPtr = poa.id_to_reference(id_o)
|
|
377
|
+
gc.collect()
|
|
378
|
+
pyscript = cont.createPyScriptNode("testScript",FunnyCase_test7)
|
|
379
|
+
pyscript.executeFirst(refPtr)
|
|
380
|
+
ret = pyscript.executeSecond(["j"])
|
|
381
|
+
pxy = pickle.loads( SALOME_PyNode.SeqByteReceiver(ret[0]).data() ) # receiving twice size of input -> 2 GB
|
|
382
|
+
ret0 = UnProxyObjectSimple( pxy ) # it's a proxy -> un proxyfy it
|
|
383
|
+
DecrRefInFile( pxy.getFileName() )
|
|
384
|
+
self.assertEqual( len( os.listdir( str( tmpdirname ) ) ) , 0 ) # very important it must be clean
|
|
385
|
+
|
|
386
|
+
def test8(self):
|
|
387
|
+
"""
|
|
388
|
+
[EDF30875] : same than test7 but with OutOfProcessWithReplay.
|
|
389
|
+
"""
|
|
390
|
+
import numpy as np
|
|
391
|
+
import gc
|
|
392
|
+
szOfData = 12000
|
|
393
|
+
KernelBasis.SetPyExecutionMode("OutOfProcessWithReplay")
|
|
394
|
+
salome.cm.SetBigObjOnDiskThreshold( 1 ) # enable proxy
|
|
395
|
+
with tempfile.TemporaryDirectory() as tmpdirname:
|
|
396
|
+
os.chdir( tmpdirname )
|
|
397
|
+
hostname = "localhost"
|
|
398
|
+
cp = pylauncher.GetRequestForGiveContainer(hostname,"container_crash_test_8")
|
|
399
|
+
salome.cm.SetDirectoryForReplayFiles( str( tmpdirname ) )
|
|
400
|
+
KernelBasis.SetBigObjOnDiskDirectory( str( tmpdirname ) )
|
|
401
|
+
with salome.ContainerLauncherCM(cp,True) as cont:
|
|
402
|
+
poa = salome.orb.resolve_initial_references("RootPOA")
|
|
403
|
+
arr = np.zeros(shape=(szOfData,),dtype=np.float64)
|
|
404
|
+
obj = SALOME_PyNode.SenderByte_i(poa,pickle.dumps( (["i"],{"i": arr} ) )) ; id_o = poa.activate_object(obj) ; refPtr = poa.id_to_reference(id_o)
|
|
405
|
+
gc.collect()
|
|
406
|
+
pyscript = cont.createPyScriptNode("testScript",FunnyCase_test7)
|
|
407
|
+
pyscript.executeFirst(refPtr)
|
|
408
|
+
ret = pyscript.executeSecond(["j"])
|
|
409
|
+
pxy = pickle.loads( SALOME_PyNode.SeqByteReceiver(ret[0]).data() ) # receiving twice size of input -> 2 GB
|
|
410
|
+
ret0 = UnProxyObjectSimple( pxy ) # it's a proxy -> un proxyfy it
|
|
411
|
+
DecrRefInFile( pxy.getFileName() )
|
|
412
|
+
self.assertEqual( len( os.listdir( str( tmpdirname ) ) ) , 0 ) # very important it must be clean
|
|
413
|
+
|
|
414
|
+
|
|
415
|
+
if __name__ == '__main__':
|
|
416
|
+
from salome.kernel.salome_utils import positionVerbosityOfLoggerRegardingState,setVerboseLevel,setVerbose
|
|
417
|
+
salome.standalone()
|
|
418
|
+
salome.salome_init()
|
|
419
|
+
setVerbose(True)
|
|
420
|
+
setVerboseLevel(logging.DEBUG)
|
|
421
|
+
positionVerbosityOfLoggerRegardingState()
|
|
422
|
+
unittest.main()
|
|
423
|
+
|