From: cesarconopoima Date: Tue, 30 Jan 2024 14:34:21 +0000 (+0000) Subject: [bos #40598] solution to some test failing in ubuntu22. X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=0d04c7007d9d451adb8b007c0d6eb4e79e6e6f5d;p=modules%2Fyacs.git [bos #40598] solution to some test failing in ubuntu22. Add PY_SSIZE_T_CLEAN definition to header files. Small modif to fix StdAloneYacsLoaderTest1.py --- diff --git a/src/runtime/PyStdout.cxx b/src/runtime/PyStdout.cxx index 294128123..480a61ca3 100644 --- a/src/runtime/PyStdout.cxx +++ b/src/runtime/PyStdout.cxx @@ -52,7 +52,7 @@ static PyObject * PyStdOut_write(PyStdOut *self, PyObject *args) { char *c; - int l; + Py_ssize_t l; if (!PyArg_ParseTuple(args, "s#:write",&c, &l)) return NULL; diff --git a/src/runtime/PyStdout.hxx b/src/runtime/PyStdout.hxx index 7438f3f8d..8b016b3df 100644 --- a/src/runtime/PyStdout.hxx +++ b/src/runtime/PyStdout.hxx @@ -22,6 +22,8 @@ #include "YACSRuntimeSALOMEExport.hxx" +#define PY_SSIZE_T_CLEAN + #include #include diff --git a/src/runtime/TypeConversions.cxx b/src/runtime/TypeConversions.cxx index 972c540f6..d3d80a467 100644 --- a/src/runtime/TypeConversions.cxx +++ b/src/runtime/TypeConversions.cxx @@ -998,7 +998,8 @@ namespace YACS //It's a python pickled object, unpickled it PyObject* mod=PyImport_ImportModule("pickle"); GURU_YACSTRACE("convertFromYacsObjref : unpickling..."); - PyObject *ob=PyObject_CallMethod(mod,(char *)"loads",(char *)"y#",o.c_str(),o.length()); + Py_ssize_t l = o.length(); + PyObject *ob=PyObject_CallMethod(mod,(char *)"loads",(char *)"y#",o.c_str(),l); GURU_YACSTRACE("convertFromYacsObjref : unpickling done..."); DEBTRACE(PyObject_Repr(ob)); Py_DECREF(mod); @@ -1026,7 +1027,8 @@ namespace YACS PyErr_Print(); throw YACS::ENGINE::ConversionException("Problem in convertToYacsObjreflength()); + Py_ssize_t l = buffer->length(); + PyObject *ob=PyObject_CallMethod(mod,(char *)"loads",(char *)"y#",s,l); PyObject *pickled=PyObject_CallMethod(mod,(char *)"dumps",(char *)"Oi",ob,protocol); DEBTRACE(PyObject_Repr(pickled)); std::string mystr=PyBytes_AsString(pickled); diff --git a/src/runtime/TypeConversions.hxx b/src/runtime/TypeConversions.hxx index fac324b97..3a6629d70 100644 --- a/src/runtime/TypeConversions.hxx +++ b/src/runtime/TypeConversions.hxx @@ -22,6 +22,8 @@ #include "YACSRuntimeSALOMEExport.hxx" +#define PY_SSIZE_T_CLEAN + #include #include #include diff --git a/src/salomegui/Yacsgui.cxx b/src/salomegui/Yacsgui.cxx index cae542ba0..a0fe4c9ba 100644 --- a/src/salomegui/Yacsgui.cxx +++ b/src/salomegui/Yacsgui.cxx @@ -175,7 +175,8 @@ bool Yacsgui::activateModule( SUIT_Study* theStudy ) PyErr_Print(); else { - PyObject* result=PyObject_CallMethod( pluginsmanager, (char*)"initialize", (char*)"isss",1,"yacs","YACS",tr("YACS_PLUGINS").toStdString().c_str()); + Py_ssize_t l = 12; // size of YACS_PLUGINS string + PyObject* result=PyObject_CallMethod( pluginsmanager, (char*)"initialize", (char*)"isss",1,"yacs","YACS",tr("YACS_PLUGINS").toStdString().c_str(),l); if(result==NULL) PyErr_Print(); Py_XDECREF(result); diff --git a/src/salomegui/Yacsgui.hxx b/src/salomegui/Yacsgui.hxx index 4bbd0fb14..db01f3c35 100644 --- a/src/salomegui/Yacsgui.hxx +++ b/src/salomegui/Yacsgui.hxx @@ -20,6 +20,8 @@ #ifndef _YACSGUI_HXX_ #define _YACSGUI_HXX_ +#define PY_SSIZE_T_CLEAN + #include "SalomeWrap_Module.hxx" #include "Yacsgui_Resource.hxx" #include diff --git a/src/yacsloader_swig/Test/StdAloneYacsLoaderTest1.py b/src/yacsloader_swig/Test/StdAloneYacsLoaderTest1.py index 16dbb9ef8..5ca5f4d82 100644 --- a/src/yacsloader_swig/Test/StdAloneYacsLoaderTest1.py +++ b/src/yacsloader_swig/Test/StdAloneYacsLoaderTest1.py @@ -131,7 +131,8 @@ class StdAloneYacsLoaderTest1(unittest.TestCase): ex.RunW(p,0) self.assertEqual(p.getState(),pilot.DONE) # - self.assertEqual(p.getChildByName("node2").getOutputPort("o1").get(),['aaa','bcbcbc']) + data = p.getChildByName("node2").getOutputPort("o1").get() + self.assertEqual(data,['aaa','bcbcbc']) pass def test3(self):