diff options
Diffstat (limited to 'tester')
-rw-r--r-- | tester/rt/config.py | 10 | ||||
-rw-r--r-- | tester/rt/console.py | 16 | ||||
-rw-r--r-- | tester/rt/gdb.py | 61 | ||||
-rw-r--r-- | tester/rt/options.py | 15 | ||||
-rw-r--r-- | tester/rt/pygdb/__init__.py | 5 | ||||
-rwxr-xr-x | tester/rt/pygdb/mi_parser.py | 32 | ||||
-rw-r--r-- | tester/rt/pygdb/spark.py | 79 | ||||
-rw-r--r-- | tester/rt/stty.py | 10 | ||||
-rw-r--r-- | tester/rt/test.py | 38 | ||||
-rw-r--r-- | tester/rt/version.py | 16 | ||||
-rwxr-xr-x | tester/rtems-test | 6 |
11 files changed, 154 insertions, 134 deletions
diff --git a/tester/rt/config.py b/tester/rt/config.py index ac9c8aa..1662f52 100644 --- a/tester/rt/config.py +++ b/tester/rt/config.py @@ -1,6 +1,6 @@ # # RTEMS Tools Project (http://www.rtems.org/) -# Copyright 2013-2014 Chris Johns (chrisj@rtems.org) +# Copyright 2013-2016 Chris Johns (chrisj@rtems.org) # All rights reserved. # # This file is part of the RTEMS Tools package in 'rtems-tools'. @@ -32,6 +32,8 @@ # RTEMS Testing Config # +from __future__ import print_function + import datetime import os import threading @@ -42,8 +44,8 @@ from rtemstoolkit import execute from rtemstoolkit import log from rtemstoolkit import path -import console -import gdb +from . import console +from . import gdb timeout = 15 @@ -185,7 +187,7 @@ class file(config.file): def _realtime_trace(self, text): if self.realtime_trace: for l in text: - print ' '.join(l) + print(' '.join(l)) def run(self): self.load(self.name) diff --git a/tester/rt/console.py b/tester/rt/console.py index 74ec3bf..c473ad2 100644 --- a/tester/rt/console.py +++ b/tester/rt/console.py @@ -1,6 +1,6 @@ # # RTEMS Tools Project (http://www.rtems.org/) -# Copyright 2013-2014 Chris Johns (chrisj@rtems.org) +# Copyright 2013-2016 Chris Johns (chrisj@rtems.org) # All rights reserved. # # This file is part of the RTEMS Tools package in 'rtems-tools'. @@ -32,13 +32,15 @@ # RTEMS Testing Consoles # +from __future__ import print_function + import errno import fcntl import os import threading import time -import stty +from . import stty def save(): return stty.save() @@ -90,7 +92,7 @@ class tty(console): def __del__(self): super(tty, self).__del__() if self._tracing(): - print ':: tty close', self.dev + print(':: tty close', self.dev) fcntl.fcntl(me.tty.fd, fcntl.F_SETFL, fcntl.fcntl(me.tty.fd, fcntl.F_GETFL) & ~os.O_NONBLOCK) self.close() @@ -98,7 +100,7 @@ class tty(console): def open(self): def _readthread(me, x): if self._tracing(): - print ':: tty runner started', self.dev + print(':: tty runner started', self.dev) fcntl.fcntl(me.tty.fd, fcntl.F_SETFL, fcntl.fcntl(me.tty.fd, fcntl.F_GETFL) | os.O_NONBLOCK) line = '' @@ -106,7 +108,7 @@ class tty(console): time.sleep(0.05) try: data = me.tty.fd.read() - except IOError, ioe: + except IOError as ioe: if ioe.errno == errno.EAGAIN: continue raise @@ -121,9 +123,9 @@ class tty(console): me.output(line) line = '' if self._tracing(): - print ':: tty runner finished', self.dev + print(':: tty runner finished', self.dev) if self._tracing(): - print ':: tty open', self.dev + print(':: tty open', self.dev) self.tty = stty.tty(self.dev) self.tty.set(self.setup) self.tty.on() diff --git a/tester/rt/gdb.py b/tester/rt/gdb.py index 956b395..c054422 100644 --- a/tester/rt/gdb.py +++ b/tester/rt/gdb.py @@ -1,6 +1,6 @@ # # RTEMS Tools Project (http://www.rtems.org/) -# Copyright 2013-2014 Chris Johns (chrisj@rtems.org) +# Copyright 2013-2016 Chris Johns (chrisj@rtems.org) # All rights reserved. # # This file is part of the RTEMS Tools package in 'rtems-tools'. @@ -32,19 +32,26 @@ # RTEMS Testing GDB Interface # +from __future__ import print_function + import os -import Queue import sys import termios import threading +try: + import queue +except ImportError: + import Queue + queue = Queue + from rtemstoolkit import error from rtemstoolkit import execute from rtemstoolkit import options from rtemstoolkit import path -import console -import pygdb +from . import console +from . import pygdb # # The MI parser needs a global lock. It has global objects. @@ -65,8 +72,8 @@ class gdb(object): self.bsp_arch = bsp_arch self.output = None self.gdb_console = None - self.input = Queue.Queue() - self.commands = Queue.Queue() + self.input = queue.Queue() + self.commands = queue.Queue() self.process = None self.state = {} self.running = False @@ -77,12 +84,12 @@ class gdb(object): def _lock(self, msg): if self.lock_trace: - print '|[ LOCK:%s ]|' % (msg) + print('|[ LOCK:%s ]|' % (msg)) self.lock.acquire() def _unlock(self, msg): if self.lock_trace: - print '|] UNLOCK:%s [|' % (msg) + print('|] UNLOCK:%s [|' % (msg)) self.lock.release() def _mi_lock(self): @@ -93,7 +100,7 @@ class gdb(object): def _put(self, text): if self.trace: - print ')))', text + print(')))', text) self.commands.put(text) def _input_commands(self): @@ -101,11 +108,11 @@ class gdb(object): return False try: if self.trace: - print '... input empty ', self.input.empty() + print('... input empty ', self.input.empty()) if self.input.empty(): line = self.commands.get(block = False) if self.trace: - print '+++', line + print('+++', line) self.input.put(line) except: pass @@ -114,12 +121,12 @@ class gdb(object): def _reader(self, line): self._lock('_reader') if self.trace: - print '<<<', line + print('<<<', line) try: self.lc += 1 if line.startswith('(gdb)'): if self.trace: - print '^^^ (gdb)' + print('^^^ (gdb)') if not self._input_commands(): self.gdb_expect() self._input_commands() @@ -139,18 +146,18 @@ class gdb(object): self._unlock('_open') line = self.input.get(timeout = 0.5) if self.trace: - print '>>> input: queue=%d' % (self.input.qsize()), line - except Queue.Empty: + print('>>> input: queue=%d' % (self.input.qsize()), line) + except queue.Empty: return True if line is None: return None return line + os.linesep except: if self.trace: - print 'writer exception' + print('writer exception') pass if self.trace: - print 'writer closing' + print('writer closing') return False def _timeout(self): @@ -207,7 +214,7 @@ class gdb(object): self.gdb_console('gdb: %s' % (' '.join(cmds))) ec, proc = self.process.open(cmds, timeout = (timeout, self._timeout)) if self.trace: - print 'gdb done', ec + print('gdb done', ec) if ec > 0: raise error.general('gdb exec: %s: %s' % (cmds[0], os.strerror(ec))) except: @@ -220,7 +227,7 @@ class gdb(object): def gdb_expect(self): if self.trace: - print '}}} gdb-expect' + print('}}} gdb-expect') if self.process and not self.running and self.script is not None: if self.script_line == len(self.script): self._put(None) @@ -239,12 +246,12 @@ class gdb(object): self._mi_lock() try: if self.mi_trace: - print 'mi-data:', lines + print('mi-data:', lines) rec = pygdb.mi_parser.process(lines) finally: self._mi_unlock() if self.mi_trace: - print 'mi-rec:', rec + print('mi-rec:', rec) if rec.record_type == 'result': if rec.type == 'result': if rec.class_ == 'error': @@ -256,12 +263,12 @@ class gdb(object): elif rec.type == 'exec': if rec.class_ == 'running': if self.trace: - print '*** running' + print('*** running') self._put('') self.running = True elif rec.class_ == 'stopped': if self.trace: - print '*** stopped' + print('*** stopped') self.running = False #self._put('-data-list-register-values') elif rec.type == 'breakpoint': @@ -284,13 +291,13 @@ class gdb(object): if last_lf >= 0: lines = self.output_buffer[:last_lf] if self.trace: - print '/// console output' + print('/// console output') for line in lines.splitlines(): self.output(line) self.output_buffer = self.output_buffer[last_lf + 1:] except: if self.trace: - print '/// console output' + print('/// console output') for line in lines.splitlines(): self.output(line) @@ -298,9 +305,9 @@ if __name__ == "__main__": stdtty = console.save() try: def output(text): - print ']', text + print(']', text) def gdb_console(text): - print '>', text + print('>', text) script = ['target sim'] if len(sys.argv) > 1: executable = sys.argv[1] diff --git a/tester/rt/options.py b/tester/rt/options.py index a916cbb..3b1adef 100644 --- a/tester/rt/options.py +++ b/tester/rt/options.py @@ -32,6 +32,8 @@ # Determine the defaults and load the specific file. # +from __future__ import print_function + import glob import pprint import re @@ -45,8 +47,7 @@ from rtemstoolkit import log from rtemstoolkit import macros from rtemstoolkit import options from rtemstoolkit import path - -import version +from rtemstoolkit import version # # The path for the defaults. @@ -114,13 +115,13 @@ def run(args): log.notice(str(_opts)) log.notice('Defaults:') log.notice(str(_opts.defaults)) - except error.general, gerr: - print gerr + except error.general as gerr: + print(gerr) sys.exit(1) - except error.internal, ierr: - print ierr + except error.internal as ierr: + print(ierr) sys.exit(1) - except error.exit, eerr: + except error.exit as eerr: pass except KeyboardInterrupt: log.notice('abort: user terminated') diff --git a/tester/rt/pygdb/__init__.py b/tester/rt/pygdb/__init__.py index b52f6f9..00b3364 100644 --- a/tester/rt/pygdb/__init__.py +++ b/tester/rt/pygdb/__init__.py @@ -17,5 +17,6 @@ # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. all = ['mi_parser'] -from mi_parser import scan -from mi_parser import process +from . import mi_parser +scan = mi_parser.scan +process = mi_parser.process diff --git a/tester/rt/pygdb/mi_parser.py b/tester/rt/pygdb/mi_parser.py index 65ea5e0..dd1d08f 100755 --- a/tester/rt/pygdb/mi_parser.py +++ b/tester/rt/pygdb/mi_parser.py @@ -28,10 +28,12 @@ # $Id$ +from __future__ import print_function import re import pprint -import spark + +from . import spark def __private(): class Token: @@ -93,7 +95,7 @@ def __private(): def t_default(self, s): r'( . | \n )+' - raise Exception, "Specification error: unmatched input for '%s'" % s + raise Exception("Specification error: unmatched input for '%s'" % s) def __unescape(self, s): s = re.sub(r'\\r', r'\r', s) @@ -167,8 +169,8 @@ def __private(): def error(self, token, i=0, tokens=None): if i > 2: - print '%s %s %s %s' % (tokens[i-3], tokens[i-2], tokens[i-1], tokens[i]) - raise Exception, "Syntax error at or near %d:'%s' token" % (i, token) + print('%s %s %s %s' % (tokens[i-3], tokens[i-2], tokens[i-1], tokens[i])) + raise Exception("Syntax error at or near %d:'%s' token" % (i, token)) class GdbMiInterpreter(spark.GenericASTTraversal): def __init__(self, ast): @@ -203,8 +205,8 @@ def __private(): # tuple ::= { result result_list } node.value = node[1].value for result in node[2].value: - for n, v in result.items(): - if node.value.has_key(n): + for n, v in list(result.items()): + if n in node.value: #print '**********list conversion: [%s] %s -> %s' % (n, node.value[n], v) old = node.value[n] if not isinstance(old, list): @@ -213,7 +215,7 @@ def __private(): else: node.value[n] = v else: - raise Exception, 'Invalid tuple' + raise Exception('Invalid tuple') #print 'tuple: %s' % node.value def n_list(self, node): @@ -305,7 +307,7 @@ def __private(): def __repr__(self): return pprint.pformat(self.__dict__) - def __nonzero__(self): + def __bool__(self): return len(self.__dict__) > 0 def __getitem__(self, i): @@ -320,7 +322,7 @@ def __private(): return None def graft(self, dict_): - for name, value in dict_.items(): + for name, value in list(dict_.items()): name = name.replace('-', '_') if isinstance(value, dict): value = GdbDynamicObject(value) @@ -336,7 +338,7 @@ def __private(): class GdbMiRecord: def __init__(self, record): self.result = None - for name, value in record[0].items(): + for name, value in list(record[0].items()): name = name.replace('-', '_') if name == 'results': for result in value: @@ -363,19 +365,19 @@ def parse(tokens): def process(input): tokens = scan(input) - ast = parse(tokens) + ast = parse(tokens) __the_interpreter(ast) return __the_output(ast.value) if __name__ == '__main__': def main(): def print_tokens(tokens): - print + print() for token in tokens: if token.value: - print token.type + ': ' + token.value + print(token.type + ': ' + token.value) else: - print token.type + print(token.type) def run_test(test): lines = test.splitlines() @@ -386,7 +388,7 @@ if __name__ == '__main__': ast = parse(tokens) __the_interpreter(ast) output = __the_output(ast.value) - print output + print(output) x = '"No symbol table is loaded. Use the \\"file\\" command."' m = re.match('\".*?(?<![\\\\])\"', x) diff --git a/tester/rt/pygdb/spark.py b/tester/rt/pygdb/spark.py index aab2d19..0eac365 100644 --- a/tester/rt/pygdb/spark.py +++ b/tester/rt/pygdb/spark.py @@ -19,6 +19,8 @@ # TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE # SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +from __future__ import print_function + __version__ = 'SPARK-0.7 (pre-alpha-7)' import re @@ -30,8 +32,8 @@ def _namelist(instance): for c in classlist: for b in c.__bases__: classlist.append(b) - for name in c.__dict__.keys(): - if not namedict.has_key(name): + for name in list(c.__dict__.keys()): + if name not in namedict: namelist.append(name) namedict[name] = 1 return namelist @@ -42,7 +44,7 @@ class GenericScanner: self.re = re.compile(pattern, re.VERBOSE|flags) self.index2func = {} - for name, number in self.re.groupindex.items(): + for name, number in list(self.re.groupindex.items()): self.index2func[number-1] = getattr(self, 't_' + name) def makeRE(self, name): @@ -57,10 +59,10 @@ class GenericScanner: rv.append(self.makeRE(name)) rv.append(self.makeRE('t_default')) - return string.join(rv, '|') + return '|'.join(rv) def error(self, s, pos): - print "Lexical error at position %s" % pos + print("Lexical error at position %s" % pos) raise SystemExit def position(self, newpos=None): @@ -81,12 +83,12 @@ class GenericScanner: groups = m.groups() self.pos = m.end() for i in range(len(groups)): - if groups[i] is not None and self.index2func.has_key(i): + if groups[i] is not None and i in self.index2func: self.index2func[i](groups[i]) def t_default(self, s): r'( . | \n )+' - print "Specification error: unmatched input" + print("Specification error: unmatched input") raise SystemExit # @@ -145,14 +147,14 @@ class GenericParser: changes = 1 while changes: changes = 0 - for k, v in self.edges.items(): + for k, v in list(self.edges.items()): if v is None: state, sym = k - if self.states.has_key(state): + if state in self.states: self.goto(state, sym) changes = 1 rv = self.__dict__.copy() - for s in self.states.values(): + for s in list(self.states.values()): del s.items del rv['rule2func'] del rv['nullable'] @@ -179,7 +181,7 @@ class GenericParser: def addRule(self, doc, func, _preprocess=1): fn = func - rules = string.split(doc) + rules = doc.split() index = [] for i in range(len(rules)): @@ -195,7 +197,7 @@ class GenericParser: if _preprocess: rule, fn = self.preprocess(rule, func) - if self.rules.has_key(lhs): + if lhs in self.rules: self.rules[lhs].append(rule) else: self.rules[lhs] = [ rule ] @@ -218,7 +220,7 @@ class GenericParser: self.nullable = {} tbd = [] - for rulelist in self.rules.values(): + for rulelist in list(self.rules.values()): lhs = rulelist[0][0] self.nullable[lhs] = 0 for rule in rulelist: @@ -233,7 +235,7 @@ class GenericParser: # grammars. # for sym in rhs: - if not self.rules.has_key(sym): + if sym not in self.rules: break else: tbd.append(rule) @@ -267,7 +269,7 @@ class GenericParser: def makeNewRules(self): worklist = [] - for rulelist in self.rules.values(): + for rulelist in list(self.rules.values()): for rule in rulelist: worklist.append((rule, 0, 1, rule)) @@ -276,7 +278,7 @@ class GenericParser: n = len(rhs) while i < n: sym = rhs[i] - if not self.rules.has_key(sym) or \ + if sym not in self.rules or \ not self.nullable[sym]: candidate = 0 i = i + 1 @@ -293,7 +295,7 @@ class GenericParser: if candidate: lhs = self._NULLABLE+lhs rule = (lhs, rhs) - if self.newrules.has_key(lhs): + if lhs in self.newrules: self.newrules[lhs].append(rule) else: self.newrules[lhs] = [ rule ] @@ -303,7 +305,7 @@ class GenericParser: return None def error(self, token): - print "Syntax error at or near `%s' token" % token + print("Syntax error at or near `%s' token" % token) raise SystemExit def parse(self, tokens): @@ -320,7 +322,7 @@ class GenericParser: self.states = { 0: self.makeState0() } self.makeState(0, self._BOF) - for i in xrange(len(tokens)): + for i in range(len(tokens)): sets.append([]) if sets[i] == []: @@ -349,7 +351,8 @@ class GenericParser: # return self._NULLABLE == sym[0:len(self._NULLABLE)] - def skip(self, (lhs, rhs), pos=0): + def skip(self, xxx_todo_changeme, pos=0): + (lhs, rhs) = xxx_todo_changeme n = len(rhs) while pos < n: if not self.isnullable(rhs[pos]): @@ -372,7 +375,7 @@ class GenericParser: core.sort() tcore = tuple(core) - if self.cores.has_key(tcore): + if tcore in self.cores: return self.cores[tcore] # # Nope, doesn't exist. Compute it and the associated @@ -396,13 +399,13 @@ class GenericParser: nextSym = rhs[pos] key = (X.stateno, nextSym) - if not rules.has_key(nextSym): - if not edges.has_key(key): + if nextSym not in rules: + if key not in edges: edges[key] = None X.T.append(nextSym) else: edges[key] = None - if not predicted.has_key(nextSym): + if nextSym not in predicted: predicted[nextSym] = 1 for prule in rules[nextSym]: ppos = self.skip(prule) @@ -426,10 +429,10 @@ class GenericParser: # need to know the entire set of predicted nonterminals # to do this without accidentally duplicating states. # - core = predicted.keys() + core = list(predicted.keys()) core.sort() tcore = tuple(core) - if self.cores.has_key(tcore): + if tcore in self.cores: self.edges[(k, None)] = self.cores[tcore] return k @@ -440,7 +443,7 @@ class GenericParser: def goto(self, state, sym): key = (state, sym) - if not self.edges.has_key(key): + if key not in self.edges: # # No transitions from state on sym. # @@ -638,7 +641,7 @@ class GenericParser: for i in range(len(rhs)-1, -1, -1): sym = rhs[i] - if not self.newrules.has_key(sym): + if sym not in self.newrules: if sym != self._BOF: attr[i] = tokens[k-1] key = (item, k) @@ -668,7 +671,7 @@ class GenericParser: sortlist.append((len(rhs), name)) name2index[name] = i sortlist.sort() - list = map(lambda (a,b): b, sortlist) + list = [a_b[1] for a_b in sortlist] return rules[name2index[self.resolve(list)]] def resolve(self, list): @@ -833,15 +836,15 @@ class GenericASTMatcher(GenericParser): def _dump(tokens, sets, states): for i in range(len(sets)): - print 'set', i + print('set', i) for item in sets[i]: - print '\t', item + print('\t', item) for (lhs, rhs), pos in states[item[0]].items: - print '\t\t', lhs, '::=', - print string.join(rhs[:pos]), - print '.', - print string.join(rhs[pos:]) + print('\t\t', lhs, '::=', end=' ') + print(string.join(rhs[:pos]), end=' ') + print('.', end=' ') + print(string.join(rhs[pos:])) if i < len(tokens): - print - print 'token', str(tokens[i]) - print + print() + print('token', str(tokens[i])) + print() diff --git a/tester/rt/stty.py b/tester/rt/stty.py index d059b40..1483d56 100644 --- a/tester/rt/stty.py +++ b/tester/rt/stty.py @@ -1,6 +1,6 @@ # # RTEMS Tools Project (http://www.rtems.org/) -# Copyright 2013-2014 Chris Johns (chrisj@rtems.org) +# Copyright 2013-2016 Chris Johns (chrisj@rtems.org) # All rights reserved. # # This file is part of the RTEMS Tools package in 'rtems-tools'. @@ -32,6 +32,8 @@ # RTEMS Testing Consoles # +from __future__ import print_function + import os import sys import termios @@ -72,7 +74,7 @@ class tty: raise error.general('dev not found: %s' % (dev)) try: self.fd = open(dev, 'rw') - except IOError, ioe: + except IOError as ioe: raise error.general('opening tty dev: %s: %s' % (dev, ioe)) except: raise error.general('opening tty dev: %s: unknown' % (dev)) @@ -558,9 +560,9 @@ if __name__ == "__main__": t.control('CRTSCTS', False) t.vmin(1) t.vtime(2) - print t + print(t) t.set('B115200,~BRKINT,IGNBRK,IGNCR,~ICANON,~ISIG,~IEXTEN,~ECHO,CLOCAL,~CRTSCTS') - print t + print(t) t.on() while True: c = t.fd.read(1) diff --git a/tester/rt/test.py b/tester/rt/test.py index b0e041a..c118382 100644 --- a/tester/rt/test.py +++ b/tester/rt/test.py @@ -1,6 +1,6 @@ # # RTEMS Tools Project (http://www.rtems.org/) -# Copyright 2013-2014 Chris Johns (chrisj@rtems.org) +# Copyright 2013-2016 Chris Johns (chrisj@rtems.org) # All rights reserved. # # This file is part of the RTEMS Tools package in 'rtems-tools'. @@ -28,8 +28,11 @@ # POSSIBILITY OF SUCH DAMAGE. # +from __future__ import print_function + import copy import datetime +import fnmatch import os import sys import threading @@ -41,12 +44,11 @@ from rtemstoolkit import path from rtemstoolkit import stacktraces from rtemstoolkit import version -import bsps -import config -import console -import options -import report -import fnmatch +from . import bsps +from . import config +from . import console +from . import options +from . import report class test(object): def __init__(self, index, total, report, executable, rtems_tools, bsp, bsp_config, opts): @@ -118,7 +120,7 @@ class test_run(object): def reraise(self): if self.result is not None: - raise self.result[0], self.result[1], self.result[2] + raise self.result[0](self.result[1]).with_traceback(self.result[2]) def kill(self): if self.test: @@ -157,9 +159,9 @@ def report_finished(reports, report_mode, reporting, finished, job_trace): if len(reported): del reported[:] if job_trace: - print '}} threading:', threading.active_count() + print('}} threading:', threading.active_count()) for t in threading.enumerate(): - print '}} ', t.name + print('}} ', t.name) return reporting def _job_trace(tst, msg, total, exe, active, reporting): @@ -302,20 +304,20 @@ def run(command_path = None): end_time = datetime.datetime.now() log.notice('Average test time: %s' % (str((end_time - start_time) / total))) log.notice('Testing time : %s' % (str(end_time - start_time))) - except error.general, gerr: - print gerr + except error.general as gerr: + print(gerr) sys.exit(1) - except error.internal, ierr: - print ierr + except error.internal as ierr: + print(ierr) sys.exit(1) - except error.exit, eerr: + except error.exit as eerr: sys.exit(2) except KeyboardInterrupt: if opts is not None and opts.find_arg('--stacktrace'): - print '}} dumping:', threading.active_count() + print('}} dumping:', threading.active_count()) for t in threading.enumerate(): - print '}} ', t.name - print stacktraces.trace() + print('}} ', t.name) + print(stacktraces.trace()) log.notice('abort: user terminated') killall(tests) sys.exit(1) diff --git a/tester/rt/version.py b/tester/rt/version.py index 7c82de3..b9b040d 100644 --- a/tester/rt/version.py +++ b/tester/rt/version.py @@ -1,6 +1,6 @@ # # RTEMS Tools Project (http://www.rtems.org/) -# Copyright 2013-2014 Chris Johns (chrisj@rtems.org) +# Copyright 2013-2016 Chris Johns (chrisj@rtems.org) # All rights reserved. # # This file is part of the RTEMS Tools package in 'rtems-tools'. @@ -28,11 +28,7 @@ # POSSIBILITY OF SUCH DAMAGE. # -# -# Manage paths locally. The internally the path is in Unix or shell format and -# we convert to the native format when performing operations at the Python -# level. This allows macro expansion to work. -# +from __future__ import print_function major = 0 minor = 2 @@ -42,7 +38,7 @@ def str(): return '%d.%d.%d'% (major, minor, revision) if __name__ == '__main__': - print 'major = %d' % (major) - print 'minor = %d' % (minor) - print 'revision = %d' % (revision) - print 'Version: %s' % (str()) + print('major = %d' % (major)) + print('minor = %d' % (minor)) + print('revision = %d' % (revision)) + print('Version: %s' % (str())) diff --git a/tester/rtems-test b/tester/rtems-test index f573fea..13025cc 100755 --- a/tester/rtems-test +++ b/tester/rtems-test @@ -1,7 +1,7 @@ #! /usr/bin/env python # # RTEMS Tools Project (http://www.rtems.org/) -# Copyright 2013, 2015 Chris Johns (chrisj@rtems.org) +# Copyright 2013-2016 Chris Johns (chrisj@rtems.org) # All rights reserved. # # This file is part of the RTEMS Tools package in 'rtems-tools'. @@ -29,6 +29,8 @@ # POSSIBILITY OF SUCH DAMAGE. # +from __future__ import print_function + import sys, os base = os.path.dirname(os.path.abspath(sys.argv[0])) parent = os.path.dirname(base) @@ -39,5 +41,5 @@ try: import rt.test rt.test.run() except ImportError: - print >> sys.stderr, "Incorrect RTEMS Tools installation" + print("Incorrect RTEMS Tools installation", file = sys.stderr) sys.exit(1) |