Previously, the line read from the script was being passed through
python's string.split() and string.join() functions. This was causing
sequences of successive whitespace characters to be collapsed down to
a single space, (in turn causing spurious failures when comparing
against expected output with successive whitespace).
Rework the driver to avoid munging the line past the separation of the
first command word.
tri-trim.trace
tri-out
glxsimple-ref
tri-trim.trace
tri-out
glxsimple-ref
+glxsimple-out
+glxsimple-trim.trace
class CliDriver(Driver):
def do_apitrace(self, args):
class CliDriver(Driver):
def do_apitrace(self, args):
- cmd = [self.options.apitrace] + args[1:]
+ cmd = [self.options.apitrace] + args.split()
print " ".join(cmd)
proc = subprocess.Popen(cmd, stdout = subprocess.PIPE)
print " ".join(cmd)
proc = subprocess.Popen(cmd, stdout = subprocess.PIPE)
fail("Command failed (returned non-zero):\n " + " ".join(cmd))
def do_expect(self, args):
fail("Command failed (returned non-zero):\n " + " ".join(cmd))
def do_expect(self, args):
- expected = json.loads(" ".join(args[1:]))
+ expected = json.loads(args)
if (self.output != expected):
fail("Unexpected output:\n Expected: %s\n Received: %s\n" % (expected, self.output))
def do_rm_and_mkdir(self, args):
if (self.output != expected):
fail("Unexpected output:\n Expected: %s\n Received: %s\n" % (expected, self.output))
def do_rm_and_mkdir(self, args):
# Operate only on local directories
# Operate only on local directories
# Failing to delete a directory that doesn't exist is no failure
def rmtree_onerror(function, path, excinfo):
# Failing to delete a directory that doesn't exist is no failure
def rmtree_onerror(function, path, excinfo):
os.makedirs(dir)
def unknown_command(self, args):
os.makedirs(dir)
def unknown_command(self, args):
- fail('Broken test script: Unknown command: %s' % (args[0]))
+ fail('Broken test script: Unknown command: %s' % (args))
def run_script(self, cli_script):
"Execute the commands in the given cli script."
def run_script(self, cli_script):
"Execute the commands in the given cli script."
+ line = line.rstrip()
+
+ if " " in line:
+ (cmd, args) = line.split(None,1)
+ else:
+ cmd = line
+ args = ''
# Ignore blank lines and comments
# Ignore blank lines and comments
- if (len(cmd) == 0 or line[0] == '#'):
+ if (len(cmd) == 0 or cmd == '\n' or cmd[0] == '#'):
- if (cmd[0] == 'EXPECT_FAILURE:'):
+ if (cmd == 'EXPECT_FAILURE:'):
self.expect_failure = True
self.expect_failure = True
+ if " " in args:
+ (cmd, args) = args.split(None, 1)
+ else:
+ cmd = args
+ args = ''
- commands.get(cmd[0], self.unknown_command)(cmd)
+ commands.get(cmd, self.unknown_command)(args)
def run(self):
self.parseOptions()
def run(self):
self.parseOptions()