From 5c6bd4339bdd7c803e30bdab765730bc7f2bd358 Mon Sep 17 00:00:00 2001 From: Carl Worth Date: Tue, 14 Aug 2012 16:50:00 -0700 Subject: [PATCH] cli_driver: Rework driver script to preserve json-embedded whitespace 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. --- cli/.gitignore | 2 ++ cli/glxsimple.trace | Bin 0 -> 42592 bytes cli_driver.py | 30 +++++++++++++++++++++--------- 3 files changed, 23 insertions(+), 9 deletions(-) create mode 100644 cli/glxsimple.trace diff --git a/cli/.gitignore b/cli/.gitignore index 64d0e40..214d7f2 100644 --- a/cli/.gitignore +++ b/cli/.gitignore @@ -2,4 +2,6 @@ tri-trim.trace tri-out glxsimple-ref +glxsimple-out +glxsimple-trim.trace diff --git a/cli/glxsimple.trace b/cli/glxsimple.trace new file mode 100644 index 0000000000000000000000000000000000000000..9c22592ea950878603fb42b10027f191edc315f8 GIT binary patch literal 42592 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
    Q^V6jCY%=Oqwj9U8DMZfVP~@9}nwB2qYg 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 Wce_Khj1^{AKJRi>?r(UAU7^1cYP(MW literal 0 HcmV?d00001 diff --git a/cli_driver.py b/cli_driver.py index d4d277d..5139b1d 100644 --- a/cli_driver.py +++ b/cli_driver.py @@ -31,7 +31,7 @@ from base_driver import * 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) @@ -47,14 +47,16 @@ class CliDriver(Driver): 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): + args = args.split() + # Operate only on local directories - dir = './' + args[1] + dir = './' + args[0] # Failing to delete a directory that doesn't exist is no failure def rmtree_onerror(function, path, excinfo): @@ -65,7 +67,7 @@ class CliDriver(Driver): 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." @@ -88,17 +90,27 @@ class CliDriver(Driver): if (line == ''): break - cmd = line.split() + line = line.rstrip() + + if " " in line: + (cmd, args) = line.split(None,1) + else: + cmd = line + args = '' # Ignore blank lines and comments - if (len(cmd) == 0 or line[0] == '#'): + if (len(cmd) == 0 or cmd == '\n' or cmd[0] == '#'): continue - if (cmd[0] == 'EXPECT_FAILURE:'): + if (cmd == 'EXPECT_FAILURE:'): self.expect_failure = True - cmd.pop(0) + 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() -- 2.43.0