From 9365e7673bfb490edbad02dfbf449d3da5deed98 Mon Sep 17 00:00:00 2001 From: Stefan Majewsky Date: Fri, 7 Jul 2017 12:24:09 +0200 Subject: more compact specification of recorded commands --- pkg/rtree/shared_test.go | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'pkg/rtree/shared_test.go') diff --git a/pkg/rtree/shared_test.go b/pkg/rtree/shared_test.go index cad9378..3dadcec 100644 --- a/pkg/rtree/shared_test.go +++ b/pkg/rtree/shared_test.go @@ -137,6 +137,24 @@ type RecordedCommand struct { Fails bool } +//Recorded is a shortcut function for initializing a []RecordedCommand. It +//splits each line on whitespace to obtain the command line of that command, +//and recognizes a leading "@/some/path" to set the workdir. +// +//This function can only be used for RecordedCommands without output that do not fail. +func Recorded(lines ...string) (cs []RecordedCommand) { + cs = make([]RecordedCommand, len(lines)) + for idx, line := range lines { + cmdline := strings.Fields(line) + if strings.HasPrefix(cmdline[0], "@") { + cs[idx].Cmd.WorkDir = strings.TrimPrefix(cmdline[0], "@") + cmdline = cmdline[1:] + } + cs[idx].Cmd.Program = cmdline + } + return +} + //CommandSimulator implements the cli.CommandRunner interface (via its Next //method). When a cli.Command is given to Next(), it is matched with the next //command in the .Cmd list, and the result from that RecordedCommand is -- cgit v1.3.1