From 4b2c2c11848c5a8ce757c1020c511389eab99008 Mon Sep 17 00:00:00 2001 From: Francis Deslauriers Date: Tue, 20 Dec 2016 16:31:26 -0500 Subject: [PATCH] Fix: support for older versions of Babeltrace in test script MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 CC: Philippe Proulx Signed-off-by: Jérémie Galarneau --- 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 37a9b063e..16766baab 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.34.1