#
# Compiling/running tests

if(CN_CBOR_USE_CONTEXT)
  add_definitions(-DUSE_CBOR_CONTEXT)
endif()

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${dist_dir}/test)

function(create_test name)
  add_executable(${name}_test ${name}_test.c)
  target_link_libraries(${name}_test PRIVATE cn-cbor)
  target_include_directories(${name}_test PRIVATE ../include)
  add_test(NAME ${name} COMMAND ${name}_test)
endfunction()

create_test(cbor)
include(CTest)

if(APPLE)
  # difftest uses Apple-specific memory tests
  add_executable(cn-test test.c)
  target_link_libraries(cn-test PRIVATE cn-cbor)

  configure_file(cases.cbor cases.cbor COPYONLY)
  configure_file(expected.out expected.out COPYONLY)

  add_custom_target(
    difftest
    COMMAND env MallocStackLogging=true ./cn-test >new.out
    COMMAND diff new.out expected.out
    DEPENDS cn-test
    WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
    COMMENT "generate differences between actual and expected output")

endif()
