set(b b)
set(out x)
string(CONCAT out)
if(NOT out STREQUAL "")
  message(FATAL_ERROR "\"string(CONCAT out)\" set out to \"${out}\"")
endif()
string(CONCAT out a)
if(NOT out STREQUAL "a")
  message(FATAL_ERROR "\"string(CONCAT out a)\" set out to \"${out}\"")
endif()
string(CONCAT out a "b")
if(NOT out STREQUAL "ab")
  message(FATAL_ERROR "\"string(CONCAT out a \"b\")\" set out to \"${out}\"")
endif()
string(CONCAT out a "${b}" [[
${c}]])
if(NOT out STREQUAL "ab\${c}")
  message(FATAL_ERROR "\"string(CONCAT out a \"\${b}\" [[\${c}]])\" set out to \"${out}\"")
endif()
