-// Copyright (C) 2006-2016 CEA/DEN, EDF R&D
+// Copyright (C) 2006-2023 CEA, EDF
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
YACSLoader loader;
Executor executor;
-
try
{
p=loader.load(schema);
+
+ std::cerr << __FILE__ << std::endl;
DEBTRACE("Proc *p = " << p);
std::ofstream f("toto");
p->writeDot(f);
f.close();
DEBTRACE("+++++++++++++++++++ BEGIN execution " << schema);
+ std::cerr << __FILE__ << std::endl;
executor.RunW(p,0);
+ std::cerr << __FILE__ << std::endl;
+
DEBTRACE("+++++++++++++++++++ END execution " << schema);
std::ofstream g("titi");
p->writeDot(g);
+ p->shutdown(10);
g.close();
DEBTRACE("+++++++++++++++++++ END test " << schema);
return 0;
catch (YACS::Exception& e)
{
DEBTRACE("YACS exception caught: ");
+ std::cerr << __FILE__ << std::endl;
DEBTRACE(e.what());
+ std::cerr << __FILE__ << std::endl;
+
DEBTRACE("+++++++++++++++++++ END test in error " << schema);
return 1;
}
catch (const std::ios_base::failure&)
{
+ std::cerr << __FILE__ << std::endl;
+
DEBTRACE("io failure");
+ std::cerr << __FILE__ << std::endl;
+
DEBTRACE("+++++++++++++++++++ END test in error " << schema);
return 1;
}
const char *p = tc->name();
if ( *p != '\0' )
{
+ std::cerr << __FILE__ << std::endl;
+
DEBTRACE(p);
}
else
{
+ std::cerr << __FILE__ << std::endl;
DEBTRACE(tc->id());
}
DEBTRACE("+++++++++++++++++++ END test in error " << schema);
CPPUNIT_ASSERT_EQUAL(string("Hello Hello coucou!!"), string(text) );
}
}
+ p->shutdown(10);
delete p;
}
#endif
CPPUNIT_ASSERT_EQUAL( string("Hello Hello coucou!!"), string(text));
}
}
+ p->shutdown(10);
delete p;
}
#endif
if (p)
{
PyObject *data = ((OutputPyPort*)p->nodeMap["node2"]->getOutputPort("p1"))->get();
- char *text = PyString_AsString(data);
+ const char *text = PyUnicode_AsUTF8(data);
CPPUNIT_ASSERT_EQUAL(string("coucoucoucoucoucoucoucou"), string(text));
delete p;
}
if (p)
{
PyObject *data = ((OutputPyPort*)p->nodeMap["node2"]->getOutputPort("p1"))->get();
- char *text = PyString_AsString(data);;
+ const char *text = PyUnicode_AsUTF8(data);
CPPUNIT_ASSERT_EQUAL(string("coucoucoucoucoucoucoucou"), string(text) );
delete p;
}
ret = driverTest(p, "samples/refcnt2.xml");
CPPUNIT_ASSERT(ret == 0);
data = ((OutputPyPort*)p->nodeMap["b1.b.node1"]->getOutputPort("p1"))->get();
- CPPUNIT_ASSERT(data->ob_refcnt==19);
+ CPPUNIT_ASSERT_EQUAL(data->ob_refcnt,(long int)13);
}
void YacsLoaderTest::foreachs()
CPPUNIT_ASSERT_MESSAGE("Schema: foreach2.xml", p->getEffectiveState() == YACS::DONE );
delete p;
ret = driverTest(p, "samples/foreach3.xml");
+ p->shutdown(10);
CPPUNIT_ASSERT_MESSAGE("Schema: foreach3.xml", ret == 1);
delete p;
ret = driverTest(p, "samples/foreach4.xml");
ret = driverTest(p, "samples/foreach8.xml");
CPPUNIT_ASSERT_MESSAGE("Schema: foreach8.xml", ret == 0);
CPPUNIT_ASSERT_MESSAGE("Schema: foreach8.xml", p->getEffectiveState() == YACS::DONE );
+ p->shutdown(10);
delete p;
ret = driverTest(p, "samples/foreach_init2fin.xml");
CPPUNIT_ASSERT_MESSAGE("Schema: foreach_init2fin.xml", ret == 0);
CPPUNIT_ASSERT(ret == 0);
CPPUNIT_ASSERT(p->getEffectiveState() == YACS::DONE );
delete p;
+
+ ret = driverTest(p, "samples/double_optimizer_py.xml");
+ CPPUNIT_ASSERT(ret == 0);
+ CPPUNIT_ASSERT(p->getEffectiveState() == YACS::DONE );
+ delete p;
+
+ ret = driverTest(p, "samples/optimizer_pyobj.xml");
+ CPPUNIT_ASSERT(ret == 0);
+ CPPUNIT_ASSERT(p->getEffectiveState() == YACS::DONE );
+ delete p;
+
}
void YacsLoaderTest::pyremotes()
CPPUNIT_ASSERT(ret == 0);
CPPUNIT_ASSERT(p->getEffectiveState() == YACS::DONE );
}
+
+void YacsLoaderTest::nonepyobj()
+{
+ Proc *p = 0;
+ int ret;
+ ret = driverTest(p, "samples/nonepyobj.xml");
+ CPPUNIT_ASSERT(ret == 0);
+ CPPUNIT_ASSERT(p->getEffectiveState() == YACS::DONE );
+ CPPUNIT_ASSERT_EQUAL(p->getOutputPort("n2.r")->getAsString(), std::string("True"));
+ delete p;
+}