~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to testbzr

  • Committer: Martin Pool
  • Date: 2005-05-16 04:04:01 UTC
  • Revision ID: mbp@sourcefrog.net-20050516040401-ebcb03daaf34eb11
- new -p option for testbzr to use a different version of python 
  to run the bzr under test

Show diffs side-by-side

added added

removed removed

Lines of Context:
22
22
This always runs bzr as an external process to try to catch bugs
23
23
related to argument processing, startup, etc.
24
24
 
 
25
usage:
 
26
 
 
27
    testbzr [-p PYTHON] [BZR]
 
28
 
 
29
By default this tests the copy of bzr found in the same directory as
 
30
testbzr, or the first one found on the $PATH.  A copy of bzr may be
 
31
given on the command line to override this, for example when applying
 
32
a new test suite to an old copy of bzr or vice versa.
 
33
 
 
34
testbzr normally invokes bzr using the same version of python as it
 
35
would normally use to run -- that is, the system default python,
 
36
unless that is older than 2.3.  The -p option allows specification of
 
37
a different Python interpreter, such as when testing that bzr still
 
38
works on python2.3.
 
39
 
25
40
This replaces the previous test.sh which was not very portable."""
26
41
 
27
42
import sys, os, traceback
30
45
 
31
46
TESTDIR = "testbzr.tmp"
32
47
 
 
48
OVERRIDE_PYTHON = None
 
49
 
33
50
LOGFILENAME = 'testbzr.log'
34
51
 
35
52
try:
47
64
 
48
65
def formcmd(cmd):
49
66
    if isinstance(cmd, basestring):
50
 
        logfile.write('$ %s\n' % cmd)
51
67
        cmd = cmd.split()
52
 
    else:
53
 
        logfile.write('$ %r\n' % cmd)
54
68
 
55
69
    if cmd[0] == 'bzr':
56
70
        cmd[0] = BZRPATH
 
71
        if OVERRIDE_PYTHON:
 
72
            cmd.insert(0, OVERRIDE_PYTHON)
57
73
 
 
74
    logfile.write('$ %r\n' % cmd)
 
75
    
58
76
    return cmd
59
77
 
60
78
 
123
141
 
124
142
 
125
143
try:
 
144
    from getopt import getopt
 
145
    opts, args = getopt(sys.argv[1:], 'p:')
 
146
 
 
147
    for option, value in opts:
 
148
        if option == '-p':
 
149
            OVERRIDE_PYTHON = value
 
150
            
 
151
    
126
152
    mypath = os.path.abspath(sys.argv[0])
127
153
    print '%-30s %s' % ('running tests from', mypath)
128
154
 
129
155
    global BZRPATH
130
156
 
131
 
    if len(sys.argv) > 1:
132
 
        BZRPATH = sys.argv[1]
 
157
    if args:
 
158
        BZRPATH = args[1]
133
159
    else:
134
160
        BZRPATH = os.path.join(os.path.split(mypath)[0], 'bzr')
135
161
 
136
162
    print '%-30s %s' % ('against bzr', BZRPATH)
137
163
    print '%-30s %s' % ('in directory', os.getcwd())
 
164
    print '%-30s %s' % ('with python', (OVERRIDE_PYTHON or '(default)'))
138
165
    print
139
166
    print backtick([BZRPATH, 'version'])
140
167