Skip to content

Commit

Permalink
Add flattening test case for external object located in extended class
Browse files Browse the repository at this point in the history
  • Loading branch information
gossen committed Jun 13, 2015
1 parent 90699f2 commit e6275f1
Show file tree
Hide file tree
Showing 3 changed files with 97 additions and 0 deletions.
4 changes: 4 additions & 0 deletions Makefile
Expand Up @@ -83,6 +83,7 @@ gitlibraries.log
# Sorted by time it takes to run the tests...
# DO NOT ADD ANYTHING HERE THAT YOU EXPECT WILL TAKE MORE THAN 5 SECONDS TO RUN IN THE NEXT 18 YEARS
FASTLOGS= \
modelicaexternal-objects.log \
simulationalgorithms-functions.log \
simulationarrays.log \
simulationasserts.log \
Expand Down Expand Up @@ -208,6 +209,9 @@ modelicaothers.log: omc-diff
modelicaexternal-functions.log: omc-diff
$(MAKE) -C flattening/modelica/external-functions -f Makefile test > $@
@echo $@ done
modelicaexternal-objects.log: omc-diff
$(MAKE) -C flattening/modelica/external-objects -f Makefile test > $@
@echo $@ done
modelicaequations.log: omc-diff
$(MAKE) -C flattening/modelica/equations -f Makefile test > $@
@echo $@ done
Expand Down
49 changes: 49 additions & 0 deletions flattening/modelica/external-objects/Makefile
@@ -0,0 +1,49 @@
# relative path to rtest
TEST = ../../../rtest -v

# Tests to run.
TESTFILES = testExternalObject.mo

# test that currently fail. Move up when fixed.
FAILINGTESTFILES= \

# Dependency files that are not .mo .mos or Makefile
# Add them here or they will be cleaned.
DEPENDENCIES = \
*.mo \
*.mos \
Makefile

CLEAN = `ls | grep -w -v -f deps.tmp`

.PHONY : test clean getdeps

test :
@echo
@echo Running tests...
@echo
@echo OPENMODELICAHOME=" $(OPENMODELICAHOME) "
@$(TEST) $(TESTFILES)

# Cleans all files that are not listed as dependencies
clean :
@echo $(DEPENDENCIES) | sed 's/ /\\|/g' > deps.tmp
@rm -f $(CLEAN)

# Run this if you want to list out the files (dependencies).
# do it after cleaning and updating the folder
# then you can get a list of file names (which must be dependencies
# since you got them from repository + your own new files)
# then add them to the DEPENDENCIES. You can find the
# list in deps.txt
getdeps:
@echo $(DEPENDENCIES) | sed 's/ /\\|/g' > deps.tmp
@echo $(CLEAN) | sed -r 's/deps.txt|deps.tmp//g' | sed 's/ / \\\n/g' > deps.txt
@echo Dependency list saved in deps.txt.
@echo Copy the list from deps.txt and add it to the Makefile @DEPENDENCIES

failingtest :
@echo
@echo Running failing tests...
@echo
@$(TEST) $(FAILINGTESTFILES)
44 changes: 44 additions & 0 deletions flattening/modelica/external-objects/testExternalObject.mo
@@ -0,0 +1,44 @@
// name: testExternalObject
// keywords: external object
// cflags: +i=ExtObjectTest.Ex
// status: correct
//
// description: External object in extended class

package ExtObjectTest
model Ex
package ExtPackage1 = ExtPackage;
ExtPackage1.ExtObj mapping = ExtPackage1.ExtObj();
end Ex;

package ExtPackage
class ExtObj
extends ExternalObject;
function constructor
output ExtObj mapping;
external "C" mapping = initMapping();
end constructor;
function destructor
input ExtObj mapping;
external "C" destroyMapping(mapping);
end destructor;
end ExtObj;
end ExtPackage;
end ExtObjectTest;

// Result:
// function ExtObjectTest.Ex.ExtPackage1.ExtObj.constructor
// output ExtObjectTest.Ex.ExtPackage1.ExtObj mapping;
//
// external "C" mapping = initMapping();
// end ExtObjectTest.Ex.ExtPackage1.ExtObj.constructor;
//
// function ExtObjectTest.Ex.ExtPackage1.ExtObj.destructor
// input ExtObjectTest.Ex.ExtPackage1.ExtObj mapping;
//
// external "C" destroyMapping(mapping);
// end ExtObjectTest.Ex.ExtPackage1.ExtObj.destructor;
//
// class ExtObjectTest.Ex
// ExtObjectTest.Ex.ExtPackage1.ExtObj mapping = ExtObjectTest.Ex.ExtPackage1.ExtObj.constructor();
// end ExtObjectTest.Ex;

0 comments on commit e6275f1

Please sign in to comment.