tests/run-tests.py
changeset 17801 03554dfc7ced
parent 17800 f3c36faa7374
child 17908 42f8ee0e04ac
equal deleted inserted replaced
17800:f3c36faa7374 17801:03554dfc7ced
   478     vlog("# Running", cmd)
   478     vlog("# Running", cmd)
   479     if os.name == 'nt':
   479     if os.name == 'nt':
   480         replacements.append((r'\r\n', '\n'))
   480         replacements.append((r'\r\n', '\n'))
   481     return run(cmd, wd, options, replacements)
   481     return run(cmd, wd, options, replacements)
   482 
   482 
   483 def shtest(test, wd, options, replacements):
       
   484     cmd = '%s "%s"' % (options.shell, test)
       
   485     vlog("# Running", cmd)
       
   486     return run(cmd, wd, options, replacements)
       
   487 
       
   488 needescape = re.compile(r'[\x00-\x08\x0b-\x1f\x7f-\xff]').search
   483 needescape = re.compile(r'[\x00-\x08\x0b-\x1f\x7f-\xff]').search
   489 escapesub = re.compile(r'[\x00-\x08\x0b-\x1f\\\x7f-\xff]').sub
   484 escapesub = re.compile(r'[\x00-\x08\x0b-\x1f\\\x7f-\xff]').sub
   490 escapemap = dict((chr(i), r'\x%02x' % i) for i in range(256))
   485 escapemap = dict((chr(i), r'\x%02x' % i) for i in range(256))
   491 escapemap.update({'\\': '\\\\', '\r': r'\r'})
   486 escapemap.update({'\\': '\\\\', '\r': r'\r'})
   492 def escapef(m):
   487 def escapef(m):
   872         runner = pytest
   867         runner = pytest
   873     elif lctest.endswith('.t'):
   868     elif lctest.endswith('.t'):
   874         runner = tsttest
   869         runner = tsttest
   875         ref = testpath
   870         ref = testpath
   876     else:
   871     else:
   877         # do not try to run non-executable programs
   872         return skip("unknown test type")
   878         if not os.access(testpath, os.X_OK):
       
   879             return skip("not executable")
       
   880         runner = shtest
       
   881 
   873 
   882     # Make a tmp subdirectory to work in
   874     # Make a tmp subdirectory to work in
   883     testtmp = os.environ["TESTTMP"] = os.environ["HOME"] = \
   875     testtmp = os.environ["TESTTMP"] = os.environ["HOME"] = \
   884         os.path.join(HGTMP, os.path.basename(test))
   876         os.path.join(HGTMP, os.path.basename(test))
   885 
   877