Sha256: 93997f6e03310a4043a507bd1f31a01580ef2d601b86a64e8a570a8712cfa51a

Contents?: true

Size: 1.96 KB

Versions: 21

Compression:

Stored size: 1.96 KB

Contents


rule(/#{PROJECT_TEST_FILE_PREFIX}#{'.+'+TEST_RUNNER_FILE_SUFFIX}#{'\\'+EXTENSION_SOURCE}$/ => [
    proc do |task_name|
      @ceedling[:file_finder].find_test_input_for_runner_file(task_name)
    end
  ]) do |runner|
  @ceedling[:generator].generate_test_runner(TEST_SYM, runner.source, runner.name)
end


rule(/#{PROJECT_TEST_BUILD_OUTPUT_PATH}\/#{'.+\\'+EXTENSION_OBJECT}$/ => [
    proc do |task_name|
      @ceedling[:file_finder].find_compilation_input_file(task_name)
    end
  ]) do |object|
  @ceedling[:generator].generate_object_file(
    TOOLS_TEST_COMPILER,
    TEST_SYM,
    object.source,
    object.name,
    @ceedling[:file_path_utils].form_test_build_list_filepath( object.name ) )
end


rule(/#{PROJECT_TEST_BUILD_OUTPUT_PATH}\/#{'.+\\'+EXTENSION_EXECUTABLE}$/) do |bin_file|
  @ceedling[:generator].generate_executable_file(
    TOOLS_TEST_LINKER,
    TEST_SYM,
    bin_file.prerequisites,
    bin_file.name,
    @ceedling[:file_path_utils].form_test_build_map_filepath( bin_file.name ) )
end


rule(/#{PROJECT_TEST_RESULTS_PATH}\/#{'.+\\'+EXTENSION_TESTPASS}$/ => [
    proc do |task_name|
      @ceedling[:file_path_utils].form_test_executable_filepath(task_name)
    end
  ]) do |test_result|
  @ceedling[:generator].generate_test_results(TOOLS_TEST_FIXTURE, TEST_SYM, test_result.source, test_result.name)
end


namespace TEST_SYM do
  # use rules to increase efficiency for large projects (instead of iterating through all sources and creating defined tasks)
  
  rule(/^#{TEST_TASK_ROOT}\S+$/ => [ # test task names by regex
      proc do |task_name|
        test = task_name.sub(/#{TEST_TASK_ROOT}/, '')
        test = "#{PROJECT_TEST_FILE_PREFIX}#{test}" if not (test.start_with?(PROJECT_TEST_FILE_PREFIX))
        @ceedling[:file_finder].find_test_from_file_path(test)
      end
  ]) do |test|
    @ceedling[:rake_wrapper][:directories].invoke
    @ceedling[:test_invoker].setup_and_invoke([test.source])
  end
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
ceedling-0.13.0 lib/rules_tests.rake
ceedling-0.13.0.rc1 lib/rules_tests.rake
ceedling-0.12.2 new_project_template/vendor/ceedling/lib/rules_tests.rake
ceedling-0.12.1 new_project_template/vendor/ceedling/lib/rules_tests.rake
ceedling-0.12.0 new_project_template/vendor/ceedling/lib/rules_tests.rake
ceedling-0.11.2 new_project_template/vendor/ceedling/lib/rules_tests.rake
ceedling-0.11.1 new_project_template/vendor/ceedling/lib/rules_tests.rake
ceedling-0.11.0 new_project_template/vendor/ceedling/lib/rules_tests.rake
ceedling-0.10.0 new_project_template/vendor/ceedling/lib/rules_tests.rake
ceedling-0.9.4 new_project_template/vendor/ceedling/lib/rules_tests.rake
ceedling-0.9.2 new_project_template/vendor/ceedling/lib/rules_tests.rake
ceedling-0.9.0 new_project_template/vendor/ceedling/lib/rules_tests.rake
ceedling-0.0.18 new_project_template/vendor/ceedling/lib/rules_tests.rake
ceedling-0.0.17 new_project_template/vendor/ceedling/lib/rules_tests.rake
ceedling-0.0.16 new_project_template/vendor/ceedling/lib/rules_tests.rake
ceedling-0.0.15 new_project_template/vendor/ceedling/lib/rules_tests.rake
ceedling-0.0.14 new_project_template/vendor/ceedling/lib/rules_tests.rake
ceedling-0.0.13 new_project_template/vendor/ceedling/lib/rules_tests.rake
ceedling-0.0.12 new_project_template/vendor/ceedling/lib/rules_tests.rake
ceedling-0.0.8 new_project_template/vendor/ceedling/lib/rules_tests.rake