From 2900cc049dd0caa4293c5f258c3fb54ffccb0d56 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tim=20Hu=CC=88tz?= <tim@huetz.biz>
Date: Tue, 15 Feb 2011 11:15:23 +0100
Subject: [PATCH 2/2] Added tests for the FIND sub-command of STRING

Implemented some new test for verifying the FIND
sub-command of the STRING command.
---
 Tests/CMakeTests/StringTest.cmake.in    |    2 +-
 Tests/CMakeTests/StringTestScript.cmake |   60 +++++++++++++++++++++++++++++++
 2 files changed, 61 insertions(+), 1 deletions(-)

diff --git a/Tests/CMakeTests/StringTest.cmake.in b/Tests/CMakeTests/StringTest.cmake.in
index 54fee7f..2a19ad0 100644
--- a/Tests/CMakeTests/StringTest.cmake.in
+++ b/Tests/CMakeTests/StringTest.cmake.in
@@ -1,7 +1,7 @@
 # Execute each test listed in StringTestScript.cmake:
 #
 set(scriptname "@CMAKE_CURRENT_SOURCE_DIR@/StringTestScript.cmake")
-set(number_of_tests_expected 52)
+set(number_of_tests_expected 66)
 
 include("@CMAKE_CURRENT_SOURCE_DIR@/ExecuteScriptTests.cmake")
 execute_all_script_tests(${scriptname} number_of_tests_executed)
diff --git a/Tests/CMakeTests/StringTestScript.cmake b/Tests/CMakeTests/StringTestScript.cmake
index 3703856..785b089 100644
--- a/Tests/CMakeTests/StringTestScript.cmake
+++ b/Tests/CMakeTests/StringTestScript.cmake
@@ -193,6 +193,66 @@ elseif(testname STREQUAL random_with_various_alphabets) # pass
   # alphabet of many colors - use all the crazy keyboard characters
   string(RANDOM LENGTH 78 ALPHABET "~`!@#$%^&*()_-+={}[]\\|:\\;'\",.<>/?" v)
   message(STATUS "v='${v}'")
+  
+elseif(testname STREQUAL string_find_with_no_parameter) # fail
+  string(FIND)
+  
+elseif(testname STREQUAL string_find_with_one_parameter) # fail
+  string(FIND "CMake is great.")
+
+elseif(testname STREQUAL string_find_with_two_parameters) # fail
+  string(FIND "CMake is great." "a")
+  
+elseif(testname STREQUAL string_find_with_three_parameters) # pass
+  string(FIND "CMake is great." "a" v)
+  message(STATUS "v='${v}'")
+  
+elseif(testname STREQUAL string_find_with_four_parameters) # fail
+  string(FIND "CMake is great." "a" v v2)
+  
+elseif(testname STREQUAL string_find_reverse_with_no_parameter) # fail
+  string(FIND REVERSE)
+    
+elseif(testname STREQUAL string_find_reverse_with_one_parameter) # fail
+  string(FIND REVERSE "CMake is great.")
+
+elseif(testname STREQUAL string_find_reverse_with_two_parameters) # fail
+  string(FIND REVERSE "CMake is great." "a")
+  
+elseif(testname STREQUAL string_find_reverse_with_three_parameters) # pass
+  string(FIND REVERSE "CMake is great." "a" v)
+  message(STATUS "v='${v}'")
+  
+elseif(testname STREQUAL string_find_reverse_with_four_parameters) # fail
+  string(FIND REVERSE "CMake is great." "a" v v2)
+  
+elseif(testname STREQUAL string_find_with_no_possible_result) # pass
+  string(FIND "CMake is a great application." "z" v)
+  message(STATUS "v='${v}'")
+  if(NOT(-1 EQUAL ${v}))
+    message(SEND_ERROR "FIND sub-command should return -1 but returned ${v}.")
+  endif(NOT(-1 EQUAL ${v}))
+  
+elseif(testname STREQUAL string_find_reverse_with_no_possible_result) # pass
+  string(FIND REVERSE "CMake is a great application." "z" v)
+  message(STATUS "v='${v}'")
+  if(NOT(-1 EQUAL ${v}))
+    message(SEND_ERROR "FIND REVERSE sub-command should return -1 but returned ${v}.")
+  endif(NOT(-1 EQUAL ${v}))
+  
+elseif(testname STREQUAL string_find_with_required_result) # pass
+  string(FIND "CMake is a great application." "g" v)
+  message(STATUS "v='${v}'")
+  if(NOT(11 EQUAL ${v}))
+    message(SEND_ERROR "FIND sub-command should return 11 but returned ${v}.")
+  endif(NOT(11 EQUAL ${v}))
+  
+elseif(testname STREQUAL string_find_reverse_with_required_result) # pass
+  string(FIND REVERSE "CMake is a great application." "e" v)
+  message(STATUS "v='${v}'")
+  if(NOT(13 EQUAL ${v}))
+    message(SEND_ERROR "FIND REVERSE sub-command should return 13 but returned ${v}.")
+  endif(NOT(13 EQUAL ${v}))
 
 else() # fail
   message(FATAL_ERROR "testname='${testname}' - error: no such test in '${CMAKE_CURRENT_LIST_FILE}'")
-- 
1.7.4

