Revision 8af9a0b9
Added by Pierre-Loïc Garoche over 5 years ago
regression_tests/lustre_files/success/machine_types/CMakeLists.txt | ||
---|---|---|
1 |
cmake_minimum_required(VERSION 2.8.4) |
|
2 |
|
|
3 |
|
|
4 |
|
|
5 |
set(ZUSTRE_OPTIONS_OPT "--timeout" "60" "--xml" ) |
|
6 |
set(LUSTRE_OPTIONS_OPT "" ) |
|
7 |
set(NODE_NAME "top") |
|
8 |
set(MAX_INPUT_VALUE 100) |
|
9 |
|
|
10 |
|
|
11 |
#proceed all subdirectories |
|
12 |
SUBDIRLIST(SUBDIRS ${CMAKE_CURRENT_SOURCE_DIR} "") |
|
13 |
FOREACH(subdir ${SUBDIRS}) |
|
14 |
LUSTREFILES(LFILES ${subdir} ) |
|
15 |
set(TESTS_PREFIX "MT_${subdir}") |
|
16 |
set(SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/${subdir}") |
|
17 |
set(DST_DIR "${CMAKE_CURRENT_BINARY_DIR}/${subdir}") |
|
18 |
FOREACH(lus_file ${LFILES}) |
|
19 |
get_filename_component(L ${lus_file} NAME_WE) |
|
20 |
Copy_or_generate_lusi_input_and_output_values_for_reference( |
|
21 |
LUS_FILE ${lus_file} |
|
22 |
NODE ${NODE_NAME} |
|
23 |
OPTS ${LUSTRE_OPTIONS_OPT} |
|
24 |
MAX ${MAX_INPUT_VALUE} #maximum value for input values. |
|
25 |
SRC_DIR ${SRC_DIR} |
|
26 |
DST_DIR ${DST_DIR} |
|
27 |
) |
|
28 |
if(EXISTS ${ZUSTRE_COMPILER}) |
|
29 |
Copy_or_generate_zustre_output_xml_for_reference( |
|
30 |
LUS_FILE ${lus_file} |
|
31 |
NODE ${NODE_NAME} |
|
32 |
OPTS ${ZUSTRE_OPTIONS_OPT} |
|
33 |
SRC_DIR ${SRC_DIR} |
|
34 |
DST_DIR ${DST_DIR} |
|
35 |
) |
|
36 |
|
|
37 |
Zustre_compile_and_compare_to_reference( |
|
38 |
LUS_FILE ${lus_file} |
|
39 |
NODE ${NODE_NAME} |
|
40 |
TESTS_PREFIX ${TESTS_PREFIX} |
|
41 |
OPTS ${ZUSTRE_OPTIONS_OPT} |
|
42 |
CALL_ID "1" |
|
43 |
SRC_DIR ${SRC_DIR} |
|
44 |
DST_DIR ${DST_DIR} |
|
45 |
) |
|
46 |
if(EXISTS ${CMAKE_BINARY_DIR}/modules/XPathParser_lusi.class |
|
47 |
AND ${ZUSTRE_ANSWER_${L}_${NODE_NAME}} STREQUAL "CEX" |
|
48 |
AND EXISTS ${CMAKE_CURRENT_BINARY_DIR}/${L}/${L}.lusi) |
|
49 |
Compare_Zustre_and_Lustrec_outputs( |
|
50 |
LUS_FILE ${lus_file} |
|
51 |
NODE ${NODE_NAME} |
|
52 |
TESTS_PREFIX ${TESTS_PREFIX} |
|
53 |
OPTS ${ZUSTRE_OPTIONS_OPT} |
|
54 |
CALL_ID "2" |
|
55 |
SRC_DIR ${SRC_DIR} |
|
56 |
DST_DIR ${DST_DIR} |
|
57 |
) |
|
58 |
endif() |
|
59 |
endif() |
|
60 |
|
|
61 |
Lustre_compile_and_compare_to_reference( |
|
62 |
LUS_FILE ${lus_file} |
|
63 |
NODE ${NODE_NAME} |
|
64 |
TESTS_PREFIX ${TESTS_PREFIX} |
|
65 |
OPTS ${LUSTRE_OPTIONS_OPT} |
|
66 |
CALL_ID "3" |
|
67 |
SRC_DIR ${SRC_DIR} |
|
68 |
DST_DIR ${DST_DIR} |
|
69 |
) |
|
70 |
|
|
71 |
Lustre_compile_options( |
|
72 |
LUS_FILE ${lus_file} |
|
73 |
NODE ${NODE_NAME} |
|
74 |
TESTS_PREFIX "${TESTS_PREFIX}" |
|
75 |
OPTS ${LUSTRE_OPTIONS_OPT} "-emf" |
|
76 |
CALL_ID "4" |
|
77 |
SRC_DIR ${SRC_DIR} |
|
78 |
DST_DIR ${DST_DIR} |
|
79 |
) |
|
80 |
|
|
81 |
LustreT_MCDC( |
|
82 |
LUS_FILE ${lus_file} |
|
83 |
NODE ${NODE_NAME} |
|
84 |
OPTS ${LUSTRE_OPTIONS_OPT} |
|
85 |
CALL_ID "5" |
|
86 |
SRC_DIR ${SRC_DIR} |
|
87 |
DST_DIR ${DST_DIR} |
|
88 |
) |
|
89 |
|
|
90 |
LustreT_Mutants( |
|
91 |
LUS_FILE ${lus_file} |
|
92 |
NODE ${NODE_NAME} |
|
93 |
OPTS ${LUSTRE_OPTIONS_OPT} |
|
94 |
CALL_ID "5" |
|
95 |
SRC_DIR ${SRC_DIR} |
|
96 |
DST_DIR ${DST_DIR} |
|
97 |
) |
|
98 |
|
|
99 |
|
|
100 |
ENDFOREACH() |
|
101 |
add_custom_target(${TESTS_PREFIX} COMMAND ${CMAKE_CTEST_COMMAND} -R ${TESTS_PREFIX}) |
|
102 |
ENDFOREACH() |
|
103 |
|
|
104 |
add_custom_target(machine_types COMMAND ${CMAKE_CTEST_COMMAND} -R machine_types) |
regression_tests/lustre_files/success/machine_types/kind_fmcad/two_counters.lus | ||
---|---|---|
1 |
-- a simple boolean ant int counter |
|
2 |
|
|
3 |
node greycounter (x:bool) returns (out:bool); |
|
4 |
var a,b:bool; |
|
5 |
let |
|
6 |
a = false -> not pre(b); |
|
7 |
b = false -> pre(a); |
|
8 |
out = a and b; |
|
9 |
tel |
|
10 |
|
|
11 |
node intloopcounter (x:bool) returns (out:bool); |
|
12 |
var time: int; |
|
13 |
let |
|
14 |
--! /machine_types/: (time, "uint8"); |
|
15 |
time = 0 -> if pre(time) = 3 then 0 |
|
16 |
else pre time + 1; |
|
17 |
out = (time = 2); |
|
18 |
tel |
|
19 |
|
|
20 |
|
|
21 |
--@ ensures OK; |
|
22 |
node top (x:bool) returns (OK:bool); |
|
23 |
var b,d:bool; |
|
24 |
let |
|
25 |
b = greycounter(x); |
|
26 |
d = intloopcounter(x); |
|
27 |
OK = b = d; |
|
28 |
--%PROPERTY OK; |
|
29 |
tel |
regression_tests/lustre_files/success/machine_types/kind_fmcad/two_counters_top__output_values | ||
---|---|---|
1 |
'OK': '1' |
|
2 |
'OK': '1' |
|
3 |
'OK': '1' |
|
4 |
'OK': '1' |
|
5 |
'OK': '1' |
|
6 |
'OK': '1' |
|
7 |
'OK': '1' |
|
8 |
'OK': '1' |
|
9 |
'OK': '1' |
|
10 |
'OK': '1' |
|
11 |
'OK': '1' |
|
12 |
'OK': '1' |
|
13 |
'OK': '1' |
|
14 |
'OK': '1' |
|
15 |
'OK': '1' |
|
16 |
'OK': '1' |
|
17 |
'OK': '1' |
|
18 |
'OK': '1' |
|
19 |
'OK': '1' |
|
20 |
'OK': '1' |
|
21 |
'OK': '1' |
|
22 |
'OK': '1' |
|
23 |
'OK': '1' |
|
24 |
'OK': '1' |
|
25 |
'OK': '1' |
|
26 |
'OK': '1' |
|
27 |
'OK': '1' |
|
28 |
'OK': '1' |
|
29 |
'OK': '1' |
|
30 |
'OK': '1' |
|
31 |
'OK': '1' |
|
32 |
'OK': '1' |
|
33 |
'OK': '1' |
|
34 |
'OK': '1' |
|
35 |
'OK': '1' |
|
36 |
'OK': '1' |
|
37 |
'OK': '1' |
|
38 |
'OK': '1' |
|
39 |
'OK': '1' |
|
40 |
'OK': '1' |
|
41 |
'OK': '1' |
|
42 |
'OK': '1' |
|
43 |
'OK': '1' |
|
44 |
'OK': '1' |
|
45 |
'OK': '1' |
|
46 |
'OK': '1' |
|
47 |
'OK': '1' |
|
48 |
'OK': '1' |
|
49 |
'OK': '1' |
|
50 |
'OK': '1' |
|
51 |
'OK': '1' |
|
52 |
'OK': '1' |
|
53 |
'OK': '1' |
|
54 |
'OK': '1' |
|
55 |
'OK': '1' |
|
56 |
'OK': '1' |
|
57 |
'OK': '1' |
|
58 |
'OK': '1' |
|
59 |
'OK': '1' |
|
60 |
'OK': '1' |
|
61 |
'OK': '1' |
|
62 |
'OK': '1' |
|
63 |
'OK': '1' |
|
64 |
'OK': '1' |
|
65 |
'OK': '1' |
|
66 |
'OK': '1' |
|
67 |
'OK': '1' |
|
68 |
'OK': '1' |
|
69 |
'OK': '1' |
|
70 |
'OK': '1' |
|
71 |
'OK': '1' |
|
72 |
'OK': '1' |
|
73 |
'OK': '1' |
|
74 |
'OK': '1' |
|
75 |
'OK': '1' |
|
76 |
'OK': '1' |
|
77 |
'OK': '1' |
|
78 |
'OK': '1' |
|
79 |
'OK': '1' |
|
80 |
'OK': '1' |
|
81 |
'OK': '1' |
|
82 |
'OK': '1' |
|
83 |
'OK': '1' |
|
84 |
'OK': '1' |
|
85 |
'OK': '1' |
|
86 |
'OK': '1' |
|
87 |
'OK': '1' |
|
88 |
'OK': '1' |
|
89 |
'OK': '1' |
|
90 |
'OK': '1' |
|
91 |
'OK': '1' |
|
92 |
'OK': '1' |
|
93 |
'OK': '1' |
|
94 |
'OK': '1' |
|
95 |
'OK': '1' |
|
96 |
'OK': '1' |
|
97 |
'OK': '1' |
|
98 |
'OK': '1' |
|
99 |
'OK': '1' |
|
100 |
'OK': '1' |
regression_tests/lustre_files/success/machine_types/kind_fmcad/two_counters_top_input_values | ||
---|---|---|
1 |
1 |
|
2 |
0 |
|
3 |
0 |
|
4 |
1 |
|
5 |
1 |
|
6 |
0 |
|
7 |
1 |
|
8 |
0 |
|
9 |
1 |
|
10 |
0 |
|
11 |
1 |
|
12 |
0 |
|
13 |
0 |
|
14 |
1 |
|
15 |
0 |
|
16 |
1 |
|
17 |
1 |
|
18 |
1 |
|
19 |
1 |
|
20 |
0 |
|
21 |
1 |
|
22 |
1 |
|
23 |
1 |
|
24 |
0 |
|
25 |
0 |
|
26 |
0 |
|
27 |
1 |
|
28 |
0 |
|
29 |
1 |
|
30 |
0 |
|
31 |
0 |
|
32 |
0 |
|
33 |
1 |
|
34 |
1 |
|
35 |
1 |
|
36 |
1 |
|
37 |
0 |
|
38 |
1 |
|
39 |
1 |
|
40 |
1 |
|
41 |
0 |
|
42 |
1 |
|
43 |
1 |
|
44 |
1 |
|
45 |
1 |
|
46 |
0 |
|
47 |
1 |
|
48 |
1 |
|
49 |
0 |
|
50 |
1 |
|
51 |
1 |
|
52 |
1 |
|
53 |
1 |
|
54 |
0 |
|
55 |
0 |
|
56 |
1 |
|
57 |
1 |
|
58 |
1 |
|
59 |
1 |
|
60 |
0 |
|
61 |
1 |
|
62 |
1 |
|
63 |
0 |
|
64 |
1 |
|
65 |
0 |
|
66 |
0 |
|
67 |
1 |
|
68 |
1 |
|
69 |
1 |
|
70 |
1 |
|
71 |
0 |
|
72 |
0 |
|
73 |
0 |
|
74 |
1 |
|
75 |
1 |
|
76 |
0 |
|
77 |
0 |
|
78 |
0 |
|
79 |
0 |
|
80 |
0 |
|
81 |
1 |
|
82 |
0 |
|
83 |
1 |
|
84 |
0 |
|
85 |
1 |
|
86 |
0 |
|
87 |
0 |
|
88 |
1 |
|
89 |
0 |
|
90 |
1 |
|
91 |
0 |
|
92 |
0 |
|
93 |
0 |
|
94 |
1 |
|
95 |
1 |
|
96 |
1 |
|
97 |
0 |
|
98 |
0 |
|
99 |
0 |
|
100 |
1 |
regression_tests/lustre_files/success/machine_types/simple/ex1.lus | ||
---|---|---|
1 |
node ex2(x: int) returns (y: int) |
|
2 |
let |
|
3 |
--! machine_types: (y, "uint8"); |
|
4 |
y = x; |
|
5 |
tel |
|
6 |
|
|
7 |
node ex1(x: int) returns (y: int); |
|
8 |
let |
|
9 |
--! machine_types: (y, "uint8"); |
|
10 |
y = 3 + ex2(x); |
|
11 |
tel |
|
12 |
|
|
13 |
node top (x: int) returns (y: int) |
|
14 |
var l1: int; |
|
15 |
let |
|
16 |
--! machine_types: (l1, "uint16"); |
|
17 |
--! machine_types: (l1, "int16"); |
|
18 |
l1 = x; |
|
19 |
y = l1; |
|
20 |
tel |
regression_tests/lustre_files/success/machine_types/simple/ex1_top__output_values | ||
---|---|---|
1 |
'y': '18' |
|
2 |
'y': '39' |
|
3 |
'y': '60' |
|
4 |
'y': '51' |
|
5 |
'y': '86' |
|
6 |
'y': '41' |
|
7 |
'y': '35' |
|
8 |
'y': '99' |
|
9 |
'y': '70' |
|
10 |
'y': '17' |
|
11 |
'y': '36' |
|
12 |
'y': '66' |
|
13 |
'y': '50' |
|
14 |
'y': '21' |
|
15 |
'y': '5' |
|
16 |
'y': '83' |
|
17 |
'y': '56' |
|
18 |
'y': '34' |
|
19 |
'y': '23' |
|
20 |
'y': '11' |
|
21 |
'y': '60' |
|
22 |
'y': '88' |
|
23 |
'y': '93' |
|
24 |
'y': '11' |
|
25 |
'y': '32' |
|
26 |
'y': '13' |
|
27 |
'y': '3' |
|
28 |
'y': '21' |
|
29 |
'y': '22' |
|
30 |
'y': '42' |
|
31 |
'y': '80' |
|
32 |
'y': '48' |
|
33 |
'y': '40' |
|
34 |
'y': '98' |
|
35 |
'y': '51' |
|
36 |
'y': '43' |
|
37 |
'y': '30' |
|
38 |
'y': '30' |
|
39 |
'y': '59' |
|
40 |
'y': '31' |
|
41 |
'y': '74' |
|
42 |
'y': '46' |
|
43 |
'y': '19' |
|
44 |
'y': '12' |
|
45 |
'y': '25' |
|
46 |
'y': '44' |
|
47 |
'y': '90' |
|
48 |
'y': '25' |
|
49 |
'y': '10' |
|
50 |
'y': '15' |
|
51 |
'y': '62' |
|
52 |
'y': '52' |
|
53 |
'y': '25' |
|
54 |
'y': '68' |
|
55 |
'y': '44' |
|
56 |
'y': '86' |
|
57 |
'y': '87' |
|
58 |
'y': '10' |
|
59 |
'y': '64' |
|
60 |
'y': '0' |
|
61 |
'y': '97' |
|
62 |
'y': '29' |
|
63 |
'y': '92' |
|
64 |
'y': '22' |
|
65 |
'y': '59' |
|
66 |
'y': '59' |
|
67 |
'y': '24' |
|
68 |
'y': '78' |
|
69 |
'y': '42' |
|
70 |
'y': '15' |
|
71 |
'y': '72' |
|
72 |
'y': '13' |
|
73 |
'y': '25' |
|
74 |
'y': '39' |
|
75 |
'y': '85' |
|
76 |
'y': '34' |
|
77 |
'y': '17' |
|
78 |
'y': '5' |
|
79 |
'y': '53' |
|
80 |
'y': '0' |
|
81 |
'y': '44' |
|
82 |
'y': '14' |
|
83 |
'y': '66' |
|
84 |
'y': '21' |
|
85 |
'y': '18' |
|
86 |
'y': '14' |
|
87 |
'y': '31' |
|
88 |
'y': '69' |
|
89 |
'y': '55' |
|
90 |
'y': '1' |
|
91 |
'y': '76' |
|
92 |
'y': '65' |
|
93 |
'y': '4' |
|
94 |
'y': '7' |
|
95 |
'y': '99' |
|
96 |
'y': '22' |
|
97 |
'y': '44' |
|
98 |
'y': '48' |
|
99 |
'y': '56' |
|
100 |
'y': '98' |
regression_tests/lustre_files/success/machine_types/simple/ex1_top_input_values | ||
---|---|---|
1 |
18 |
|
2 |
39 |
|
3 |
60 |
|
4 |
51 |
|
5 |
86 |
|
6 |
41 |
|
7 |
35 |
|
8 |
99 |
|
9 |
70 |
|
10 |
17 |
|
11 |
36 |
|
12 |
66 |
|
13 |
50 |
|
14 |
21 |
|
15 |
5 |
|
16 |
83 |
|
17 |
56 |
|
18 |
34 |
|
19 |
23 |
|
20 |
11 |
|
21 |
60 |
|
22 |
88 |
|
23 |
93 |
|
24 |
11 |
|
25 |
32 |
|
26 |
13 |
|
27 |
3 |
|
28 |
21 |
|
29 |
22 |
|
30 |
42 |
|
31 |
80 |
|
32 |
48 |
|
33 |
40 |
|
34 |
98 |
|
35 |
51 |
|
36 |
43 |
|
37 |
30 |
|
38 |
30 |
|
39 |
59 |
|
40 |
31 |
|
41 |
74 |
|
42 |
46 |
|
43 |
19 |
|
44 |
12 |
|
45 |
25 |
|
46 |
44 |
|
47 |
90 |
|
48 |
25 |
|
49 |
10 |
|
50 |
15 |
|
51 |
62 |
|
52 |
52 |
|
53 |
25 |
|
54 |
68 |
|
55 |
44 |
|
56 |
86 |
|
57 |
87 |
|
58 |
10 |
|
59 |
64 |
|
60 |
0 |
|
61 |
97 |
|
62 |
29 |
|
63 |
92 |
|
64 |
22 |
|
65 |
59 |
|
66 |
59 |
|
67 |
24 |
|
68 |
78 |
|
69 |
42 |
|
70 |
15 |
|
71 |
72 |
|
72 |
13 |
|
73 |
25 |
|
74 |
39 |
|
75 |
85 |
|
76 |
34 |
|
77 |
17 |
|
78 |
5 |
|
79 |
53 |
|
80 |
0 |
|
81 |
44 |
|
82 |
14 |
|
83 |
66 |
|
84 |
21 |
|
85 |
18 |
|
86 |
14 |
|
87 |
31 |
|
88 |
69 |
|
89 |
55 |
|
90 |
1 |
|
91 |
76 |
|
92 |
65 |
|
93 |
4 |
|
94 |
7 |
|
95 |
99 |
|
96 |
22 |
|
97 |
44 |
|
98 |
48 |
|
99 |
56 |
|
100 |
98 |
Also available in: Unified diff
New machine types related test cases