comparison tests/run-tests.py @ 12316:4134686b83e1

tests: add exit codes to unified tests
author Matt Mackall <mpm@selenic.com>
date Thu, 16 Sep 2010 17:51:32 -0500
parents 6f59154fb604
children b016fc1c0862
comparison
equal deleted inserted replaced
12315:ca58f6475f1d 12316:4134686b83e1
472 for n, l in enumerate(t): 472 for n, l in enumerate(t):
473 if l.startswith(' $ '): # commands 473 if l.startswith(' $ '): # commands
474 after.setdefault(pos, []).append(l) 474 after.setdefault(pos, []).append(l)
475 prepos = pos 475 prepos = pos
476 pos = n 476 pos = n
477 script.append('echo %s %s\n' % (salt, n)) 477 script.append('echo %s %s $?\n' % (salt, n))
478 script.append(l[4:]) 478 script.append(l[4:])
479 elif l.startswith(' > '): # continuations 479 elif l.startswith(' > '): # continuations
480 after.setdefault(prepos, []).append(l) 480 after.setdefault(prepos, []).append(l)
481 script.append(l[4:]) 481 script.append(l[4:])
482 elif l.startswith(' '): # results 482 elif l.startswith(' '): # results
484 expected.setdefault(pos, []).append(l[2:]) 484 expected.setdefault(pos, []).append(l[2:])
485 else: 485 else:
486 # non-command/result - queue up for merged output 486 # non-command/result - queue up for merged output
487 after.setdefault(pos, []).append(l) 487 after.setdefault(pos, []).append(l)
488 488
489 script.append('echo %s %s $?\n' % (salt, n + 1))
490
489 fd, name = tempfile.mkstemp(suffix='hg-tst') 491 fd, name = tempfile.mkstemp(suffix='hg-tst')
490 492
491 try: 493 try:
492 for l in script: 494 for l in script:
493 os.write(fd, l) 495 os.write(fd, l)
506 # el is an invalid regex 508 # el is an invalid regex
507 return False 509 return False
508 510
509 pos = -1 511 pos = -1
510 postout = [] 512 postout = []
513 ret = 0
511 for n, l in enumerate(output): 514 for n, l in enumerate(output):
512 if l.startswith(salt): 515 if l.startswith(salt):
516 # add on last return code
517 ret = int(l.split()[2])
518 if ret != 0:
519 postout.append(" [%s]\n" % ret)
513 if pos in after: 520 if pos in after:
514 postout += after.pop(pos) 521 postout += after.pop(pos)
515 pos = int(l.split()[1]) 522 pos = int(l.split()[1])
516 else: 523 else:
517 el = None 524 el = None