[lttng-dev] [PATCH lttng-tools] Fix: support for older versions of Babeltrace in test script
Jérémie Galarneau
jeremie.galarneau at efficios.com
Mon Jan 9 19:11:27 UTC 2017
Merged, thanks!
Jérémie
On 20 December 2016 at 16:31, Francis Deslauriers
<francis.deslauriers at efficios.com> wrote:
> A new context field was introduced in version LTTng 2.8 that is printed
> by Babeltrace prior to v1.2.5. This regex thus fails to match the
> output. Since the context fields are not used by the script, we create a
> non-capturing group for these fields that matches on both old and new
> Babeltrace.
> This is causing problems on Ubuntu 14.04 Trusty when building
> lttng-tools from source and using the Babeltrace package from the
> official repository (v1.2.1) to run the test suite.
>
> Also, this patch removes commented and used code in the function but
> keeps the names of non-capturing groups for readability.
>
> Signed-off-by: Francis Deslauriers <francis.deslauriers at efficios.com>
> CC: Philippe Proulx <pproulx at efficios.com>
> ---
> tests/utils/babelstats.pl | 31 +++++++++----------------------
> 1 file changed, 9 insertions(+), 22 deletions(-)
>
> diff --git a/tests/utils/babelstats.pl b/tests/utils/babelstats.pl
> index 37a9b06..16766ba 100755
> --- a/tests/utils/babelstats.pl
> +++ b/tests/utils/babelstats.pl
> @@ -141,31 +141,18 @@ my @events;
>
> while (<>)
> {
> - my $timestamp = '\[(.*)\]';
> - my $elapsed = '\((.*)\)';
> - my $hostname = '.*';
> - my $pname = '.*';
> - my $pinfo = '.*';
> - my $pid = '\d+';
> - my $tp_event = '.*';
> - my $cpu_info = '{\scpu_id\s=\s(\d+)\s\}';
> - my $fields = '{(.*)}';
> + my $timestamp = '\[(?:.*)\]';
> + my $elapsed = '\((?:.*)\)';
> + my $hostname = '(?:.*)';
> + my $tp_event = '(.*)';
> + my $pkt_context = '(?:\{[^}]*\},\s)*';
> + my $fields = '\{(.*)\}$';
>
> # Parse babeltrace text output format
> - if (/$timestamp\s$elapsed\s($pinfo)\s($tp_event):\s$cpu_info,\s$fields/) {
> + if (/$timestamp\s$elapsed\s$hostname\s$tp_event:\s$pkt_context$fields/) {
> my %event_hash;
> - $event_hash{'timestamp'} = $1;
> - $event_hash{'elapsed'} = $2;
> - $event_hash{'pinfo'} = $3;
> -
> -# my @split_pinfo = split(':', $3);
> -# $event_hash{'hostname'} = $split_pinfo[0];
> -# $event_hash{'pname'} = defined($split_pinfo[1]) ? $split_pinfo[1] : undef;
> -# $event_hash{'pid'} = defined($split_pinfo[2]) ? $split_pinfo[2] : undef;
> -
> - $event_hash{'tp_event'} = $4;
> - $event_hash{'cpu_id'} = $5;
> - $event_hash{'fields'} = parse_fields($6);
> + $event_hash{'tp_event'} = $1;
> + $event_hash{'fields'} = parse_fields($2);
>
> push @events, \%event_hash;
> }
> --
> 2.7.4
>
--
Jérémie Galarneau
EfficiOS Inc.
http://www.efficios.com
More information about the lttng-dev
mailing list