diff mbox

[OSSTEST,v14,18/24] TestSupport: Introduce target_cmd_stashed

Message ID 20170728135625.30263-19-anthony.perard@citrix.com (mailing list archive)
State New, archived
Headers show

Commit Message

Anthony PERARD July 28, 2017, 1:56 p.m. UTC
This works like target_cmd, but takes a ref to a filename as argument
and stash the output of the command then return a path to the stashed
output.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---

Notes:
    Changes in V14:
    - Use filename for error message instead of file handle.

 Osstest/TestSupport.pm | 11 +++++++++++
 1 file changed, 11 insertions(+)

Comments

Ian Jackson July 28, 2017, 2:19 p.m. UTC | #1
Anthony PERARD writes ("[OSSTEST PATCH v14 18/24] TestSupport: Introduce target_cmd_stashed"):
> This works like target_cmd, but takes a ref to a filename as argument
> and stash the output of the command then return a path to the stashed
> output.
> 
> Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>

Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
diff mbox

Patch

diff --git a/Osstest/TestSupport.pm b/Osstest/TestSupport.pm
index 7215156..c5790da 100644
--- a/Osstest/TestSupport.pm
+++ b/Osstest/TestSupport.pm
@@ -55,6 +55,7 @@  BEGIN {
 
                       target_cmd_root_status target_cmd_output_root_status
                       target_cmd_root target_cmd target_cmd_build
+                      target_cmd_stashed
                       target_cmd_output_root target_cmd_output
                       target_cmd_inputfh_root sshuho
                       target_getfile target_getfile_root
@@ -764,6 +765,16 @@  sub target_cmd_inputfh_root ($$$;$$) {
     tcmd($stdinfh,undef,0,'root',$tho,$tcmd,@rest);
 }
 
+# Like target_cmd, but stash cmd stdout and return a path to it.
+sub target_cmd_stashed ($$$;$$) {
+    my ($tho,$leafref,$tcmd,$timeout,$extrasshopts) = @_;
+    my $stdout = open_unique_stashfile($leafref);
+    my $rc = tcmd(undef, $stdout, 0, 'osstest', $tho, $tcmd, $timeout,
+        $extrasshopts);
+    die "$stash/$$leafref: $!" if $stdout->error or !close $stdout;
+    return "$stash/$$leafref";
+}
+
 sub poll_loop ($$$&) {
     my ($maxwait, $interval, $what, $code) = @_;
     # $code should return undef when all is well