blob: 4f719b6c120abf0e3f2e625015f44827bedf3041 [file] [log] [blame]
SET(SOURCE_GROUP ${SOURCE_GROUP}\\systemtests)
if(FORTE_SYSTEM_TESTS)
add_subdirectory(src)
#hard_pass_example.fboot doesn't produce any logging error and all TEST_CONDITION FBs pass
#soft_pass_example.fboot produces logging error but all TEST_CONDITION FBs pass
#fail_example.fboot has TEST_CONDITION FBs that fail, so it always fail, no matter hard or soft
forte_add_systemtest_hard(Test_Hard_Pass hard_pass_example.fboot 5)
forte_add_systemtest_soft(Test_Soft_Pass_Clean hard_pass_example.fboot 5)
forte_add_systemtest_soft(Test_Soft_Pass_Dirty soft_pass_example.fboot 5)
forte_add_systemtest_hard(Test_DeInitCommFB deInit_commFb.fboot 5) #check that the de-initialization of a CommFB produce an INITO
forte_add_systemtest_hard(Test_Soft_Example_As_Hard_Inverted soft_pass_example.fboot 5)
SET_TESTS_PROPERTIES(Test_Soft_Example_As_Hard_Inverted PROPERTIES WILL_FAIL TRUE)
forte_add_systemtest_hard(Test_Hard_Fail_Alaways_Inverted fail_example.fboot 5)
SET_TESTS_PROPERTIES(Test_Hard_Fail_Alaways_Inverted PROPERTIES WILL_FAIL TRUE)
forte_add_systemtest_soft(Test_Soft_Fail_Alaways_Inverted fail_example.fboot 5)
SET_TESTS_PROPERTIES(Test_Soft_Fail_Alaways_Inverted PROPERTIES WILL_FAIL TRUE)
#Test using environement variable as bootfile
##############################################
ADD_TEST(NAME Test_Hard_Pass_ENV COMMAND $<TARGET_FILE:forte>)
set_tests_properties (Test_Hard_Pass_ENV PROPERTIES TIMEOUT 5)
forte_add_env_file(Test_Hard_Pass_ENV hard_pass_example.fboot)
SET_TESTS_PROPERTIES(Test_Hard_Pass_ENV PROPERTIES FAIL_REGULAR_EXPRESSION "ERROR: T")
##############################################
#Test using local bootfile
##############################################
FILE(TO_NATIVE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/hard_pass_example.fboot" file_str)
STRING(REPLACE "\\" "\\\\" file_str ${file_str})
configure_file(${file_str} ${CMAKE_CURRENT_BINARY_DIR}/forte.fboot COPYONLY)
ADD_TEST(NAME Test_Hard_Pass_LOCAL COMMAND $<TARGET_FILE:forte>)
set_tests_properties (Test_Hard_Pass_LOCAL PROPERTIES TIMEOUT 5)
SET_TESTS_PROPERTIES(Test_Hard_Pass_LOCAL PROPERTIES FAIL_REGULAR_EXPRESSION "ERROR: T")
##############################################
#Test bootfile with a missing semicolon
##############################################
ADD_TEST(NAME Test_missing_semicolon COMMAND $<TARGET_FILE:forte>)
set_tests_properties (Test_missing_semicolon PROPERTIES TIMEOUT 5)
forte_add_env_file(Test_missing_semicolon missing_semicolon.fboot)
SET_TESTS_PROPERTIES(Test_missing_semicolon PROPERTIES PASS_REGULAR_EXPRESSION "Boot file line does not contain separating ';'")
##############################################
#Test unkonwn FB
##############################################
ADD_TEST(NAME Test_missing_unknown_FB COMMAND $<TARGET_FILE:forte>)
set_tests_properties (Test_missing_unknown_FB PROPERTIES TIMEOUT 5)
forte_add_env_file(Test_missing_unknown_FB unknown_FB.fboot)
SET_TESTS_PROPERTIES(Test_missing_unknown_FB PROPERTIES PASS_REGULAR_EXPRESSION "Boot file command could not be executed")
##############################################
#Test wrong boot-file with FORTE_BOOT_FILE_FAIL_MISSING set
##############################################
ADD_TEST(NAME Test_wrong_bootfile_w_FAIL COMMAND $<TARGET_FILE:forte>)
set_tests_properties (Test_wrong_bootfile_w_FAIL PROPERTIES TIMEOUT 5)
FILE(TO_NATIVE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/non_existing.fboot" file_str)
STRING(REPLACE "\\" "\\\\" file_str ${file_str})
set_tests_properties(Test_wrong_bootfile_w_FAIL PROPERTIES ENVIRONMENT "FORTE_BOOT_FILE=${file_str};FORTE_BOOT_FILE_FAIL_MISSING=1")
SET_TESTS_PROPERTIES(Test_wrong_bootfile_w_FAIL PROPERTIES PASS_REGULAR_EXPRESSION "Boot file ${file_str} could not be opened and FORTE_BOOT_FILE_FAIL_MISSING is set")
##############################################
#Test help parameter (-h)
##############################################
ADD_TEST(NAME Test_help_parameter COMMAND $<TARGET_FILE:forte> -h)
set_tests_properties (Test_help_parameter PROPERTIES TIMEOUT 5)
SET_TESTS_PROPERTIES(Test_help_parameter PROPERTIES PASS_REGULAR_EXPRESSION "Usage: forte \\[options\\]")
##############################################
#Test wrong parameter (missing -)
##############################################
ADD_TEST(NAME Test_wrong_parameter COMMAND $<TARGET_FILE:forte> f file1)
set_tests_properties (Test_wrong_parameter PROPERTIES TIMEOUT 5)
SET_TESTS_PROPERTIES(Test_wrong_parameter PROPERTIES PASS_REGULAR_EXPRESSION "Usage: forte \\[options\\]")
##############################################
#Test invalid parameter (-z)
##############################################
ADD_TEST(NAME Test_invalid_parameter COMMAND $<TARGET_FILE:forte> -z)
set_tests_properties (Test_invalid_parameter PROPERTIES TIMEOUT 5)
SET_TESTS_PROPERTIES(Test_invalid_parameter PROPERTIES PASS_REGULAR_EXPRESSION "Usage: forte \\[options\\]")
##############################################
#Test valid and invalid parameter (-c localhost:61499 -z)
##############################################
ADD_TEST(NAME Test_valid_invalid_parameter COMMAND $<TARGET_FILE:forte> -c localhost:61499 -z)
set_tests_properties (Test_valid_invalid_parameter PROPERTIES TIMEOUT 5)
SET_TESTS_PROPERTIES(Test_valid_invalid_parameter PROPERTIES PASS_REGULAR_EXPRESSION "Usage: forte \\[options\\]")
##############################################
# Simple test with multi devices
forte_add_multi_systemtests(SimpleMultiTest 10 1 multiDevice1.fboot "-c localhost:61500" multiDevice2.fboot " " multiDevice3.fboot "-c localhost:61501")
#after compilation, run "make CTEST_OUTPUT_ON_FAILURE=1 test" on the binary folder
endif(FORTE_SYSTEM_TESTS)