diff options
author | Stefan Radomski <sradomski@mintwerk.de> | 2016-01-15 13:42:06 (GMT) |
---|---|---|
committer | Stefan Radomski <sradomski@mintwerk.de> | 2016-01-15 13:42:06 (GMT) |
commit | 38da34e8ba7956bed2e4703289ed70e3f6aade52 (patch) | |
tree | baf0b424f395ae63fbf3f0d8123a3e59e1ef51d7 /test/w3c | |
parent | 613cf9fb6fe4b24bc7852d5a31953f6ff419e43c (diff) | |
download | uscxml-38da34e8ba7956bed2e4703289ed70e3f6aade52.zip uscxml-38da34e8ba7956bed2e4703289ed70e3f6aade52.tar.gz uscxml-38da34e8ba7956bed2e4703289ed70e3f6aade52.tar.bz2 |
Working on C transformation
Diffstat (limited to 'test/w3c')
-rwxr-xr-x | test/w3c/analyze_tests.pl | 38 | ||||
-rw-r--r-- | test/w3c/run_generated_c_test.cmake | 51 | ||||
-rw-r--r-- | test/w3c/run_generated_test.cmake | 87 |
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 |