9
9
if (NOT DEFINED TEST_LEVEL)
10
10
set (TEST_LEVEL "$ENV{TEST_LEVEL} " )
11
11
endif ()
12
-
13
12
if (NOT TEST_LEVEL OR TEST_LEVEL GREATER 3 OR TEST_LEVEL LESS 1)
14
13
set (TEST_LEVEL 3)
15
14
endif ()
16
-
17
15
message ("TEST_LEVEL=${TEST_LEVEL} " )
18
16
17
+ if (NOT DEFINED RANDOMIZE_COSTS)
18
+ set (RANDOMIZE_COSTS "$ENV{RANDOMIZE_COSTS} " )
19
+ endif ()
20
+ if (NOT RANDOMIZE_COSTS)
21
+ set (RANDOMIZE_COSTS "" )
22
+ else ()
23
+ set (RANDOMIZE_COSTS --randomizeCosts)
24
+ endif ()
25
+ message ("RANDOMIZE_COSTS=\" ${RANDOMIZE_COSTS} \" " )
26
+
19
27
set (RISCV_ENV "$ENV{RISCV} " )
20
28
if (RISCV_ENV)
21
29
message (STATUS "RISCV environment set to ${RISCV_ENV} " )
@@ -65,8 +73,8 @@ set (passRegex "Simulation is complete")
65
73
#------- TESTS ---------------
66
74
message (STATUS "CTest Setup" )
67
75
68
- # Macro to build and configure tests in rev based on the labels the test was specified with
69
- macro (add_rev_test test_name test_dir timeout labels )
76
+ # Function to build and configure tests in rev based on the labels the test was specified with
77
+ function (add_rev_test test_name test_dir timeout labels )
70
78
string (TOLOWER ${test_dir} test_dir_lower)
71
79
string (TOLOWER ${test_name} test_name_lower)
72
80
@@ -135,13 +143,22 @@ macro(add_rev_test test_name test_dir timeout labels)
135
143
# set(startSymbol "\"[0:_start]\"")
136
144
endif ()
137
145
146
+ string (FIND "${labels} " "cost1" cost1_index)
147
+ if (NOT ${cost1_index} EQUAL -1)
148
+ set (RANDOMIZE_COSTS "" )
149
+ endif ()
150
+ # increase timeout if costs randomized
151
+ if (NOT RANDOMIZE_COSTS STREQUAL "" )
152
+ math (EXPR timeout "${timeout} * 3 /2" )
153
+ endif ()
154
+
138
155
if (NOT optional_script)
139
156
foreach (numHarts IN LISTS numHartsList)
140
157
foreach (numCores IN LISTS numCoresList)
141
158
142
159
# Define revmem target with the new naming convention
143
160
add_custom_target (run_${test_name_lower} _revmem_${numHarts} _harts_${numCores} _cores
144
- COMMAND cd ${CMAKE_CURRENT_SOURCE_DIR} /${test_name_lower} && sst --add-lib-path =${CMAKE_SOURCE_DIR} /build /src/ ${CMAKE_SOURCE_DIR} /test /rev-model-options -config.py -- --program ="${test_name_lower} .exe" --numHarts=${numHarts} --numCores=${numCores} --machine "${machine_args} " --startSymbol "${startSymbol} "
161
+ COMMAND cd ${CMAKE_CURRENT_SOURCE_DIR} /${test_name_lower} && sst --add-lib-path =${CMAKE_SOURCE_DIR} /build /src/ ${CMAKE_SOURCE_DIR} /test /rev-model-options -config.py -- --program ="${test_name_lower} .exe" --numHarts=${numHarts} --numCores=${numCores} --machine "${machine_args} " --startSymbol "${startSymbol} " ${RANDOMIZE_COSTS}
145
162
DEPENDS build_${test_name_lower}
146
163
COMMENT "Running ${test_name_lower} test with revmem, numHarts=${numHarts} , numCores=${numCores} "
147
164
)
@@ -154,7 +171,7 @@ macro(add_rev_test test_name test_dir timeout labels)
154
171
# If 'memh' label found, add a memHierarchy test
155
172
if (add_memh_test)
156
173
add_custom_target (run_${test_name_lower} _memh_${numHarts} _harts_${numCores} _cores
157
- COMMAND cd ${CMAKE_CURRENT_SOURCE_DIR} /${test_name_lower} && sst --add-lib-path =${CMAKE_SOURCE_DIR} /build /src/ ${CMAKE_SOURCE_DIR} /test /rev-model-options -config.py -- --program ="${test_name_lower} .exe" --numHarts=${numHarts} --numCores=${numCores} --machine "${machine_args} " --enableMemH=1 --startSymbol "${startSymbol} "
174
+ COMMAND cd ${CMAKE_CURRENT_SOURCE_DIR} /${test_name_lower} && sst --add-lib-path =${CMAKE_SOURCE_DIR} /build /src/ ${CMAKE_SOURCE_DIR} /test /rev-model-options -config.py -- --program ="${test_name_lower} .exe" --numHarts=${numHarts} --numCores=${numCores} --machine "${machine_args} " --enableMemH=1 --startSymbol "${startSymbol} " ${RANDOMIZE_COSTS}
158
175
DEPENDS build_${test_name_lower}
159
176
COMMENT "Running ${test_name_lower} test with memHierarchy enabled, numHarts=${numHarts} , numCores=${numCores} "
160
177
)
@@ -207,7 +224,7 @@ macro(add_rev_test test_name test_dir timeout labels)
207
224
set_tests_properties (${test_name_lower} _script PROPERTIES DISABLED TRUE )
208
225
endif ()
209
226
endif ()
210
- endmacro ()
227
+ endfunction ()
211
228
212
229
# Not all toolchains have support RV32, so we test and skip RV32 tests with a warning
213
230
execute_process (COMMAND ${RVCC} -march=rv32i -mabi=ilp32 -o /dev/null ex1.c WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} /ex1 ERROR_VARIABLE RV32_Missing)
@@ -252,8 +269,8 @@ add_rev_test(BACKINGSTORE backingstore 100 "test_level=2;rv64" SCRIPT "run_backi
252
269
add_rev_test(MEM_DUMP mem_dump 10 "rv64" SCRIPT "run_mem_dump.sh" )
253
270
add_rev_test(LWSP lwsp 30 "test_level=2;memh;rv64" )
254
271
add_rev_test(CSR csr 30 "rv64" )
255
- add_rev_test(RDCYCLE rdcycle 5 "test_level=2;rv64" )
256
- add_rev_test(RDTIME rdtime 5 "test_level=2;rv64" )
272
+ add_rev_test(RDCYCLE rdcycle 5 "test_level=2;rv64;cost1 " )
273
+ add_rev_test(RDTIME rdtime 5 "test_level=2;rv64;cost1 " )
257
274
add_rev_test(RDINSTRET rdinstret 5 "test_level=2;memh;rv64" )
258
275
add_rev_test(Zfa zfa 30 "rv64" SCRIPT "run_zfa_tests.sh" )
259
276
0 commit comments