Class: TaskInvoker

Inherits:
Object show all
Defined in:
lib/ceedling/task_invoker.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#first_runObject

Returns the value of attribute first_run.



5
6
7
# File 'lib/ceedling/task_invoker.rb', line 5

def first_run
  @first_run
end

Instance Method Details

#add_release_task_regex(regex) ⇒ Object



19
20
21
# File 'lib/ceedling/task_invoker.rb', line 19

def add_release_task_regex(regex)
  @release_regexs << regex
end

#add_test_task_regex(regex) ⇒ Object



15
16
17
# File 'lib/ceedling/task_invoker.rb', line 15

def add_test_task_regex(regex)
  @test_regexs << regex
end

#invoke_release_dependencies_files(files) ⇒ Object



110
111
112
113
114
# File 'lib/ceedling/task_invoker.rb', line 110

def invoke_release_dependencies_files(files)
  par_map(PROJECT_COMPILE_THREADS, files) do |file|
    @rake_wrapper[file].invoke
  end
end

#invoke_release_objects(objects) ⇒ Object



116
117
118
119
120
# File 'lib/ceedling/task_invoker.rb', line 116

def invoke_release_objects(objects)
  par_map(PROJECT_COMPILE_THREADS, objects) do |object|
    @rake_wrapper[object].invoke
  end
end

#invoke_test_dependencies_files(files) ⇒ Object



86
87
88
89
90
91
92
# File 'lib/ceedling/task_invoker.rb', line 86

def invoke_test_dependencies_files(files)
  @dependinator.enhance_dependencies_dependencies( files )
  par_map(PROJECT_COMPILE_THREADS, files) do |file|
    reset_rake_task_for_changed_defines( file )
    @rake_wrapper[file].invoke
  end
end

#invoke_test_executable(file) ⇒ Object



101
102
103
# File 'lib/ceedling/task_invoker.rb', line 101

def invoke_test_executable(file)
  @rake_wrapper[file].invoke
end

#invoke_test_mocks(mocks) ⇒ Object



56
57
58
59
60
61
62
# File 'lib/ceedling/task_invoker.rb', line 56

def invoke_test_mocks(mocks)
  @dependinator.enhance_mock_dependencies( mocks )
  mocks.each { |mock|
    reset_rake_task_for_changed_defines( mock )
    @rake_wrapper[mock].invoke
  }
end

#invoke_test_objects(objects) ⇒ Object



94
95
96
97
98
99
# File 'lib/ceedling/task_invoker.rb', line 94

def invoke_test_objects(objects)
  par_map(PROJECT_COMPILE_THREADS, objects) do |object|
    reset_rake_task_for_changed_defines( object )
    @rake_wrapper[object].invoke
  end
end

#invoke_test_preprocessed_files(files) ⇒ Object



78
79
80
81
82
83
84
# File 'lib/ceedling/task_invoker.rb', line 78

def invoke_test_preprocessed_files(files)
  @dependinator.enhance_preprocesed_file_dependencies( files )
  par_map(PROJECT_COMPILE_THREADS, files) do |file|
    reset_rake_task_for_changed_defines( file )
    @rake_wrapper[file].invoke
  end
end

#invoke_test_results(result) ⇒ Object



105
106
107
108
# File 'lib/ceedling/task_invoker.rb', line 105

def invoke_test_results(result)
  @dependinator.enhance_results_dependencies( result )
  @rake_wrapper[result].invoke
end

#invoke_test_runner(runner) ⇒ Object



64
65
66
67
68
# File 'lib/ceedling/task_invoker.rb', line 64

def invoke_test_runner(runner)
  @dependinator.enhance_runner_dependencies( runner )
  reset_rake_task_for_changed_defines( runner )
  @rake_wrapper[runner].invoke
end

#invoke_test_shallow_include_lists(files) ⇒ Object



70
71
72
73
74
75
76
# File 'lib/ceedling/task_invoker.rb', line 70

def invoke_test_shallow_include_lists(files)
  @dependinator.enhance_shallow_include_lists_dependencies( files )
  par_map(PROJECT_COMPILE_THREADS, files) do |file|
    reset_rake_task_for_changed_defines( file )
    @rake_wrapper[file].invoke
  end
end

#invoked?(regex) ⇒ Boolean

Returns:

  • (Boolean)


45
46
47
# File 'lib/ceedling/task_invoker.rb', line 45

def invoked?(regex)
  return @rake_utils.task_invoked?(regex)
end

#release_invoked?Boolean

Returns:

  • (Boolean)


34
35
36
37
38
39
40
41
42
43
# File 'lib/ceedling/task_invoker.rb', line 34

def release_invoked?
  invoked = false
  
  @release_regexs.each do |regex|
    invoked = true if (@rake_utils.task_invoked?(regex))
    break if invoked
  end
  
  return invoked
end

#reset_rake_task_for_changed_defines(file) ⇒ Object



49
50
51
52
53
54
# File 'lib/ceedling/task_invoker.rb', line 49

def reset_rake_task_for_changed_defines(file)
  if !(file =~ /#{VENDORS_FILES.map{|ignore| '\b' + ignore.ext(File.extname(file)) + '\b'}.join('|')}$/)
    @rake_wrapper[file].clear_actions if @first_run == false && @project_config_manager.test_defines_changed
    @rake_wrapper[file].reenable if @first_run == false && @project_config_manager.test_defines_changed
  end
end

#setupObject



9
10
11
12
13
# File 'lib/ceedling/task_invoker.rb', line 9

def setup
  @test_regexs = [/^#{TEST_ROOT_NAME}:/]
  @release_regexs = [/^#{RELEASE_ROOT_NAME}(:|$)/]
  @first_run = true
end

#test_invoked?Boolean

Returns:

  • (Boolean)


23
24
25
26
27
28
29
30
31
32
# File 'lib/ceedling/task_invoker.rb', line 23

def test_invoked?
  invoked = false
  
  @test_regexs.each do |regex|
    invoked = true if (@rake_utils.task_invoked?(regex))
    break if invoked
  end
  
  return invoked
end