tests/hghave.py
changeset 41003 87c98ffbc8c7
parent 40453 1bf3e6041e2c
child 41366 fabb0224a599
equal deleted inserted replaced
41002:e88ced97151d 41003:87c98ffbc8c7
    13 
    13 
    14 checks = {
    14 checks = {
    15     "true": (lambda: True, "yak shaving"),
    15     "true": (lambda: True, "yak shaving"),
    16     "false": (lambda: False, "nail clipper"),
    16     "false": (lambda: False, "nail clipper"),
    17 }
    17 }
       
    18 
       
    19 try:
       
    20     import msvcrt
       
    21     msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY)
       
    22     msvcrt.setmode(sys.stderr.fileno(), os.O_BINARY)
       
    23 except ImportError:
       
    24     pass
       
    25 
       
    26 stdout = getattr(sys.stdout, 'buffer', sys.stdout)
       
    27 stderr = getattr(sys.stderr, 'buffer', sys.stderr)
    18 
    28 
    19 if sys.version_info[0] >= 3:
    29 if sys.version_info[0] >= 3:
    20     def _bytespath(p):
    30     def _bytespath(p):
    21         if p is None:
    31         if p is None:
    22             return p
    32             return p
    88 def require(features):
    98 def require(features):
    89     """Require that features are available, exiting if not."""
    99     """Require that features are available, exiting if not."""
    90     result = checkfeatures(features)
   100     result = checkfeatures(features)
    91 
   101 
    92     for missing in result['missing']:
   102     for missing in result['missing']:
    93         sys.stderr.write('skipped: unknown feature: %s\n' % missing)
   103         stderr.write(('skipped: unknown feature: %s\n'
       
   104                       % missing).encode('utf-8'))
    94     for msg in result['skipped']:
   105     for msg in result['skipped']:
    95         sys.stderr.write('skipped: %s\n' % msg)
   106         stderr.write(('skipped: %s\n' % msg).encode('utf-8'))
    96     for msg in result['error']:
   107     for msg in result['error']:
    97         sys.stderr.write('%s\n' % msg)
   108         stderr.write(('%s\n' % msg).encode('utf-8'))
    98 
   109 
    99     if result['missing']:
   110     if result['missing']:
   100         sys.exit(2)
   111         sys.exit(2)
   101 
   112 
   102     if result['skipped'] or result['error']:
   113     if result['skipped'] or result['error']: