summaryrefslogtreecommitdiffstats
path: root/test/w3c
diff options
context:
space:
mode:
Diffstat (limited to 'test/w3c')
-rwxr-xr-xtest/w3c/analyze_tests.pl38
-rw-r--r--test/w3c/run_generated_c_test.cmake51
-rw-r--r--test/w3c/run_generated_test.cmake87
3 files changed, 123 insertions, 53 deletions
diff --git a/test/w3c/analyze_tests.pl b/test/w3c/analyze_tests.pl
index b891066..7a6ed08 100755
--- a/test/w3c/analyze_tests.pl
+++ b/test/w3c/analyze_tests.pl
@@ -68,7 +68,7 @@ while ($block = <FILE>) {
# Test Epilog ========
if ($block =~
/
- Test\s(\S+)\sReason:\n
+ Test\s(\S+)\.\n
/x ) {
$test->{$currTest}->{'status'} = lc($1);
next;
@@ -85,6 +85,38 @@ while ($block = <FILE>) {
# next; - no next as this is part of the actual test output we need to scan below
}
+ # Performance ========
+ if ($block =~
+ /
+ (\d+)\siterations\n
+ ([\d\.]+)\sms\sin\stotal\n
+ ([\d\.]+)\sms\sper\sexecution\n
+ (\d+)\smicrosteps\sper\siteration\n
+ ([\d\.]+)\sms\sper\smicrostep\n
+ ([\d\.]+)\sms\sin\sdatamodel\n
+ ([\d\.]+)\sms\sper\smicrostep\s\\wo\sdatamodel\n
+ /x ) {
+ $test->{$currTest}->{'benchmark'}->{'iterations'} = $1;
+ $test->{$currTest}->{'benchmark'}->{'total'} = $2;
+ $test->{$currTest}->{'benchmark'}->{'perExecution'} = $3;
+ $test->{$currTest}->{'benchmark'}->{'mirosteps'} = $4;
+ $test->{$currTest}->{'benchmark'}->{'perMicrostep'} = $5;
+ $test->{$currTest}->{'benchmark'}->{'inDataModel'} = $6;
+ $test->{$currTest}->{'benchmark'}->{'inMicrostep'} = $7;
+ }
+
+ if ($block =~ /Size\sof\scompiled\sunit:\s(\d+)/x ) {
+ $test->{$currTest}->{'benchmark'}->{'size'} = $1;
+ }
+
+ if ($block =~ /Size\sof\scompiled\sunit\soptimized\sfor\sspeed:\s(\d+)/x ) {
+ $test->{$currTest}->{'benchmark'}->{'sizeFast'} = $1;
+ }
+
+ if ($block =~ /Size\sof\scompiled\sunit\soptimized\sfor\ssize:\s(\d+)/x ) {
+ $test->{$currTest}->{'benchmark'}->{'sizeSmall'} = $1;
+ }
+
# Minimization ========
# print $block;
@@ -240,7 +272,9 @@ if (@dataQuery > 0) {
if (defined($currVal->{$dataKey})) {
$currVal = $currVal->{$dataKey};
} else {
- die("no key $dataKey in structure:\n" . Dumper($currVal));
+ print STDERR "no key $dataKey in structure:\n" . Dumper($currVal);
+ $currVal = "N/A";
+ last;
}
}
print $seperator . $currVal;
diff --git a/test/w3c/run_generated_c_test.cmake b/test/w3c/run_generated_c_test.cmake
deleted file mode 100644
index 2c35762..0000000
--- a/test/w3c/run_generated_c_test.cmake
+++ /dev/null
@@ -1,51 +0,0 @@
-# convert given file to promela and run spin
-
-get_filename_component(TEST_FILE_NAME ${TESTFILE} NAME)
-execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${OUTDIR})
-
-message(STATUS "${USCXML_TRANSFORM_BIN} -tc -i ${TESTFILE} -o ${OUTDIR}/${TEST_FILE_NAME}.machine.c")
-execute_process(COMMAND time -p ${USCXML_TRANSFORM_BIN} -tc -i ${TESTFILE} -o ${OUTDIR}/${TEST_FILE_NAME}.machine.c RESULT_VARIABLE CMD_RESULT)
-if(CMD_RESULT)
- message(FATAL_ERROR "Error running ${USCXML_TRANSFORM_BIN}: ${CMD_RESULT}")
-endif()
-message(STATUS "time for transforming to c machine")
-
-# message(FATAL_ERROR "PROJECT_BINARY_DIR: ${PROJECT_BINARY_DIR}")
-
-set(COMPILE_CMD
-"-o" "${OUTDIR}/${TEST_FILE_NAME}"
-"-Ofast"
-"-L${CMAKE_LIBRARY_OUTPUT_DIRECTORY}"
-"-luscxml64"
-"-include" "${OUTDIR}/${TEST_FILE_NAME}.machine.c"
-"-I${PROJECT_SOURCE_DIR}/contrib/prebuilt/${USCXML_PLATFORM_ID}/include"
-"-I${PROJECT_SOURCE_DIR}/contrib/prebuilt/${USCXML_PLATFORM_ID}/include/arabica"
-"-I${PROJECT_SOURCE_DIR}/contrib/prebuilt/include"
-"-I${CMAKE_BINARY_DIR}"
-"-I${PROJECT_BINARY_DIR}"
-"-I${PROJECT_SOURCE_DIR}/src"
-"-Wl,-rpath,${CMAKE_LIBRARY_OUTPUT_DIRECTORY}"
-"-DAUTOINCLUDE_TEST=ON"
-"${SCAFFOLDING_FOR_GENERATED_C}")
-
-message(STATUS "${GPP_BIN} ${COMPILE_CMD}")
-execute_process(
- COMMAND time -p ${GPP_BIN} ${COMPILE_CMD}
- WORKING_DIRECTORY ${OUTDIR} RESULT_VARIABLE CMD_RESULT)
-if(CMD_RESULT)
- message(FATAL_ERROR "Error running g++ ${GPP_BIN}: ${CMD_RESULT}")
-endif()
-message(STATUS "time for transforming to binary")
-
-message(STATUS "${OUTDIR}/${TEST_FILE_NAME}")
-execute_process(
- COMMAND time -p ${OUTDIR}/${TEST_FILE_NAME}
- WORKING_DIRECTORY ${OUTDIR}
- RESULT_VARIABLE CMD_RESULT)
-if(CMD_RESULT)
- message(FATAL_ERROR "Error running generated c test: ${CMD_RESULT}")
-endif()
-message(STATUS "time for execution")
-
-# message(STATUS "${TEST_OUT}")
-# file(WRITE ${OUTDIR}/${TEST_FILE_NAME}.pml.out ${TEST_OUT}) \ No newline at end of file
diff --git a/test/w3c/run_generated_test.cmake b/test/w3c/run_generated_test.cmake
new file mode 100644
index 0000000..cf13fd9
--- /dev/null
+++ b/test/w3c/run_generated_test.cmake
@@ -0,0 +1,87 @@
+# convert given file to promela and run spin
+
+set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/contrib/cmake)
+include("${CMAKE_MODULE_PATH}/FileInformation.cmake")
+
+get_filename_component(TEST_FILE_NAME ${TESTFILE} NAME)
+execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${OUTDIR})
+
+message(STATUS "${USCXML_TRANSFORM_BIN} -t${TARGETLANG} -i ${TESTFILE} -o ${OUTDIR}/${TEST_FILE_NAME}.machine.c")
+execute_process(COMMAND time -p ${USCXML_TRANSFORM_BIN} -t${TARGETLANG} -i ${TESTFILE} -o ${OUTDIR}/${TEST_FILE_NAME}.machine.c RESULT_VARIABLE CMD_RESULT)
+if(CMD_RESULT)
+ message(FATAL_ERROR "Error running ${USCXML_TRANSFORM_BIN}: ${CMD_RESULT}")
+endif()
+message(STATUS "time for transforming to c machine")
+
+# message(FATAL_ERROR "PROJECT_BINARY_DIR: ${PROJECT_BINARY_DIR}")
+
+if (${TARGETLANG} STREQUAL "c")
+
+ # set(COMPILE_CMD_OBJ
+ # "-c" "${OUTDIR}/${TEST_FILE_NAME}.machine.c"
+ # "-o" "${OUTDIR}/${TEST_FILE_NAME}.machine.c.o"
+ # "-Ofast")
+ #
+ # message(STATUS "${GPP_BIN} ${COMPILE_CMD_OBJ}")
+ # execute_process(
+ # COMMAND time -p ${GPP_BIN} ${COMPILE_CMD_OBJ}
+ # WORKING_DIRECTORY ${OUTDIR} RESULT_VARIABLE CMD_RESULT)
+ # if(CMD_RESULT)
+ # message(FATAL_ERROR "Error running g++ ${GPP_BIN}: ${CMD_RESULT}")
+ # endif()
+ # file (SIZE "${OUTDIR}/${TEST_FILE_NAME}.machine.c.o" BINARY_SIZE)
+ # message("Size of compiled unit optimized for speed: ${BINARY_SIZE}")
+ #
+ # set(COMPILE_CMD_OBJ
+ # "-c" "${OUTDIR}/${TEST_FILE_NAME}.machine.c"
+ # "-o" "${OUTDIR}/${TEST_FILE_NAME}.machine.c.o"
+ # "-Os")
+ #
+ # message(STATUS "${GPP_BIN} ${COMPILE_CMD_OBJ}")
+ # execute_process(
+ # COMMAND time -p ${GPP_BIN} ${COMPILE_CMD_OBJ}
+ # WORKING_DIRECTORY ${OUTDIR} RESULT_VARIABLE CMD_RESULT)
+ # if(CMD_RESULT)
+ # message(FATAL_ERROR "Error running g++ ${GPP_BIN}: ${CMD_RESULT}")
+ # endif()
+ # file (SIZE "${OUTDIR}/${TEST_FILE_NAME}.machine.c.o" BINARY_SIZE)
+ # message("Size of compiled unit optimized for size: ${BINARY_SIZE}")
+
+ set(COMPILE_CMD_BIN
+ "-o" "${OUTDIR}/${TEST_FILE_NAME}"
+ "-Ofast"
+ "-L${CMAKE_LIBRARY_OUTPUT_DIRECTORY}"
+ "-luscxml64"
+ "-include" "${OUTDIR}/${TEST_FILE_NAME}.machine.c"
+ "-I${PROJECT_SOURCE_DIR}/contrib/prebuilt/${USCXML_PLATFORM_ID}/include"
+ "-I${PROJECT_SOURCE_DIR}/contrib/prebuilt/${USCXML_PLATFORM_ID}/include/arabica"
+ "-I${PROJECT_SOURCE_DIR}/contrib/prebuilt/include"
+ "-I${CMAKE_BINARY_DIR}"
+ "-I${PROJECT_BINARY_DIR}"
+ "-I${PROJECT_SOURCE_DIR}/src"
+ "-Wl,-rpath,${CMAKE_LIBRARY_OUTPUT_DIRECTORY}"
+ "-DAUTOINCLUDE_TEST=ON"
+ "${SCAFFOLDING_FOR_GENERATED_C}")
+
+ message(STATUS "${GPP_BIN} ${COMPILE_CMD_BIN}")
+ execute_process(
+ COMMAND time -p ${GPP_BIN} ${COMPILE_CMD_BIN}
+ WORKING_DIRECTORY ${OUTDIR} RESULT_VARIABLE CMD_RESULT)
+ if(CMD_RESULT)
+ message(FATAL_ERROR "Error running g++ ${GPP_BIN}: ${CMD_RESULT}")
+ endif()
+ message(STATUS "time for transforming to binary")
+
+ message(STATUS "${OUTDIR}/${TEST_FILE_NAME}")
+ execute_process(
+ COMMAND time -p ${OUTDIR}/${TEST_FILE_NAME}
+ WORKING_DIRECTORY ${OUTDIR}
+ RESULT_VARIABLE CMD_RESULT)
+ if(CMD_RESULT)
+ message(FATAL_ERROR "Error running generated c test: ${CMD_RESULT}")
+ endif()
+ message(STATUS "time for execution")
+endif()
+
+# message(STATUS "${TEST_OUT}")
+# file(WRITE ${OUTDIR}/${TEST_FILE_NAME}.pml.out ${TEST_OUT}) \ No newline at end of file