Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
monticore
EmbeddedMontiArc
generators
EMAM2Cpp
Commits
02c96ccf
Commit
02c96ccf
authored
Oct 18, 2017
by
Sascha Niklas Schneiders
Browse files
updated tests
parent
61e15399
Changes
5
Hide whitespace changes
Inline
Side-by-side
src/main/java/de/monticore/lang/monticar/generator/cpp/TestConverter.java
View file @
02c96ccf
...
@@ -6,6 +6,7 @@ import de.monticore.lang.monticar.generator.FileContent;
...
@@ -6,6 +6,7 @@ import de.monticore.lang.monticar.generator.FileContent;
import
de.monticore.lang.monticar.generator.cpp.converter.ComponentConverter
;
import
de.monticore.lang.monticar.generator.cpp.converter.ComponentConverter
;
import
de.monticore.lang.monticar.streamunits._ast.ASTComponentStreamUnits
;
import
de.monticore.lang.monticar.streamunits._ast.ASTComponentStreamUnits
;
import
de.monticore.lang.monticar.streamunits._ast.ASTNamedStreamUnits
;
import
de.monticore.lang.monticar.streamunits._ast.ASTNamedStreamUnits
;
import
de.monticore.lang.monticar.streamunits._ast.ASTPrecisionNumber
;
import
de.monticore.lang.monticar.streamunits._symboltable.ComponentStreamUnitsSymbol
;
import
de.monticore.lang.monticar.streamunits._symboltable.ComponentStreamUnitsSymbol
;
import
de.monticore.lang.monticar.streamunits._symboltable.NamedStreamUnitsSymbol
;
import
de.monticore.lang.monticar.streamunits._symboltable.NamedStreamUnitsSymbol
;
...
@@ -17,6 +18,48 @@ public class TestConverter {
...
@@ -17,6 +18,48 @@ public class TestConverter {
public
static
FileContent
generateMainTestFile
(
ComponentStreamUnitsSymbol
symbol
,
ExpandedComponentInstanceSymbol
instanceSymbol
)
{
public
static
FileContent
generateMainTestFile
(
ComponentStreamUnitsSymbol
symbol
,
ExpandedComponentInstanceSymbol
instanceSymbol
)
{
FileContent
fileContent
=
new
FileContent
();
FileContent
fileContent
=
new
FileContent
();
fileContent
.
setFileName
(
"main_"
+
GeneralHelperMethods
.
getTargetLanguageComponentName
(
symbol
.
getFullName
())
+
".cpp"
);
fileContent
.
setFileName
(
"main_"
+
GeneralHelperMethods
.
getTargetLanguageComponentName
(
symbol
.
getFullName
())
+
".cpp"
);
String
fileContentString
=
""
;
fileContentString
+=
getDefaultContent
(
symbol
);
ASTComponentStreamUnits
ast
=
(
ASTComponentStreamUnits
)
symbol
.
getAstNode
().
get
();
int
executionCounter
=
0
;
int
executionAmount
=
ast
.
getNamedStreamUnitss
().
get
(
0
).
getStream
().
getPrecisionNumbers
().
size
();
while
(
executionCounter
<
executionAmount
)
{
for
(
ASTNamedStreamUnits
astNamedStreamUnit
:
ast
.
getNamedStreamUnitss
())
{
fileContentString
+=
getFileContentStringFor
(
instanceSymbol
,
astNamedStreamUnit
,
executionCounter
);
}
fileContentString
+=
"testInstance.execute();\n"
;
for
(
ASTNamedStreamUnits
astNamedStreamUnit
:
ast
.
getNamedStreamUnitss
())
{
String
portName
=
astNamedStreamUnit
.
getName
();
if
(!
instanceSymbol
.
getPort
(
portName
).
get
().
isIncoming
())
{
if
(
astNamedStreamUnit
.
getStream
().
getPrecisionNumbers
().
size
()
>
0
)
{
ASTPrecisionNumber
precisionNumber
=
astNamedStreamUnit
.
getStream
().
getPrecisionNumbers
().
get
(
executionCounter
);
if
(
precisionNumber
.
getPrecision
().
isPresent
())
{
fileContentString
+=
"if(testInstance."
+
portName
+
">"
+
"("
+
precisionNumber
.
getUnitNumber
().
getNumber
().
get
()+
"-"
+
precisionNumber
.
getPrecision
().
get
().
getUnitNumber
().
getNumber
().
get
()
+
")"
;
fileContentString
+=
"&& testInstance."
+
portName
+
"<"
+
"("
+
precisionNumber
.
getUnitNumber
().
getNumber
().
get
()+
"+"
+
precisionNumber
.
getPrecision
().
get
().
getUnitNumber
().
getNumber
().
get
()
+
")"
;
fileContentString
+=
"){"
;
fileContentString
+=
"printf(\"Mismatch at executionStep "
+
executionCounter
+
"\");\n"
;
fileContentString
+=
"octave_quit();\n"
;
fileContentString
+=
"}\n"
;
}
else
{
fileContentString
+=
"if(testInstance."
+
portName
+
"!="
+
precisionNumber
.
getUnitNumber
().
getNumber
().
get
()
+
"){"
;
fileContentString
+=
"printf(\"Mismatch at executionStep "
+
executionCounter
+
"\");\n"
;
fileContentString
+=
"octave_quit();\n"
;
fileContentString
+=
"}\n"
;
}
}
}
}
++
executionCounter
;
}
fileContentString
+=
"octave_quit();\n"
;
fileContentString
+=
"printf(\"Execution ended successfully!\\n\");\n"
;
fileContentString
+=
"}\n"
;
fileContent
.
setFileContent
(
fileContentString
);
return
fileContent
;
}
public
static
String
getDefaultContent
(
ComponentStreamUnitsSymbol
symbol
)
{
String
fileContentString
=
""
;
String
fileContentString
=
""
;
fileContentString
+=
"#ifndef M_PI\n"
+
fileContentString
+=
"#ifndef M_PI\n"
+
"#define M_PI 3.14159265358979323846\n"
+
"#define M_PI 3.14159265358979323846\n"
+
...
@@ -32,34 +75,18 @@ public class TestConverter {
...
@@ -32,34 +75,18 @@ public class TestConverter {
fileContentString
+=
GeneralHelperMethods
.
getTargetLanguageComponentName
(
symbol
.
getPackageName
()
+
"."
+
Character
.
toLowerCase
(
ast
.
getComponentName
().
charAt
(
0
))
+
ast
.
getComponentName
().
substring
(
1
));
fileContentString
+=
GeneralHelperMethods
.
getTargetLanguageComponentName
(
symbol
.
getPackageName
()
+
"."
+
Character
.
toLowerCase
(
ast
.
getComponentName
().
charAt
(
0
))
+
ast
.
getComponentName
().
substring
(
1
));
fileContentString
+=
" testInstance;\n"
;
fileContentString
+=
" testInstance;\n"
;
fileContentString
+=
"testInstance.init();\n"
;
fileContentString
+=
"testInstance.init();\n"
;
return
fileContentString
;
}
int
executionCounter
=
0
;
public
static
String
getFileContentStringFor
(
ExpandedComponentInstanceSymbol
instanceSymbol
,
ASTNamedStreamUnits
astNamedStreamUnit
,
int
executionCounter
)
{
for
(
ASTNamedStreamUnits
astNamedStreamUnit
:
ast
.
getNamedStreamUnitss
())
{
String
fileContentString
=
""
;
String
portName
=
astNamedStreamUnit
.
getName
();
String
portName
=
astNamedStreamUnit
.
getName
();
if
(
instanceSymbol
.
getPort
(
portName
).
get
().
isIncoming
())
{
if
(
instanceSymbol
.
getPort
(
portName
).
get
().
isIncoming
())
{
if
(
astNamedStreamUnit
.
getStream
().
getPrecisionNumbers
().
size
()
>
0
)
{
if
(
astNamedStreamUnit
.
getStream
().
getPrecisionNumbers
().
size
()
>
0
)
{
fileContentString
+=
"testInstance."
+
portName
+
"="
+
astNamedStreamUnit
.
getStream
().
getPrecisionNumbers
().
get
(
executionCounter
).
getUnitNumber
().
getNumber
().
get
()
+
";"
;
fileContentString
+=
"testInstance."
+
portName
+
"="
+
astNamedStreamUnit
.
getStream
().
getPrecisionNumbers
().
get
(
executionCounter
).
getUnitNumber
().
getNumber
().
get
()
+
";"
;
}
}
}
fileContentString
+=
"testInstance.execute();\n"
;
for
(
ASTNamedStreamUnits
astNamedStreamUnit
:
ast
.
getNamedStreamUnitss
())
{
String
portName
=
astNamedStreamUnit
.
getName
();
if
(!
instanceSymbol
.
getPort
(
portName
).
get
().
isIncoming
())
{
if
(
astNamedStreamUnit
.
getStream
().
getPrecisionNumbers
().
size
()
>
0
)
{
fileContentString
+=
"if(testInstance."
+
portName
+
"!="
+
astNamedStreamUnit
.
getStream
().
getPrecisionNumbers
().
get
(
executionCounter
).
getUnitNumber
().
getNumber
().
get
()
+
"){"
;
fileContentString
+=
"printf(\"Mismatch at executionStep "
+
executionCounter
+
"\");\n"
;
fileContentString
+=
"octave_quit();\n"
;
fileContentString
+=
"}\n"
;
}
}
}
}
}
return
fileContentString
;
fileContentString
+=
"octave_quit();\n"
;
fileContentString
+=
"printf(\"Execution ended successfully!\\n\");\n"
;
fileContentString
+=
"}\n"
;
fileContent
.
setFileContent
(
fileContentString
);
return
fileContent
;
}
}
}
}
src/test/resources/results/testMath/l0/main_test_math_SumCommandTestStream.cpp
View file @
02c96ccf
...
@@ -8,8 +8,17 @@ int main(int argc, char** argv)
...
@@ -8,8 +8,17 @@ int main(int argc, char** argv)
Helper
::
init
();
Helper
::
init
();
test_math_sumCommandTest
testInstance
;
test_math_sumCommandTest
testInstance
;
testInstance
.
init
();
testInstance
.
init
();
testInstance
.
execute
();
testInstance
.
in1
=
0
/
1
;
testInstance
.
execute
();
if
(
testInstance
.
out1
!=
6
/
1
){
printf
(
"Mismatch at executionStep 0"
);
if
(
testInstance
.
out1
>
(
6
/
1
-
1
/
1
)
&&
testInstance
.
out1
<
(
6
/
1
+
1
/
1
)){
printf
(
"Mismatch at executionStep 0"
);
octave_quit
();
}
testInstance
.
in1
=
1
/
1
;
testInstance
.
execute
();
if
(
testInstance
.
out1
!=
7
/
1
){
printf
(
"Mismatch at executionStep 1"
);
octave_quit
();
}
testInstance
.
in1
=
2
/
1
;
testInstance
.
execute
();
if
(
testInstance
.
out1
!=
8
/
1
){
printf
(
"Mismatch at executionStep 2"
);
octave_quit
();
}
}
octave_quit
();
octave_quit
();
printf
(
"Execution ended successfully!
\n
"
);
printf
(
"Execution ended successfully!
\n
"
);
...
...
src/test/resources/results/testMath/l0/test_math_sumCommandTest.h
View file @
02c96ccf
...
@@ -8,6 +8,7 @@
...
@@ -8,6 +8,7 @@
#include "octave/builtin-defun-decls.h"
#include "octave/builtin-defun-decls.h"
class
test_math_sumCommandTest
{
class
test_math_sumCommandTest
{
public:
public:
double
in1
;
double
out1
;
double
out1
;
RowVector
CONSTANTCONSTANTVECTOR0
;
RowVector
CONSTANTCONSTANTVECTOR0
;
void
init
()
void
init
()
...
@@ -21,7 +22,7 @@ void execute()
...
@@ -21,7 +22,7 @@ void execute()
{
{
RowVector
mat
=
CONSTANTCONSTANTVECTOR0
;
RowVector
mat
=
CONSTANTCONSTANTVECTOR0
;
double
a
=
(
Helper
::
getDoubleFromOctaveListFirstResult
(
Fsum
(
Helper
::
convertToOctaveValueList
(
mat
),
1
)));
double
a
=
(
Helper
::
getDoubleFromOctaveListFirstResult
(
Fsum
(
Helper
::
convertToOctaveValueList
(
mat
),
1
)));
out1
=
a
;
out1
=
a
+
in1
;
}
}
};
};
...
...
src/test/resources/test/math/SumCommandTest.emam
View file @
02c96ccf
package
test
.
math
;
package
test
.
math
;
component
SumCommandTest
{
component
SumCommandTest
{
ports
out
Q
(
0
:
100
)
out1
;
ports
in
Q
(
0
:
10
)
in1
,
out
Q
(
0
:
100
)
out1
;
implementation
Math
{
implementation
Math
{
Q
^{
1
,
3
}
mat
=
[
1
2
3
];
Q
^{
1
,
3
}
mat
=
[
1
2
3
];
Q
a
=
sum
(
mat
);
Q
a
=
sum
(
mat
);
out1
=
a
;
out1
=
a
+
in1
;
}
}
}
}
\ No newline at end of file
src/test/resources/test/math/SumCommandTestStream.stream
View file @
02c96ccf
package
test
.
math
;
package
test
.
math
;
stream
SumCommandTestStream
for
SumCommandTest
{
stream
SumCommandTestStream
for
SumCommandTest
{
out1
:
6
tick
6
tick
6
;
in1
:
0
tick
1
tick
2
;
out1
:
6
+/-
1
tick
7
tick
8
;
}
}
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment