Class: TaskInvoker

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

Overview

Ceedling - Test-Centered Build System for C
ThrowTheSwitch.org
Copyright (c) 2010-25 Mike Karlesky, Mark VanderVoord, & Greg Williams
SPDX-License-Identifier: MIT

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#first_runObject

Returns the value of attribute first_run.



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

def first_run
  @first_run
end

Instance Method Details

#add_release_task_regex(regex) ⇒ Object



27
28
29
# File 'lib/ceedling/task_invoker.rb', line 27

def add_release_task_regex(regex)
  @release_regexs << regex
end

#add_test_task_regex(regex) ⇒ Object



23
24
25
# File 'lib/ceedling/task_invoker.rb', line 23

def add_test_task_regex(regex)
  @test_regexs << regex
end

#invoke_release_objects(objects) ⇒ Object



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

def invoke_release_objects(objects)
  @batchinator.exec(workload: :compile, things: objects) do |object|
    @rake_wrapper[object].invoke
  end
end

#invoke_test_objects(test:, objects:) ⇒ Object



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

def invoke_test_objects(test:, objects:)
  @batchinator.exec(workload: :compile, things: objects) do |object|
    # Encode context with concatenated compilation target: <test name>+<object file>
    @rake_wrapper["#{test}+#{object}"].invoke
  end
end

#invoked?(regex) ⇒ Boolean

Returns:

  • (Boolean)


53
54
55
# File 'lib/ceedling/task_invoker.rb', line 53

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

#release_invoked?Boolean

Returns:

  • (Boolean)


42
43
44
45
46
47
48
49
50
51
# File 'lib/ceedling/task_invoker.rb', line 42

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

#setupObject



14
15
16
17
18
19
20
21
# File 'lib/ceedling/task_invoker.rb', line 14

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

  # Alias for brevity
  @batchinator = @build_batchinator
end

#test_invoked?Boolean

Returns:

  • (Boolean)


31
32
33
34
35
36
37
38
39
40
# File 'lib/ceedling/task_invoker.rb', line 31

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