Module: Roby::Test::DRobyLogHelpers

Defined in:
lib/roby/test/droby_log_helpers.rb

Overview

Helpers to create droby log files for log-related tests

Instance Method Summary collapse

Instance Method Details

#droby_close_event_logObject

Close the last event log (and file) created by #droby_create_event_log



71
72
73
74
75
# File 'lib/roby/test/droby_log_helpers.rb', line 71

def droby_close_event_log
    droby_flush_cycle
    @__event_logger.close
    @__event_logger = nil
end

#droby_create_event_log(path) ⇒ DRoby::EventLogger #droby_create_event_log(path) {|| ... } ⇒ String

Create an event log file

Overloads:

  • #droby_create_event_log(path) ⇒ DRoby::EventLogger

    Create the log file and returns the event logger that allows to set it up.

    Returns:

  • #droby_create_event_log(path) {|| ... } ⇒ String

    Create the log file and let you add events to it. Close the file on block return

    Yield Parameters:

    Returns:

    • (String)

      the file’s full path

Parameters:

  • path (String)

    path to the file to create. If relative, it is placed in an automatically created temporary directory



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/roby/test/droby_log_helpers.rb', line 28

def droby_create_event_log(path)
    unless path.start_with?("/")
        dir = make_tmpdir
        path = File.join(dir, path)
    end

    @__event_log_path = path
    io = File.open(path, "w")
    logfile = DRoby::Logfile::Writer.new(io)
    @__event_logger = DRoby::EventLogger.new(logfile)
    @__cycle_start = Time.now
    @__cycle_index = 0

    return @__event_logger unless block_given?

    begin
        yield
        path
    ensure
        droby_close_event_log
    end
end

#droby_current_event_loggerObject

The event logger last created by #droby_create_event_log

This is reset with #droby_close_event_log



59
60
61
# File 'lib/roby/test/droby_log_helpers.rb', line 59

def droby_current_event_logger
    @__event_logger
end

#droby_event_log_pathObject

Path to the last log file created by #droby_create_event_log

This is reset with #droby_close_event_log



66
67
68
# File 'lib/roby/test/droby_log_helpers.rb', line 66

def droby_event_log_path
    @__event_log_path
end

#droby_flush_cycleObject

Finish the current cycle’s log and flush it to file



78
79
80
81
82
83
84
85
86
87
88
# File 'lib/roby/test/droby_log_helpers.rb', line 78

def droby_flush_cycle
    t = Time.now
    @__event_logger.flush_cycle(
        :cycle_end, t,
        [{ start: [@__cycle_start.tv_sec, @__cycle_start.tv_usec],
           end: (t - @__cycle_start),
           cycle_index: (@__cycle_index += 1) }]
    )

    @__cycle_start = t
end

#droby_write_event(method_name, *args, time: Time.now) ⇒ Object

Add an event to the current event cycle



52
53
54
# File 'lib/roby/test/droby_log_helpers.rb', line 52

def droby_write_event(method_name, *args, time: Time.now)
    @__event_logger.dump(method_name, time, args)
end