]> xenbits.xensource.com Git - osstest.git/commitdiff
runvar access: Provide runvar_glob
authorIan Jackson <ian.jackson@eu.citrix.com>
Fri, 21 Aug 2020 11:47:02 +0000 (12:47 +0100)
committerIan Jackson <iwj@xenproject.org>
Wed, 7 Oct 2020 16:48:33 +0000 (17:48 +0100)
We will need this because when runvar access is restricted, accessing
via %r directly won't work.  We want to see what patterns the code is
interested in (so that interest in a nonexistent runvar is properly
tracked).

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
Osstest/TestSupport.pm

index b1eca0a906e22e49f95cf912f83a4c37392130d0..6403e52bdae6ef1991c796b726c4cb734b69fd17 100644 (file)
@@ -53,7 +53,7 @@ BEGIN {
                       store_runvar get_runvar get_runvar_maybe
                       get_runvar_default need_runvars
                       unique_incrementing_runvar next_unique_name
-                      stashfilecontents runvar_is_synth
+                      stashfilecontents runvar_is_synth runvar_glob
 
                       target_cmd_root_status target_cmd_output_root_status
                       target_cmd_root target_cmd target_cmd_build
@@ -3187,6 +3187,20 @@ sub runvar_access_check ($$) {
     Carp::cluck $m;
 }
 
+sub runvar_glob {
+    my $monitor = tied %r;
+    my $realr = $monitor || \%r;
+    my @out;
+    foreach my $pat (@_) {
+       if ($monitor) { runvar_access_check($pat, 'scan') }
+       foreach my $key (sort keys %$realr) {
+           next unless fnmatch $pat, $key;
+           push @out, $key;
+       }
+    }
+    @out;
+}
+
 package RunvarMonitor;
 use Carp;
 use Osstest;