• Pulkit Goyal's avatar
    procutils: don't try to get `.buffer` if sys.stdin is None · 81c1f5d1801f
    Pulkit Goyal authored
    While hunting down following test failure of test-chg.t on Python 3, I stumbled
    the case when `.buffer` is not available as sys.stdin is None.
    
    	--- /home/pulkit/repo/hg-committed/tests/test-chg.t
    	+++ /home/pulkit/repo/hg-committed/tests/test-chg.t.err
    	@@ -203,7 +203,31 @@
    	   $ CHGDEBUG=1 chg version -q 0<&-
    		 chg: debug: * stdio fds are missing (glob)
    	     chg: debug: * execute original hg (glob)
    		 -  Mercurial Distributed SCM * (glob)
    		 +  Traceback (most recent call last):
    		 +    File "/tmp/hgtests.avspvsq4/install/bin/hg", line 43, in <module>
    		 +      dispatch.run()
    		 +    File "/usr/lib/python3.6/importlib/util.py", line 233, in
    		 __getattribute__
    		 +      self.__spec__.loader.exec_module(self)
    		 +    File "<frozen importlib._bootstrap_external>", line 678, in
    		 exec_module
    		 +    File "<frozen importlib._bootstrap>", line 219, in
    		 _call_with_frames_removed
    		 +    File
    		 "/tmp/hgtests.avspvsq4/install/lib/python/mercurial/dispatch.py", line
    		 726, in <module>
    		 +      class lazyaliasentry(object):
    		 +    File
    		 "/tmp/hgtests.avspvsq4/install/lib/python/mercurial/dispatch.py", line
    		 737, in lazyaliasentry
    		 +      @util.propertycache
    		 +    File "/usr/lib/python3.6/importlib/util.py", line 233, in
    		 __getattribute__
    		 +      self.__spec__.loader.exec_module(self)
    		 +    File "<frozen importlib._bootstrap_external>", line 678, in
    		 exec_module
    		 +    File "<frozen importlib._bootstrap>", line 219, in
    		 _call_with_frames_removed
    		 +    File "/tmp/hgtests.avspvsq4/install/lib/python/mercurial/util.py",
    		 line 3473, in <module>
    		 +      f=procutil.stderr,
    		 +    File "/usr/lib/python3.6/importlib/util.py", line 233, in
    		 __getattribute__
    		 +      self.__spec__.loader.exec_module(self)
    		 +    File "<frozen importlib._bootstrap_external>", line 678, in
    		 exec_module
    		 +    File "<frozen importlib._bootstrap>", line 219, in
    		 _call_with_frames_removed
    		 +    File
    		 "/tmp/hgtests.avspvsq4/install/lib/python/mercurial/utils/procutil.py",
    		 line 127, in <module>
    		 +      stdin = sys.stdin.buffer
    		 +  AttributeError: 'NoneType' object has no attribute 'buffer'
    		 +  [1]
    
    		  server lifecycle
    		   ----------------
    
    Differential Revision: https://phab.mercurial-scm.org/D9500
    81c1f5d1801f