StringTestScript.cmake 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. message(STATUS "testname='${testname}'")
  2. if(testname STREQUAL empty)
  3. string()
  4. elseif(testname STREQUAL bogus)
  5. string(BOGUS)
  6. elseif(testname STREQUAL random)
  7. string(RANDOM r)
  8. message(STATUS "r='${r}'")
  9. elseif(testname STREQUAL toupper_no_variable)
  10. string(TOUPPER)
  11. elseif(testname STREQUAL ascii_no_variable)
  12. string(ASCII)
  13. elseif(testname STREQUAL ascii_bad_code)
  14. string(ASCII 288 bummer)
  15. elseif(testname STREQUAL configure_no_input)
  16. string(CONFIGURE)
  17. elseif(testname STREQUAL configure_no_variable)
  18. string(CONFIGURE "this is @testname@")
  19. elseif(testname STREQUAL configure_escape_quotes)
  20. string(CONFIGURE "this is @testname@" v ESCAPE_QUOTES)
  21. message(STATUS "v='${v}'")
  22. elseif(testname STREQUAL configure_bogus)
  23. string(CONFIGURE "this is @testname@" v ESCAPE_QUOTES BOGUS)
  24. message(STATUS "v='${v}'")
  25. elseif(testname STREQUAL regex_no_mode)
  26. string(REGEX)
  27. elseif(testname STREQUAL regex_match_not_enough_args)
  28. string(REGEX MATCH)
  29. elseif(testname STREQUAL regex_matchall_not_enough_args)
  30. string(REGEX MATCHALL)
  31. elseif(testname STREQUAL regex_replace_not_enough_args)
  32. string(REGEX REPLACE)
  33. elseif(testname STREQUAL regex_bogus_mode)
  34. string(REGEX BOGUS)
  35. elseif(testname STREQUAL regex_match_multiple_inputs)
  36. string(REGEX MATCH ".*" v input1 input2 input3 input4)
  37. message(STATUS "v='${v}'")
  38. elseif(testname STREQUAL regex_match_bad_regex)
  39. string(REGEX MATCH "(.*" v input)
  40. elseif(testname STREQUAL regex_match_empty_string)
  41. string(REGEX MATCH "x*" v "")
  42. elseif(testname STREQUAL regex_matchall_multiple_inputs)
  43. string(REGEX MATCHALL "input" v input1 input2 input3 input4)
  44. message(STATUS "v='${v}'")
  45. elseif(testname STREQUAL regex_matchall_bad_regex)
  46. string(REGEX MATCHALL "(.*" v input)
  47. elseif(testname STREQUAL regex_matchall_empty_string)
  48. string(REGEX MATCHALL "x*" v "")
  49. elseif(testname STREQUAL regex_replace_ends_with_backslash)
  50. string(REGEX REPLACE "input" "output\\" v input1 input2 input3 input4)
  51. elseif(testname STREQUAL regex_replace_ends_with_escaped_backslash)
  52. string(REGEX REPLACE "input" "output\\\\" v input1 input2 input3 input4)
  53. message(STATUS "v='${v}'")
  54. elseif(testname STREQUAL regex_replace_has_linefeed)
  55. string(REGEX REPLACE "input" "output\\n" v input1 input2 input3 input4)
  56. message(STATUS "v='${v}'")
  57. elseif(testname STREQUAL regex_replace_has_bogus_escape)
  58. string(REGEX REPLACE "input" "output\\a" v input1 input2 input3 input4)
  59. elseif(testname STREQUAL regex_replace_bad_regex)
  60. string(REGEX REPLACE "this (.*" "with that" v input)
  61. elseif(testname STREQUAL regex_replace_empty_string)
  62. string(REGEX REPLACE "x*" "that" v "")
  63. elseif(testname STREQUAL regex_replace_out_of_range)
  64. string(REGEX REPLACE "^this (.*)$" "with \\1 \\2" v "this input")
  65. elseif(testname STREQUAL compare_no_mode)
  66. string(COMPARE)
  67. elseif(testname STREQUAL compare_bogus_mode)
  68. string(COMPARE BOGUS)
  69. elseif(testname STREQUAL compare_not_enough_args)
  70. string(COMPARE EQUAL)
  71. elseif(testname STREQUAL replace_not_enough_args)
  72. string(REPLACE)
  73. elseif(testname STREQUAL replace_multiple_inputs)
  74. string(REPLACE "input" "output" v input1 input2 input3 input4)
  75. message(STATUS "v='${v}'")
  76. elseif(testname STREQUAL substring_not_enough_args)
  77. string(SUBSTRING)
  78. elseif(testname STREQUAL substring_bad_begin)
  79. string(SUBSTRING "abcdefg" 25 100 v)
  80. message(STATUS "v='${v}'")
  81. elseif(testname STREQUAL substring_bad_end)
  82. string(SUBSTRING "abcdefg" 1 100 v)
  83. message(STATUS "v='${v}'")
  84. elseif(testname STREQUAL length_not_enough_args)
  85. string(LENGTH)
  86. elseif(testname STREQUAL strip_not_enough_args)
  87. string(STRIP)
  88. else()
  89. message(FATAL_ERROR "testname='${testname}' - error: no such test in '${CMAKE_CURRENT_LIST_FILE}'")
  90. endif()