tests/compare.py

Sun, 17 Dec 2006 09:20:02 -0500

author
brett
date
Sun, 17 Dec 2006 09:20:02 -0500
branch
trunk
changeset 10
f0acfe12a0e2
parent 8
97388f5ff770
child 14
6f9e1bb59719
permissions
-rw-r--r--

[svn] Add tests for the case where we do recursive extraction of an archive
that's not in the current working directory, and fix the associated bug.

1
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
1 #!/usr/bin/env python
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
2 #
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
3 # compare.py -- High-level tests for x.
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
4 # Copyright (c) 2006 Brett Smith <brettcsmith@brettcsmith.org>.
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
5 #
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
6 # This program is free software; you can redistribute it and/or modify it
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
7 # under the terms of the GNU General Public License as published by the
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
8 # Free Software Foundation; either version 2 of the License, or (at your
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
9 # option) any later version.
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
10 #
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
11 # This program is distributed in the hope that it will be useful, but
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
12 # WITHOUT ANY WARRANTY; without even the implied warranty of
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
14 # Public License for more details.
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
15 #
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
16 # You should have received a copy of the GNU General Public License along
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
17 # with this program; if not, write to the Free Software Foundation, Inc.,
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
18 # 51 Franklin Street, 5th Floor, Boston, MA, 02111.
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
19
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
20 import os
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
21 import subprocess
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
22 import sys
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
23
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
24 from sets import Set as set
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
25
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
26 TESTSCRIPT_NAME = 'testscript.sh'
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
27 SCRIPT_PROLOGUE = """#!/bin/sh
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
28 set -e
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
29 """
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
30
10
f0acfe12a0e2 [svn] Add tests for the case where we do recursive extraction of an archive
brett
parents: 8
diff changeset
31 tests = {'test-1.23.tar': ([], ['tar -xf $1'], []),
f0acfe12a0e2 [svn] Add tests for the case where we do recursive extraction of an archive
brett
parents: 8
diff changeset
32 'test-1.23.tar.gz': ([], ['tar -xzf $1'], []),
7
1f3cb3845dfd [svn] Add a test for recursive extraction which also makes sure that we fix
brett
parents: 1
diff changeset
33 'test-1.23.tar.bz2': ([], ['mkdir test-1.23',
1f3cb3845dfd [svn] Add a test for recursive extraction which also makes sure that we fix
brett
parents: 1
diff changeset
34 'cd test-1.23',
10
f0acfe12a0e2 [svn] Add tests for the case where we do recursive extraction of an archive
brett
parents: 8
diff changeset
35 'tar -jxf ../$1'], []),
7
1f3cb3845dfd [svn] Add a test for recursive extraction which also makes sure that we fix
brett
parents: 1
diff changeset
36 'test-1.23.zip': ([], ['mkdir test-1.23',
1f3cb3845dfd [svn] Add a test for recursive extraction which also makes sure that we fix
brett
parents: 1
diff changeset
37 'cd test-1.23',
10
f0acfe12a0e2 [svn] Add tests for the case where we do recursive extraction of an archive
brett
parents: 8
diff changeset
38 'unzip -q ../$1'], []),
7
1f3cb3845dfd [svn] Add a test for recursive extraction which also makes sure that we fix
brett
parents: 1
diff changeset
39 'test-1.23.cpio': ([], ['cpio -i --make-directories \
10
f0acfe12a0e2 [svn] Add tests for the case where we do recursive extraction of an archive
brett
parents: 8
diff changeset
40 <$1 2>/dev/null'], []),
7
1f3cb3845dfd [svn] Add a test for recursive extraction which also makes sure that we fix
brett
parents: 1
diff changeset
41 'test-1.23_all.deb': ([], ['TD=$PWD',
1f3cb3845dfd [svn] Add a test for recursive extraction which also makes sure that we fix
brett
parents: 1
diff changeset
42 'mkdir test-1.23',
1f3cb3845dfd [svn] Add a test for recursive extraction which also makes sure that we fix
brett
parents: 1
diff changeset
43 'cd /tmp',
10
f0acfe12a0e2 [svn] Add tests for the case where we do recursive extraction of an archive
brett
parents: 8
diff changeset
44 'ar x $TD/$1 data.tar.gz',
7
1f3cb3845dfd [svn] Add a test for recursive extraction which also makes sure that we fix
brett
parents: 1
diff changeset
45 'cd $TD/test-1.23',
1f3cb3845dfd [svn] Add a test for recursive extraction which also makes sure that we fix
brett
parents: 1
diff changeset
46 'tar -zxf /tmp/data.tar.gz',
1f3cb3845dfd [svn] Add a test for recursive extraction which also makes sure that we fix
brett
parents: 1
diff changeset
47 'rm /tmp/data.tar.gz'], []),
1f3cb3845dfd [svn] Add a test for recursive extraction which also makes sure that we fix
brett
parents: 1
diff changeset
48 'test-recursive-badperms.tar.bz2': (
1f3cb3845dfd [svn] Add a test for recursive extraction which also makes sure that we fix
brett
parents: 1
diff changeset
49 ['-r'],
1f3cb3845dfd [svn] Add a test for recursive extraction which also makes sure that we fix
brett
parents: 1
diff changeset
50 ['mkdir test-recursive-badperms',
1f3cb3845dfd [svn] Add a test for recursive extraction which also makes sure that we fix
brett
parents: 1
diff changeset
51 'cd test-recursive-badperms',
10
f0acfe12a0e2 [svn] Add tests for the case where we do recursive extraction of an archive
brett
parents: 8
diff changeset
52 'tar -jxf ../$1',
8
97388f5ff770 [svn] Make ExtractorApplication suck less. Now the strategies for handling
brett
parents: 7
diff changeset
53 'mkdir test-badperms',
97388f5ff770 [svn] Make ExtractorApplication suck less. Now the strategies for handling
brett
parents: 7
diff changeset
54 'cd test-badperms',
97388f5ff770 [svn] Make ExtractorApplication suck less. Now the strategies for handling
brett
parents: 7
diff changeset
55 'tar -xf ../test-badperms.tar',
97388f5ff770 [svn] Make ExtractorApplication suck less. Now the strategies for handling
brett
parents: 7
diff changeset
56 'chmod 755 testdir'],
97388f5ff770 [svn] Make ExtractorApplication suck less. Now the strategies for handling
brett
parents: 7
diff changeset
57 ['if [ "x`cat test-recursive-badperms/test-badperms/testdir/testfile`" = \
97388f5ff770 [svn] Make ExtractorApplication suck less. Now the strategies for handling
brett
parents: 7
diff changeset
58 "xhey" ]',
7
1f3cb3845dfd [svn] Add a test for recursive extraction which also makes sure that we fix
brett
parents: 1
diff changeset
59 'then exit 0; else exit 1; fi']
1f3cb3845dfd [svn] Add a test for recursive extraction which also makes sure that we fix
brett
parents: 1
diff changeset
60 )}
1
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
61
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
62 if os.path.exists('scripts/x') and os.path.exists('tests'):
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
63 os.chdir('tests')
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
64 elif os.path.exists('../scripts/x') and os.path.exists('../tests'):
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
65 pass
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
66 else:
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
67 print "ERROR: Can't run tests in this directory!"
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
68 sys.exit(2)
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
69
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
70 class ExtractorTestError(Exception):
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
71 pass
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
72
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
73
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
74 class ExtractorTest(object):
10
f0acfe12a0e2 [svn] Add tests for the case where we do recursive extraction of an archive
brett
parents: 8
diff changeset
75 def __init__(self, directory, archive_filename, info):
f0acfe12a0e2 [svn] Add tests for the case where we do recursive extraction of an archive
brett
parents: 8
diff changeset
76 self.directory = directory
f0acfe12a0e2 [svn] Add tests for the case where we do recursive extraction of an archive
brett
parents: 8
diff changeset
77 self.archive_filename = os.path.join(directory, archive_filename)
7
1f3cb3845dfd [svn] Add a test for recursive extraction which also makes sure that we fix
brett
parents: 1
diff changeset
78 self.arguments, self.shell_commands, self.shell_test = info
1
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
79
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
80 def get_results(self, commands):
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
81 status = subprocess.call(commands)
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
82 if status != 0:
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
83 return None
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
84 process = subprocess.Popen(['find'], stdout=subprocess.PIPE)
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
85 process.wait()
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
86 output = process.stdout.read(-1)
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
87 process.stdout.close()
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
88 return set(output.split('\n'))
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
89
7
1f3cb3845dfd [svn] Add a test for recursive extraction which also makes sure that we fix
brett
parents: 1
diff changeset
90 def write_script(self, commands):
1
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
91 script = open(TESTSCRIPT_NAME, 'w')
7
1f3cb3845dfd [svn] Add a test for recursive extraction which also makes sure that we fix
brett
parents: 1
diff changeset
92 script.write("%s%s\n" % (SCRIPT_PROLOGUE, '\n'.join(commands)))
1
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
93 script.close()
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
94 subprocess.call(['chmod', 'u+w', TESTSCRIPT_NAME])
7
1f3cb3845dfd [svn] Add a test for recursive extraction which also makes sure that we fix
brett
parents: 1
diff changeset
95
1f3cb3845dfd [svn] Add a test for recursive extraction which also makes sure that we fix
brett
parents: 1
diff changeset
96 def get_shell_results(self):
1f3cb3845dfd [svn] Add a test for recursive extraction which also makes sure that we fix
brett
parents: 1
diff changeset
97 self.write_script(self.shell_commands)
10
f0acfe12a0e2 [svn] Add tests for the case where we do recursive extraction of an archive
brett
parents: 8
diff changeset
98 return self.get_results(['sh', TESTSCRIPT_NAME, self.archive_filename])
1
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
99
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
100 def get_extractor_results(self):
10
f0acfe12a0e2 [svn] Add tests for the case where we do recursive extraction of an archive
brett
parents: 8
diff changeset
101 script = os.path.join(self.directory, '../scripts/x')
f0acfe12a0e2 [svn] Add tests for the case where we do recursive extraction of an archive
brett
parents: 8
diff changeset
102 return self.get_results([script] + self.arguments +
7
1f3cb3845dfd [svn] Add a test for recursive extraction which also makes sure that we fix
brett
parents: 1
diff changeset
103 [self.archive_filename])
1
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
104
7
1f3cb3845dfd [svn] Add a test for recursive extraction which also makes sure that we fix
brett
parents: 1
diff changeset
105 def get_posttest_result(self):
1f3cb3845dfd [svn] Add a test for recursive extraction which also makes sure that we fix
brett
parents: 1
diff changeset
106 if not self.shell_test:
1f3cb3845dfd [svn] Add a test for recursive extraction which also makes sure that we fix
brett
parents: 1
diff changeset
107 return 0
1f3cb3845dfd [svn] Add a test for recursive extraction which also makes sure that we fix
brett
parents: 1
diff changeset
108 self.write_script(self.shell_test)
1f3cb3845dfd [svn] Add a test for recursive extraction which also makes sure that we fix
brett
parents: 1
diff changeset
109 return subprocess.call(['sh', TESTSCRIPT_NAME])
1f3cb3845dfd [svn] Add a test for recursive extraction which also makes sure that we fix
brett
parents: 1
diff changeset
110
1
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
111 def clean(self):
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
112 status = subprocess.call(['find', '-mindepth', '1', '-maxdepth', '1',
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
113 '-type', 'd',
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
114 '!', '-name', 'CVS', '!', '-name', '.svn',
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
115 '-exec', 'rm', '-rf', '{}', ';'])
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
116 if status != 0:
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
117 raise ExtractorTestError("cleanup exited with status code %s" %
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
118 (status,))
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
119
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
120 def run(self):
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
121 self.clean()
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
122 expected = self.get_shell_results()
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
123 self.clean()
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
124 actual = self.get_extractor_results()
7
1f3cb3845dfd [svn] Add a test for recursive extraction which also makes sure that we fix
brett
parents: 1
diff changeset
125 posttest_result = self.get_posttest_result()
1
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
126 self.clean()
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
127 if expected is None:
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
128 raise ExtractorTestError("could not get baseline results")
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
129 elif actual is None:
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
130 raise ExtractorTestError("could not get extractor results")
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
131 elif expected != actual:
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
132 print "FAILED:", self.archive_filename
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
133 print "Only in baseline results:"
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
134 print '\n'.join(expected.difference(actual))
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
135 print "Only in actual results:"
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
136 print '\n'.join(actual.difference(expected))
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
137 return False
7
1f3cb3845dfd [svn] Add a test for recursive extraction which also makes sure that we fix
brett
parents: 1
diff changeset
138 elif posttest_result != 0:
1f3cb3845dfd [svn] Add a test for recursive extraction which also makes sure that we fix
brett
parents: 1
diff changeset
139 print "FAILED:", self.archive_filename
1f3cb3845dfd [svn] Add a test for recursive extraction which also makes sure that we fix
brett
parents: 1
diff changeset
140 print "Posttest returned status code", posttest_result
1f3cb3845dfd [svn] Add a test for recursive extraction which also makes sure that we fix
brett
parents: 1
diff changeset
141 print actual
1f3cb3845dfd [svn] Add a test for recursive extraction which also makes sure that we fix
brett
parents: 1
diff changeset
142 return False
1
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
143 else:
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
144 print "Passed:", self.archive_filename
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
145 return True
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
146
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
147
10
f0acfe12a0e2 [svn] Add tests for the case where we do recursive extraction of an archive
brett
parents: 8
diff changeset
148 def run_tests(directory, testnames):
f0acfe12a0e2 [svn] Add tests for the case where we do recursive extraction of an archive
brett
parents: 8
diff changeset
149 successes = 0
f0acfe12a0e2 [svn] Add tests for the case where we do recursive extraction of an archive
brett
parents: 8
diff changeset
150 failures = 0
f0acfe12a0e2 [svn] Add tests for the case where we do recursive extraction of an archive
brett
parents: 8
diff changeset
151 for testname in testnames:
f0acfe12a0e2 [svn] Add tests for the case where we do recursive extraction of an archive
brett
parents: 8
diff changeset
152 test = ExtractorTest(directory, testname, tests[testname])
f0acfe12a0e2 [svn] Add tests for the case where we do recursive extraction of an archive
brett
parents: 8
diff changeset
153 if test.run():
f0acfe12a0e2 [svn] Add tests for the case where we do recursive extraction of an archive
brett
parents: 8
diff changeset
154 successes += 1
f0acfe12a0e2 [svn] Add tests for the case where we do recursive extraction of an archive
brett
parents: 8
diff changeset
155 else:
f0acfe12a0e2 [svn] Add tests for the case where we do recursive extraction of an archive
brett
parents: 8
diff changeset
156 failures += 1
f0acfe12a0e2 [svn] Add tests for the case where we do recursive extraction of an archive
brett
parents: 8
diff changeset
157 return successes, failures
f0acfe12a0e2 [svn] Add tests for the case where we do recursive extraction of an archive
brett
parents: 8
diff changeset
158
f0acfe12a0e2 [svn] Add tests for the case where we do recursive extraction of an archive
brett
parents: 8
diff changeset
159 results = []
1
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
160 testnames = tests.keys()
a86a0cb0dd57 [svn] Repository reorganization to make tags easy
brett
parents:
diff changeset
161 testnames.sort()
10
f0acfe12a0e2 [svn] Add tests for the case where we do recursive extraction of an archive
brett
parents: 8
diff changeset
162 results.append(run_tests('.', testnames))
f0acfe12a0e2 [svn] Add tests for the case where we do recursive extraction of an archive
brett
parents: 8
diff changeset
163 os.mkdir('inside-dir')
f0acfe12a0e2 [svn] Add tests for the case where we do recursive extraction of an archive
brett
parents: 8
diff changeset
164 os.chdir('inside-dir')
f0acfe12a0e2 [svn] Add tests for the case where we do recursive extraction of an archive
brett
parents: 8
diff changeset
165 results.append(run_tests('..', testnames))
f0acfe12a0e2 [svn] Add tests for the case where we do recursive extraction of an archive
brett
parents: 8
diff changeset
166 os.chdir('..')
f0acfe12a0e2 [svn] Add tests for the case where we do recursive extraction of an archive
brett
parents: 8
diff changeset
167 subprocess.call(['rm', '-rf', 'inside-dir'])
f0acfe12a0e2 [svn] Add tests for the case where we do recursive extraction of an archive
brett
parents: 8
diff changeset
168 print "Totals: %s successes, %s failures" % \
f0acfe12a0e2 [svn] Add tests for the case where we do recursive extraction of an archive
brett
parents: 8
diff changeset
169 tuple([sum(total) for total in zip(*results)])

mercurial