Module: tools Branch: master Commit: 2f043aaf3b5aff2478343ddc2b7cf4391182e72a URL: https://source.winehq.org/git/tools.git/?a=commit;h=2f043aaf3b5aff2478343ddc...
Author: Francois Gouget fgouget@codeweavers.com Date: Mon Jan 25 14:52:28 2021 +0100
testbot/LogUtils: Add support for arrays in .errors files.
Array lines allow providing multiple values for a given 'property' name.
Signed-off-by: Francois Gouget fgouget@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
testbot/lib/WineTestBot/LogUtils.pm | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-)
diff --git a/testbot/lib/WineTestBot/LogUtils.pm b/testbot/lib/WineTestBot/LogUtils.pm index 3488c7b..7971435 100644 --- a/testbot/lib/WineTestBot/LogUtils.pm +++ b/testbot/lib/WineTestBot/LogUtils.pm @@ -848,6 +848,10 @@ Property lines contain (name, value) pairs. Note that properties which can be calculated while reading the errors file are not saved (e.g. ErrCount and NewCount).
+=item a <name> <value> +Array lines contain (name, value) pairs and can appear multiple times for a +given name, resulting in a corresponding list of values. + =item g <lineno> <groupname> Group lines contain the group name and the line number of the first line of the group in the log. Note that the first line would typically not be an @@ -897,6 +901,22 @@ sub LoadLogErrorsFromFh($$) return $Line; } } + elsif ($Type eq "a") + { + if (!defined $LogInfo->{$Property}) + { + $LogInfo->{$Property} = [ $Value ]; + } + elsif (ref($LogInfo->{$Property}) eq "ARRAY") + { + push @{$LogInfo->{$Property}}, $Value; + } + else + { + $LogInfo->{BadLog} = "$LogInfo->{LineNo}: $Property is not an array, its value is $LogInfo->{$Property}"; + return $Line; + } + } elsif ($Type eq "g") { $LogInfo->{CurGroup} = _AddLogGroup($LogInfo, $Value, $Property); @@ -1025,7 +1045,15 @@ sub _DumpErrors next; }
- print STDERR "+ $Key $LogInfo->{$Key}\n"; + if (ref($LogInfo->{$Key}) eq "ARRAY") + { + print STDERR "+ $Key\n"; + map { print STDERR " | $_\n" } (@{$LogInfo->{$Key}}); + } + else + { + print STDERR "+ $Key $LogInfo->{$Key}\n"; + } } _WriteLogErrorsToFh(*STDERR, $LogInfo); map { _DumpErrors("$Label.$_", $LogInfo->{$_}) } (@SubKeys);