From 585372424a495e905c0e4ebdc0216da42cc644b8 Mon Sep 17 00:00:00 2001 From: Lennart Ochel Date: Tue, 10 Jan 2017 08:42:01 +0100 Subject: [PATCH] Add test for ticket:3446 --- .../modelica/external_functions/Makefile | 1 + .../external_functions/extObj_ticket3446.mo | 82 +++++++++++++++++++ .../external_functions/extObj_ticket3446.mos | 32 ++++++++ 3 files changed, 115 insertions(+) create mode 100644 simulation/modelica/external_functions/extObj_ticket3446.mo create mode 100644 simulation/modelica/external_functions/extObj_ticket3446.mos diff --git a/simulation/modelica/external_functions/Makefile b/simulation/modelica/external_functions/Makefile index efd98bf31..e12352946 100644 --- a/simulation/modelica/external_functions/Makefile +++ b/simulation/modelica/external_functions/Makefile @@ -2,6 +2,7 @@ TEST = ../../../rtest -v TESTFILES = \ MDD_test.mos \ +extObj_ticket3446.mos \ ExtObj.mos \ ExtObjStringParam.mos \ ExternalLibraries.mos \ diff --git a/simulation/modelica/external_functions/extObj_ticket3446.mo b/simulation/modelica/external_functions/extObj_ticket3446.mo new file mode 100644 index 000000000..5a4cf74ba --- /dev/null +++ b/simulation/modelica/external_functions/extObj_ticket3446.mo @@ -0,0 +1,82 @@ +package TestMyExternalObj + class MyExternalObj + extends ExternalObject; + function constructor + input Integer size=3; + output MyExternalObj outMyExternalObj; + + external "C" outMyExternalObj=initMyExternalObj(size); + annotation(Include=" + #include + #include /* for Linux malloc and exit */ + #include + + void* initMyExternalObj(int size) + { + int i=0; + + double *extObj = (double*)malloc(size*sizeof(double)); + if(extObj == NULL) + printf(\"Not enough memory\"); + + for(i=0; i