
Our development workflow tooling prevents trailing blank lines from being added, but some such lines remain from before that was enforced. Remove them to make it easier to rename files without triggering enforcement.
55 lines
1.2 KiB
CMake
55 lines
1.2 KiB
CMake
cmake_minimum_required(VERSION 3.10)
|
|
project(MathTest)
|
|
|
|
|
|
# Expression test
|
|
|
|
set(expressions
|
|
"5 * ( 3 + 4)"
|
|
"(1 | 2 | 4 | 8) & 16"
|
|
"1 +(3*4) + 10 >> 2"
|
|
"10000 / 20 / 4"
|
|
"10000 / (20 / 4)"
|
|
"-1 + +1"
|
|
"+1 - -1"
|
|
"+1 - - + + -(-3 + - - +1)"
|
|
"1000 -12*5"
|
|
"1000 +12*-5"
|
|
"1000 -12*-5"
|
|
"~~1"
|
|
"1000 & ~0"
|
|
)
|
|
|
|
set(FILE_EXPRESSIONS "extern void test_expression(int x, int y, const char * text);\n")
|
|
|
|
|
|
macro(add_math_test expression)
|
|
math(EXPR result ${expression} ${ARGV1} ${ARGV2})
|
|
set(CODE "test_expression(${expression}, ${result}, \"${expression}\");")
|
|
string(APPEND FILE_EXPRESSIONS "${CODE}\n")
|
|
endmacro()
|
|
|
|
macro(add_math_tests)
|
|
foreach (expression ${expressions})
|
|
add_math_test(${expression} ${ARGV0} ${ARGV1})
|
|
endforeach ()
|
|
endmacro()
|
|
|
|
add_math_tests()
|
|
add_math_tests("OUTPUT_FORMAT" "DECIMAL")
|
|
add_math_tests("OUTPUT_FORMAT" "HEXADECIMAL")
|
|
|
|
# Avoid the test with negative result and hexadecimal formatting
|
|
# therefore more tests with a negative result
|
|
add_math_test("-12*5")
|
|
add_math_test("12*-5")
|
|
|
|
|
|
configure_file(
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/MathTestTests.h.in"
|
|
"${CMAKE_CURRENT_BINARY_DIR}/MathTestTests.h"
|
|
@ONLY)
|
|
|
|
include_directories("${CMAKE_CURRENT_BINARY_DIR}")
|
|
add_executable(MathTest MathTestExec.cxx)
|