Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Test2::Harness::AuditoUseriContributed)Test2::Harness::Auditor::TimeTracker(3)

NAME
       Test2::Harness::Auditor::TimeTracker - Module that tracks timing	data
       while an	event stream is	processed.

DESCRIPTION
       The timetracker module tracks timing data of an event stream. All
       events for a given job should be	run through a timetracker, which can
       then give data on how long the test took	in each	of several stages.

       startup - Time from launch to first test	event.
       events -	Time spent generating test events.
       cleanup - Time from last	test event to test exit.
       total - Total time.

SYNOPSIS
	   use Test2::Harness::Auditor::TimeTracker;

	   my $tracker = Test2::Harness::Auditor::TimeTracker->new();

	   my $assert_count = 0;
	   for my $event (@events) {
	       my $facet_data =	$events->facet_data;
	       $assert_count++ if $facet_data->{assert};
	       $tracker->process($event, $facet_data, $assert_count);
	   }

	   print $tracker->summary;
	   # Startup: 0.00708s | Events: 0.00000s | Cleanup: 0.10390s |	Total: 0.11098s

METHODS
       $tracker->process($event, $facet_data, $assert_count)
       $tracker->process($event, undef,	$assert_count)
	   TimeTracker builds its state	from multiple events, each event
	   should be processed by this method.

	   The second argument is optional, if no facet_data is	provided it
	   will	pull the facet_data from the event itself. This	is mainly a
	   micro-optimization to avoid calling the "facet_data()" method on
	   the event multiple times if you have	already	called it.

       $bool = $tracker->useful()
	   Returns true	if there is any	useful data to display.

       $totals = $tracker->totals()
	   Returns the totals like this:

	       {
		   # Raw numbers
		   startup => ...,
		   events  => ...,
		   cleanup => ...,
		   total   => ...,

		   # Human friendly versions
		   h_startup =>	...,
		   h_events  =>	...,
		   h_cleanup =>	...,
		   h_total   =>	...,
	       }

       $source = $tracker->source()
	   This	method returns the data	from which the totals are derived.

	       {
		   start => ...,    # timestamp	of the job starting
		   stop	 => ...,    # timestamp	of the job ending
		   first => ...,    # timestamp	of the first non-harness event
		   last	 => ...,    # timestamp	of the last non-harness	event

		   # These are event_id's of the events	that provided the above	stamps.
		   start_id    => ...,
		   stop_id     => ...,
		   first_id    => ...,
		   last_id     => ...,
		   complete_id => ...,
	       }

       $data = $tracker->data_dump
	   This	dumps the totals and source data:

	       {
		   totals => $tracker->totals,
		   source => $tracker->source,
	       }

       $string = $tracker->summary
	   This	produces a summary string of the totals	data:

	       Startup:	0.00708s | Events: 0.00000s | Cleanup: 0.10390s	| Total: 0.11098s

	   Fields that have no data will be ommited from the string.

       $table =	$tracker->table
	   Returns this	structure that is good for use in Term::Table.

	       {
		   header => ["Phase", "Time", "Raw", "Explanation"],
		   rows	  => [
		       ['startup', $human_readible, $raw, "Time	from launch to first test event."],
		       ['events',  $human_radible,  $raw, 'Time	spent generating test events.'],
		       ['cleanup', $human_radible,  $raw, 'Time	from last test event to	test exit.'],
		       ['total',   $human_radible,  $raw, 'Total time.'],
		   ],
	       }

       @items =	$tracker->job_fields()
	   This	is used	to obtain extra	data to	attach to the job completion
	   event.

SOURCE
       The source code repository for Test2-Harness can	be found at
       http://github.com/Test-More/Test2-Harness/.

MAINTAINERS
       Chad Granum <exodist@cpan.org>

AUTHORS
       Chad Granum <exodist@cpan.org>

COPYRIGHT
       Copyright 2020 Chad Granum <exodist7@gmail.com>.

       This program is free software; you can redistribute it and/or modify it
       under the same terms as Perl itself.

       See http://dev.perl.org/licenses/

perl v5.32.0			  2020-Test2::Harness::Auditor::TimeTracker(3)

NAME | DESCRIPTION | SYNOPSIS | METHODS | SOURCE | MAINTAINERS | AUTHORS | COPYRIGHT

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Test2::Harness::Auditor::TimeTracker&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help