cmake_minimum_required(VERSION 2.8)
project(CTestLimitDashJ NONE)

# This file demonstrates http://public.kitware.com/Bug/view.php?id=12904
# when configured with CMake 2.8.10.2 and earlier, and when running
# "ctest -j 4" in the resulting build tree. This example is hard-coded
# to assume -j 4 just to reproduce the issue easily. Adjust the
# FAIL_REGULAR_EXPRESSION and PROCESSORS values to reproduce this problem
# with a different ctest -j value...

if(EXISTS "${CMAKE_BINARY_DIR}/Testing/Temporary/CTestCostData.txt")
  message(STATUS "Removing CTestCostData.txt to force ordering by COST PROPERTY value rather than prior run data")
  file(REMOVE "${CMAKE_BINARY_DIR}/Testing/Temporary/CTestCostData.txt")
endif()

include(CTest)

configure_file(
  ${CMAKE_CURRENT_SOURCE_DIR}/CreateSleepDelete.cmake
  ${CMAKE_CURRENT_BINARY_DIR}/CreateSleepDelete.cmake
  @ONLY
  )

foreach(n RANGE 1 100)
  add_test(NAME t${n}
    COMMAND ${CMAKE_CTEST_COMMAND}
      -D basefilename=f${n}
      -S ${CMAKE_CURRENT_BINARY_DIR}/CreateSleepDelete.cmake
    )
  set_property(TEST t${n} PROPERTY FAIL_REGULAR_EXPRESSION "(c='[5-9]'|c='[1-9][0-9]+')")
endforeach()

set_property(TEST t1 PROPERTY RUN_SERIAL 1)
set_property(TEST t1 PROPERTY PROCESSORS 4)

set_property(TEST t51 PROPERTY RUN_SERIAL 1)
set_property(TEST t51 PROPERTY PROCESSORS 4)

foreach(n RANGE 2 50)
  set_property(TEST t${n} PROPERTY DEPENDS t1)
endforeach()
set_property(TEST t1 PROPERTY DEPENDS t51)
set_property(TEST t51 PROPERTY DEPENDS t100)

foreach(n 50)
  set_property(TEST t${n} PROPERTY COST 6)
endforeach()
foreach(n RANGE 52 99)
  set_property(TEST t${n} PROPERTY COST 3)
endforeach()
