Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 655496 Details for
Bug 738018
dev-python/neovim-remote-2.2.1 fails tests
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
build.log
build.log (text/plain), 38.07 KB, created by
Agostino Sarubbo
on 2020-08-19 15:23:09 UTC
(
hide
)
Description:
build.log
Filename:
MIME Type:
Creator:
Agostino Sarubbo
Created:
2020-08-19 15:23:09 UTC
Size:
38.07 KB
patch
obsolete
> * Package: dev-python/neovim-remote-2.2.1 > * Repository: gentoo > * Maintainer: jeffrey@icurse.nl proxy-maint@gentoo.org > * USE: abi_x86_64 amd64 elibc_glibc kernel_linux python_targets_python3_7 test userland_GNU > * FEATURES: network-sandbox preserve-libs sandbox test userpriv usersandbox > > >@@@@@ PLEASE PAY ATTENTION HERE!!! @@@@@ >This information may help you to understand if this is a duplicate or if this bug exists after you pushed a fix; >This ebuild was merged at the following commit: >https://github.com/gentoo-mirror/gentoo/commit/f36441829f55b222dc3e6ed03719c38fb3fc3617 (Wed Aug 19 11:35:42 UTC 2020) >@@@@@ END @@@@@ > > > >emerge --info: >Portage 3.0.4 (python 3.7.9-final-0, default/linux/amd64/17.1, gcc-10.2.0, glibc-2.32, 5.4.0-1021-aws x86_64) >================================================================= >System uname: Linux-5.4.0-1021-aws-x86_64-Intel-R-_Xeon-R-_Platinum_8175M_CPU_@_2.50GHz-with-gentoo-2.7 >KiB Mem: 64359960 total, 43616476 free >KiB Swap: 0 total, 0 free >Timestamp of repository gentoo: Wed, 19 Aug 2020 11:35:41 +0000 >sh bash 5.0_p18 >ld GNU ld (Gentoo 2.34 p6) 2.34.0 >app-shells/bash: 5.0_p18::gentoo >dev-lang/perl: 5.30.3-r1::gentoo >dev-lang/python: 2.7.18-r1::gentoo, 3.7.9::gentoo, 3.8.5::gentoo, 3.9.0_rc1::gentoo >dev-util/cmake: 3.18.1::gentoo >sys-apps/baselayout: 2.7::gentoo >sys-apps/openrc: 0.42.1::gentoo >sys-apps/sandbox: 2.20::gentoo >sys-devel/autoconf: 2.69-r5::gentoo >sys-devel/automake: 1.16.2::gentoo >sys-devel/binutils: 2.34-r2::gentoo >sys-devel/gcc: 10.2.0::gentoo >sys-devel/gcc-config: 2.3.1::gentoo >sys-devel/libtool: 2.4.6-r6::gentoo >sys-devel/make: 4.3::gentoo >sys-kernel/linux-headers: 5.8::gentoo (virtual/os-headers) >sys-libs/glibc: 2.32::gentoo >Repositories: > >gentoo > location: /usr/portage > sync-type: rsync > sync-uri: rsync://rsync.gentoo.org/gentoo-portage > priority: -1000 > sync-rsync-extra-opts: > sync-rsync-verify-max-age: 24 > sync-rsync-verify-metamanifest: yes > sync-rsync-verify-jobs: 1 > >ACCEPT_KEYWORDS="amd64 ~amd64" >ACCEPT_LICENSE="* MIT" >CBUILD="x86_64-pc-linux-gnu" >CC="x86_64-pc-linux-gnu-clang" >CFLAGS="-O2 -pipe -march=native -frecord-gcc-switches -fno-diagnostics-color" >CHOST="x86_64-pc-linux-gnu" >CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt" >CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo" >CXX="x86_64-pc-linux-gnu-clang++" >CXXFLAGS="-O2 -pipe -march=native -frecord-gcc-switches -fno-diagnostics-color" >DISTDIR="/var/tmp/portage/dev-python/neovim-remote-2.2.1/distdir" >EMERGE_DEFAULT_OPTS="--with-bdeps=y -1 -b -k" >ENV_UNSET="DBUS_SESSION_BUS_ADDRESS DISPLAY GOBIN GOPATH PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR" >FCFLAGS="-O2 -pipe -march=native -frecord-gcc-switches -fno-diagnostics-color" >FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs buildpkg collision-protect config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync multilib-strict network-sandbox news parallel-fetch pid-sandbox preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms sign split-log strict test unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr" >FFLAGS="-O2 -pipe -march=native -frecord-gcc-switches -fno-diagnostics-color" >GENTOO_MIRRORS="http://distfiles.gentoo.org" >LANG="C.UTF-8" >LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,--defsym=__gentoo_check_ldflags__=0 -fuse-ld=lld" >MAKEOPTS="-j16 V=1" >PKGDIR="/root/.packages" >PORTAGE_CONFIGROOT="/" >PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git" >PORTAGE_TMPDIR="/var/tmp" >USE="acl amd64 berkdb bzip2 cli crypt dri fortran gdbm iconv ipv6 libglvnd libtirpc multilib native-symlinks ncurses nls nptl openmp pam pcre readline seccomp split-usr ssl tcpd test unicode xattr zlib" ABI_X86="64" ELIBC="glibc" KERNEL="linux" PYTHON_TARGETS="python3_7" USERLAND="GNU" >Unset: CPPFLAGS, CTARGET, INSTALL_MASK, LC_ALL, LINGUAS, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS > > > >>>> Unpacking source... >>>> Unpacking neovim-remote-2.2.1.tar.gz to /var/tmp/portage/dev-python/neovim-remote-2.2.1/work >>>> Source unpacked in /var/tmp/portage/dev-python/neovim-remote-2.2.1/work >>>> Preparing source in /var/tmp/portage/dev-python/neovim-remote-2.2.1/work/neovim-remote-2.2.1 ... >>>> Source prepared. >>>> Configuring source in /var/tmp/portage/dev-python/neovim-remote-2.2.1/work/neovim-remote-2.2.1 ... >>>> Source configured. >>>> Compiling source in /var/tmp/portage/dev-python/neovim-remote-2.2.1/work/neovim-remote-2.2.1 ... > * python3_7: running distutils-r1_run_phase distutils-r1_python_compile > * DISTUTILS_USE_SETUPTOOLS value is probably incorrect > * value: DISTUTILS_USE_SETUPTOOLS=bdepend (default?) > * expected: DISTUTILS_USE_SETUPTOOLS=rdepend >python3.7 setup.py build -j 16 >running build >running build_py >creating /var/tmp/portage/dev-python/neovim-remote-2.2.1/work/neovim-remote-2.2.1-python3_7/lib/nvr >copying nvr/__init__.py -> /var/tmp/portage/dev-python/neovim-remote-2.2.1/work/neovim-remote-2.2.1-python3_7/lib/nvr >copying nvr/nvr.py -> /var/tmp/portage/dev-python/neovim-remote-2.2.1/work/neovim-remote-2.2.1-python3_7/lib/nvr >warning: build_py: byte-compiling is disabled, skipping. > >>>> Source compiled. >>>> Test phase: dev-python/neovim-remote-2.2.1 > * python3_7: running distutils-r1_run_phase python_test >============================= test session starts ============================== >platform linux -- Python 3.7.9, pytest-6.0.1, py-1.9.0, pluggy-0.13.1 -- /usr/bin/python3.7 >cachedir: .pytest_cache >rootdir: /var/tmp/portage/dev-python/neovim-remote-2.2.1/work/neovim-remote-2.2.1 >collecting ... collected 4 items > >tests/test_nvr.py::test_remote_send FAILED [ 25%] >tests/test_nvr.py::test_escape_filenames_properly FAILED [ 50%] >tests/test_nvr.py::test_escape_single_quotes_in_filenames FAILED [ 75%] >tests/test_nvr.py::test_escape_double_quotes_in_filenames FAILED [100%] > >=================================== FAILURES =================================== >_______________________________ test_remote_send _______________________________ > >capsys = <_pytest.capture.CaptureFixture object at 0x7f047bf3fb50> > > def test_remote_send(capsys): > env = setup_env() >> nvim = run_nvim(env) > >tests/test_nvr.py:29: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_nvr.py:12: in run_nvim > nvim = subprocess.Popen(['nvim', '-nu', 'NORC', '--headless'], env=env) >/usr/lib/python3.7/subprocess.py:800: in __init__ > restore_signals, start_new_session) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <subprocess.Popen object at 0x7f047c29cb10> >args = ['nvim', '-nu', 'NORC', '--headless'], executable = b'nvim' >preexec_fn = None, close_fds = True, pass_fds = (), cwd = None >env = {'A': 'neovim-remote-2.2.1.tar.gz', 'ABI': 'amd64', 'ABI_MIPS': '', 'ABI_PPC': '', ...} >startupinfo = None, creationflags = 0, shell = False, p2cread = -1 >p2cwrite = -1, c2pread = -1, c2pwrite = -1, errread = -1, errwrite = -1 >restore_signals = True, start_new_session = False > > def _execute_child(self, args, executable, preexec_fn, close_fds, > pass_fds, cwd, env, > startupinfo, creationflags, shell, > p2cread, p2cwrite, > c2pread, c2pwrite, > errread, errwrite, > restore_signals, start_new_session): > """Execute program (POSIX version)""" > > if isinstance(args, (str, bytes)): > args = [args] > else: > args = list(args) > > if shell: > # On Android the default shell is at '/system/bin/sh'. > unix_shell = ('/system/bin/sh' if > hasattr(sys, 'getandroidapilevel') else '/bin/sh') > args = [unix_shell, "-c"] + args > if executable: > args[0] = executable > > if executable is None: > executable = args[0] > orig_executable = executable > > # For transferring possible exec failure from child to parent. > # Data format: "exception name:hex errno:description" > # Pickle is not used; it is complex and involves memory allocation. > errpipe_read, errpipe_write = os.pipe() > # errpipe_write must not be in the standard io 0, 1, or 2 fd range. > low_fds_to_close = [] > while errpipe_write < 3: > low_fds_to_close.append(errpipe_write) > errpipe_write = os.dup(errpipe_write) > for low_fd in low_fds_to_close: > os.close(low_fd) > try: > try: > # We must avoid complex work that could involve > # malloc or free in the child process to avoid > # potential deadlocks, thus we do all this here. > # and pass it to fork_exec() > > if env is not None: > env_list = [] > for k, v in env.items(): > k = os.fsencode(k) > if b'=' in k: > raise ValueError("illegal environment variable name") > env_list.append(k + b'=' + os.fsencode(v)) > else: > env_list = None # Use execv instead of execve. > executable = os.fsencode(executable) > if os.path.dirname(executable): > executable_list = (executable,) > else: > # This matches the behavior of os._execvpe(). > executable_list = tuple( > os.path.join(os.fsencode(dir), executable) > for dir in os.get_exec_path(env)) > fds_to_keep = set(pass_fds) > fds_to_keep.add(errpipe_write) > self.pid = _posixsubprocess.fork_exec( > args, executable_list, > close_fds, tuple(sorted(map(int, fds_to_keep))), > cwd, env_list, > p2cread, p2cwrite, c2pread, c2pwrite, > errread, errwrite, > errpipe_read, errpipe_write, > restore_signals, start_new_session, preexec_fn) > self._child_created = True > finally: > # be sure the FD is closed no matter what > os.close(errpipe_write) > > # self._devnull is not always defined. > devnull_fd = getattr(self, '_devnull', None) > if p2cread != -1 and p2cwrite != -1 and p2cread != devnull_fd: > os.close(p2cread) > if c2pwrite != -1 and c2pread != -1 and c2pwrite != devnull_fd: > os.close(c2pwrite) > if errwrite != -1 and errread != -1 and errwrite != devnull_fd: > os.close(errwrite) > if devnull_fd is not None: > os.close(devnull_fd) > # Prevent a double close of these fds from __init__ on error. > self._closed_child_pipe_fds = True > > # Wait for exec to fail or succeed; possibly raising an > # exception (limited in size) > errpipe_data = bytearray() > while True: > part = os.read(errpipe_read, 50000) > errpipe_data += part > if not part or len(errpipe_data) > 50000: > break > finally: > # be sure the FD is closed no matter what > os.close(errpipe_read) > > if errpipe_data: > try: > pid, sts = os.waitpid(self.pid, 0) > if pid == self.pid: > self._handle_exitstatus(sts) > else: > self.returncode = sys.maxsize > except ChildProcessError: > pass > > try: > exception_name, hex_errno, err_msg = ( > errpipe_data.split(b':', 2)) > # The encoding here should match the encoding > # written in by the subprocess implementations > # like _posixsubprocess > err_msg = err_msg.decode() > except ValueError: > exception_name = b'SubprocessError' > hex_errno = b'0' > err_msg = 'Bad exception data from child: {!r}'.format( > bytes(errpipe_data)) > child_exception_type = getattr( > builtins, exception_name.decode('ascii'), > SubprocessError) > if issubclass(child_exception_type, OSError) and hex_errno: > errno_num = int(hex_errno, 16) > child_exec_never_called = (err_msg == "noexec") > if child_exec_never_called: > err_msg = "" > # The error must be from chdir(cwd). > err_filename = cwd > else: > err_filename = orig_executable > if errno_num != 0: > err_msg = os.strerror(errno_num) > if errno_num == errno.ENOENT: > err_msg += ': ' + repr(err_filename) >> raise child_exception_type(errno_num, err_msg, err_filename) >E FileNotFoundError: [Errno 2] No such file or directory: 'nvim': 'nvim' > >/usr/lib/python3.7/subprocess.py:1551: FileNotFoundError >________________________ test_escape_filenames_properly ________________________ > >capsys = <_pytest.capture.CaptureFixture object at 0x7f047be8dbd0> > > def test_escape_filenames_properly(capsys): > filename = 'a b|c' > env = setup_env() >> nvim = run_nvim(env) > >tests/test_nvr.py:41: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_nvr.py:12: in run_nvim > nvim = subprocess.Popen(['nvim', '-nu', 'NORC', '--headless'], env=env) >/usr/lib/python3.7/subprocess.py:800: in __init__ > restore_signals, start_new_session) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <subprocess.Popen object at 0x7f047be8dc50> >args = ['nvim', '-nu', 'NORC', '--headless'], executable = b'nvim' >preexec_fn = None, close_fds = True, pass_fds = (), cwd = None >env = {'A': 'neovim-remote-2.2.1.tar.gz', 'ABI': 'amd64', 'ABI_MIPS': '', 'ABI_PPC': '', ...} >startupinfo = None, creationflags = 0, shell = False, p2cread = -1 >p2cwrite = -1, c2pread = -1, c2pwrite = -1, errread = -1, errwrite = -1 >restore_signals = True, start_new_session = False > > def _execute_child(self, args, executable, preexec_fn, close_fds, > pass_fds, cwd, env, > startupinfo, creationflags, shell, > p2cread, p2cwrite, > c2pread, c2pwrite, > errread, errwrite, > restore_signals, start_new_session): > """Execute program (POSIX version)""" > > if isinstance(args, (str, bytes)): > args = [args] > else: > args = list(args) > > if shell: > # On Android the default shell is at '/system/bin/sh'. > unix_shell = ('/system/bin/sh' if > hasattr(sys, 'getandroidapilevel') else '/bin/sh') > args = [unix_shell, "-c"] + args > if executable: > args[0] = executable > > if executable is None: > executable = args[0] > orig_executable = executable > > # For transferring possible exec failure from child to parent. > # Data format: "exception name:hex errno:description" > # Pickle is not used; it is complex and involves memory allocation. > errpipe_read, errpipe_write = os.pipe() > # errpipe_write must not be in the standard io 0, 1, or 2 fd range. > low_fds_to_close = [] > while errpipe_write < 3: > low_fds_to_close.append(errpipe_write) > errpipe_write = os.dup(errpipe_write) > for low_fd in low_fds_to_close: > os.close(low_fd) > try: > try: > # We must avoid complex work that could involve > # malloc or free in the child process to avoid > # potential deadlocks, thus we do all this here. > # and pass it to fork_exec() > > if env is not None: > env_list = [] > for k, v in env.items(): > k = os.fsencode(k) > if b'=' in k: > raise ValueError("illegal environment variable name") > env_list.append(k + b'=' + os.fsencode(v)) > else: > env_list = None # Use execv instead of execve. > executable = os.fsencode(executable) > if os.path.dirname(executable): > executable_list = (executable,) > else: > # This matches the behavior of os._execvpe(). > executable_list = tuple( > os.path.join(os.fsencode(dir), executable) > for dir in os.get_exec_path(env)) > fds_to_keep = set(pass_fds) > fds_to_keep.add(errpipe_write) > self.pid = _posixsubprocess.fork_exec( > args, executable_list, > close_fds, tuple(sorted(map(int, fds_to_keep))), > cwd, env_list, > p2cread, p2cwrite, c2pread, c2pwrite, > errread, errwrite, > errpipe_read, errpipe_write, > restore_signals, start_new_session, preexec_fn) > self._child_created = True > finally: > # be sure the FD is closed no matter what > os.close(errpipe_write) > > # self._devnull is not always defined. > devnull_fd = getattr(self, '_devnull', None) > if p2cread != -1 and p2cwrite != -1 and p2cread != devnull_fd: > os.close(p2cread) > if c2pwrite != -1 and c2pread != -1 and c2pwrite != devnull_fd: > os.close(c2pwrite) > if errwrite != -1 and errread != -1 and errwrite != devnull_fd: > os.close(errwrite) > if devnull_fd is not None: > os.close(devnull_fd) > # Prevent a double close of these fds from __init__ on error. > self._closed_child_pipe_fds = True > > # Wait for exec to fail or succeed; possibly raising an > # exception (limited in size) > errpipe_data = bytearray() > while True: > part = os.read(errpipe_read, 50000) > errpipe_data += part > if not part or len(errpipe_data) > 50000: > break > finally: > # be sure the FD is closed no matter what > os.close(errpipe_read) > > if errpipe_data: > try: > pid, sts = os.waitpid(self.pid, 0) > if pid == self.pid: > self._handle_exitstatus(sts) > else: > self.returncode = sys.maxsize > except ChildProcessError: > pass > > try: > exception_name, hex_errno, err_msg = ( > errpipe_data.split(b':', 2)) > # The encoding here should match the encoding > # written in by the subprocess implementations > # like _posixsubprocess > err_msg = err_msg.decode() > except ValueError: > exception_name = b'SubprocessError' > hex_errno = b'0' > err_msg = 'Bad exception data from child: {!r}'.format( > bytes(errpipe_data)) > child_exception_type = getattr( > builtins, exception_name.decode('ascii'), > SubprocessError) > if issubclass(child_exception_type, OSError) and hex_errno: > errno_num = int(hex_errno, 16) > child_exec_never_called = (err_msg == "noexec") > if child_exec_never_called: > err_msg = "" > # The error must be from chdir(cwd). > err_filename = cwd > else: > err_filename = orig_executable > if errno_num != 0: > err_msg = os.strerror(errno_num) > if errno_num == errno.ENOENT: > err_msg += ': ' + repr(err_filename) >> raise child_exception_type(errno_num, err_msg, err_filename) >E FileNotFoundError: [Errno 2] No such file or directory: 'nvim': 'nvim' > >/usr/lib/python3.7/subprocess.py:1551: FileNotFoundError >____________________ test_escape_single_quotes_in_filenames ____________________ > >capsys = <_pytest.capture.CaptureFixture object at 0x7f047bda0f90> > > def test_escape_single_quotes_in_filenames(capsys): > filename = "foo'bar'quux" > env = setup_env() >> nvim = run_nvim(env) > >tests/test_nvr.py:52: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_nvr.py:12: in run_nvim > nvim = subprocess.Popen(['nvim', '-nu', 'NORC', '--headless'], env=env) >/usr/lib/python3.7/subprocess.py:800: in __init__ > restore_signals, start_new_session) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <subprocess.Popen object at 0x7f047bec78d0> >args = ['nvim', '-nu', 'NORC', '--headless'], executable = b'nvim' >preexec_fn = None, close_fds = True, pass_fds = (), cwd = None >env = {'A': 'neovim-remote-2.2.1.tar.gz', 'ABI': 'amd64', 'ABI_MIPS': '', 'ABI_PPC': '', ...} >startupinfo = None, creationflags = 0, shell = False, p2cread = -1 >p2cwrite = -1, c2pread = -1, c2pwrite = -1, errread = -1, errwrite = -1 >restore_signals = True, start_new_session = False > > def _execute_child(self, args, executable, preexec_fn, close_fds, > pass_fds, cwd, env, > startupinfo, creationflags, shell, > p2cread, p2cwrite, > c2pread, c2pwrite, > errread, errwrite, > restore_signals, start_new_session): > """Execute program (POSIX version)""" > > if isinstance(args, (str, bytes)): > args = [args] > else: > args = list(args) > > if shell: > # On Android the default shell is at '/system/bin/sh'. > unix_shell = ('/system/bin/sh' if > hasattr(sys, 'getandroidapilevel') else '/bin/sh') > args = [unix_shell, "-c"] + args > if executable: > args[0] = executable > > if executable is None: > executable = args[0] > orig_executable = executable > > # For transferring possible exec failure from child to parent. > # Data format: "exception name:hex errno:description" > # Pickle is not used; it is complex and involves memory allocation. > errpipe_read, errpipe_write = os.pipe() > # errpipe_write must not be in the standard io 0, 1, or 2 fd range. > low_fds_to_close = [] > while errpipe_write < 3: > low_fds_to_close.append(errpipe_write) > errpipe_write = os.dup(errpipe_write) > for low_fd in low_fds_to_close: > os.close(low_fd) > try: > try: > # We must avoid complex work that could involve > # malloc or free in the child process to avoid > # potential deadlocks, thus we do all this here. > # and pass it to fork_exec() > > if env is not None: > env_list = [] > for k, v in env.items(): > k = os.fsencode(k) > if b'=' in k: > raise ValueError("illegal environment variable name") > env_list.append(k + b'=' + os.fsencode(v)) > else: > env_list = None # Use execv instead of execve. > executable = os.fsencode(executable) > if os.path.dirname(executable): > executable_list = (executable,) > else: > # This matches the behavior of os._execvpe(). > executable_list = tuple( > os.path.join(os.fsencode(dir), executable) > for dir in os.get_exec_path(env)) > fds_to_keep = set(pass_fds) > fds_to_keep.add(errpipe_write) > self.pid = _posixsubprocess.fork_exec( > args, executable_list, > close_fds, tuple(sorted(map(int, fds_to_keep))), > cwd, env_list, > p2cread, p2cwrite, c2pread, c2pwrite, > errread, errwrite, > errpipe_read, errpipe_write, > restore_signals, start_new_session, preexec_fn) > self._child_created = True > finally: > # be sure the FD is closed no matter what > os.close(errpipe_write) > > # self._devnull is not always defined. > devnull_fd = getattr(self, '_devnull', None) > if p2cread != -1 and p2cwrite != -1 and p2cread != devnull_fd: > os.close(p2cread) > if c2pwrite != -1 and c2pread != -1 and c2pwrite != devnull_fd: > os.close(c2pwrite) > if errwrite != -1 and errread != -1 and errwrite != devnull_fd: > os.close(errwrite) > if devnull_fd is not None: > os.close(devnull_fd) > # Prevent a double close of these fds from __init__ on error. > self._closed_child_pipe_fds = True > > # Wait for exec to fail or succeed; possibly raising an > # exception (limited in size) > errpipe_data = bytearray() > while True: > part = os.read(errpipe_read, 50000) > errpipe_data += part > if not part or len(errpipe_data) > 50000: > break > finally: > # be sure the FD is closed no matter what > os.close(errpipe_read) > > if errpipe_data: > try: > pid, sts = os.waitpid(self.pid, 0) > if pid == self.pid: > self._handle_exitstatus(sts) > else: > self.returncode = sys.maxsize > except ChildProcessError: > pass > > try: > exception_name, hex_errno, err_msg = ( > errpipe_data.split(b':', 2)) > # The encoding here should match the encoding > # written in by the subprocess implementations > # like _posixsubprocess > err_msg = err_msg.decode() > except ValueError: > exception_name = b'SubprocessError' > hex_errno = b'0' > err_msg = 'Bad exception data from child: {!r}'.format( > bytes(errpipe_data)) > child_exception_type = getattr( > builtins, exception_name.decode('ascii'), > SubprocessError) > if issubclass(child_exception_type, OSError) and hex_errno: > errno_num = int(hex_errno, 16) > child_exec_never_called = (err_msg == "noexec") > if child_exec_never_called: > err_msg = "" > # The error must be from chdir(cwd). > err_filename = cwd > else: > err_filename = orig_executable > if errno_num != 0: > err_msg = os.strerror(errno_num) > if errno_num == errno.ENOENT: > err_msg += ': ' + repr(err_filename) >> raise child_exception_type(errno_num, err_msg, err_filename) >E FileNotFoundError: [Errno 2] No such file or directory: 'nvim': 'nvim' > >/usr/lib/python3.7/subprocess.py:1551: FileNotFoundError >____________________ test_escape_double_quotes_in_filenames ____________________ > >capsys = <_pytest.capture.CaptureFixture object at 0x7f047bdbe650> > > def test_escape_double_quotes_in_filenames(capsys): > filename = 'foo"bar"quux' > env = setup_env() >> nvim = run_nvim(env) > >tests/test_nvr.py:63: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_nvr.py:12: in run_nvim > nvim = subprocess.Popen(['nvim', '-nu', 'NORC', '--headless'], env=env) >/usr/lib/python3.7/subprocess.py:800: in __init__ > restore_signals, start_new_session) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <subprocess.Popen object at 0x7f047bdbeb10> >args = ['nvim', '-nu', 'NORC', '--headless'], executable = b'nvim' >preexec_fn = None, close_fds = True, pass_fds = (), cwd = None >env = {'A': 'neovim-remote-2.2.1.tar.gz', 'ABI': 'amd64', 'ABI_MIPS': '', 'ABI_PPC': '', ...} >startupinfo = None, creationflags = 0, shell = False, p2cread = -1 >p2cwrite = -1, c2pread = -1, c2pwrite = -1, errread = -1, errwrite = -1 >restore_signals = True, start_new_session = False > > def _execute_child(self, args, executable, preexec_fn, close_fds, > pass_fds, cwd, env, > startupinfo, creationflags, shell, > p2cread, p2cwrite, > c2pread, c2pwrite, > errread, errwrite, > restore_signals, start_new_session): > """Execute program (POSIX version)""" > > if isinstance(args, (str, bytes)): > args = [args] > else: > args = list(args) > > if shell: > # On Android the default shell is at '/system/bin/sh'. > unix_shell = ('/system/bin/sh' if > hasattr(sys, 'getandroidapilevel') else '/bin/sh') > args = [unix_shell, "-c"] + args > if executable: > args[0] = executable > > if executable is None: > executable = args[0] > orig_executable = executable > > # For transferring possible exec failure from child to parent. > # Data format: "exception name:hex errno:description" > # Pickle is not used; it is complex and involves memory allocation. > errpipe_read, errpipe_write = os.pipe() > # errpipe_write must not be in the standard io 0, 1, or 2 fd range. > low_fds_to_close = [] > while errpipe_write < 3: > low_fds_to_close.append(errpipe_write) > errpipe_write = os.dup(errpipe_write) > for low_fd in low_fds_to_close: > os.close(low_fd) > try: > try: > # We must avoid complex work that could involve > # malloc or free in the child process to avoid > # potential deadlocks, thus we do all this here. > # and pass it to fork_exec() > > if env is not None: > env_list = [] > for k, v in env.items(): > k = os.fsencode(k) > if b'=' in k: > raise ValueError("illegal environment variable name") > env_list.append(k + b'=' + os.fsencode(v)) > else: > env_list = None # Use execv instead of execve. > executable = os.fsencode(executable) > if os.path.dirname(executable): > executable_list = (executable,) > else: > # This matches the behavior of os._execvpe(). > executable_list = tuple( > os.path.join(os.fsencode(dir), executable) > for dir in os.get_exec_path(env)) > fds_to_keep = set(pass_fds) > fds_to_keep.add(errpipe_write) > self.pid = _posixsubprocess.fork_exec( > args, executable_list, > close_fds, tuple(sorted(map(int, fds_to_keep))), > cwd, env_list, > p2cread, p2cwrite, c2pread, c2pwrite, > errread, errwrite, > errpipe_read, errpipe_write, > restore_signals, start_new_session, preexec_fn) > self._child_created = True > finally: > # be sure the FD is closed no matter what > os.close(errpipe_write) > > # self._devnull is not always defined. > devnull_fd = getattr(self, '_devnull', None) > if p2cread != -1 and p2cwrite != -1 and p2cread != devnull_fd: > os.close(p2cread) > if c2pwrite != -1 and c2pread != -1 and c2pwrite != devnull_fd: > os.close(c2pwrite) > if errwrite != -1 and errread != -1 and errwrite != devnull_fd: > os.close(errwrite) > if devnull_fd is not None: > os.close(devnull_fd) > # Prevent a double close of these fds from __init__ on error. > self._closed_child_pipe_fds = True > > # Wait for exec to fail or succeed; possibly raising an > # exception (limited in size) > errpipe_data = bytearray() > while True: > part = os.read(errpipe_read, 50000) > errpipe_data += part > if not part or len(errpipe_data) > 50000: > break > finally: > # be sure the FD is closed no matter what > os.close(errpipe_read) > > if errpipe_data: > try: > pid, sts = os.waitpid(self.pid, 0) > if pid == self.pid: > self._handle_exitstatus(sts) > else: > self.returncode = sys.maxsize > except ChildProcessError: > pass > > try: > exception_name, hex_errno, err_msg = ( > errpipe_data.split(b':', 2)) > # The encoding here should match the encoding > # written in by the subprocess implementations > # like _posixsubprocess > err_msg = err_msg.decode() > except ValueError: > exception_name = b'SubprocessError' > hex_errno = b'0' > err_msg = 'Bad exception data from child: {!r}'.format( > bytes(errpipe_data)) > child_exception_type = getattr( > builtins, exception_name.decode('ascii'), > SubprocessError) > if issubclass(child_exception_type, OSError) and hex_errno: > errno_num = int(hex_errno, 16) > child_exec_never_called = (err_msg == "noexec") > if child_exec_never_called: > err_msg = "" > # The error must be from chdir(cwd). > err_filename = cwd > else: > err_filename = orig_executable > if errno_num != 0: > err_msg = os.strerror(errno_num) > if errno_num == errno.ENOENT: > err_msg += ': ' + repr(err_filename) >> raise child_exception_type(errno_num, err_msg, err_filename) >E FileNotFoundError: [Errno 2] No such file or directory: 'nvim': 'nvim' > >/usr/lib/python3.7/subprocess.py:1551: FileNotFoundError >=============================== warnings summary =============================== >/usr/lib/python3.7/site-packages/pynvim/compat.py:5 > /usr/lib/python3.7/site-packages/pynvim/compat.py:5: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses > from imp import find_module as original_find_module > >-- Docs: https://docs.pytest.org/en/stable/warnings.html >=========================== short test summary info ============================ >FAILED tests/test_nvr.py::test_remote_send - FileNotFoundError: [Errno 2] No ... >FAILED tests/test_nvr.py::test_escape_filenames_properly - FileNotFoundError:... >FAILED tests/test_nvr.py::test_escape_single_quotes_in_filenames - FileNotFou... >FAILED tests/test_nvr.py::test_escape_double_quotes_in_filenames - FileNotFou... >========================= 4 failed, 1 warning in 0.31s ========================= > * ERROR: dev-python/neovim-remote-2.2.1::gentoo failed (test phase): > * (no error message) > * > * Call stack: > * ebuild.sh, line 125: Called src_test > * environment, line 3020: Called distutils-r1_src_test > * environment, line 1311: Called _distutils-r1_run_foreach_impl 'python_test' > * environment, line 491: Called python_foreach_impl 'distutils-r1_run_phase' 'python_test' > * environment, line 2630: Called multibuild_foreach_variant '_python_multibuild_wrapper' 'distutils-r1_run_phase' 'python_test' > * environment, line 2094: Called _multibuild_run '_python_multibuild_wrapper' 'distutils-r1_run_phase' 'python_test' > * environment, line 2092: Called _python_multibuild_wrapper 'distutils-r1_run_phase' 'python_test' > * environment, line 884: Called distutils-r1_run_phase 'python_test' > * environment, line 1248: Called python_test > * environment, line 2980: Called die > * The specific snippet of code: > * pytest -vv || die > * > * If you need support, post the output of `emerge --info '=dev-python/neovim-remote-2.2.1::gentoo'`, > * the complete build log and the output of `emerge -pqv '=dev-python/neovim-remote-2.2.1::gentoo'`. > * The complete build log is located at '/var/log/emerge-log/build/dev-python/neovim-remote-2.2.1:20200819-124043.log'. > * For convenience, a symlink to the build log is located at '/var/tmp/portage/dev-python/neovim-remote-2.2.1/temp/build.log'. > * The ebuild environment file is located at '/var/tmp/portage/dev-python/neovim-remote-2.2.1/temp/environment'. > * Working directory: '/var/tmp/portage/dev-python/neovim-remote-2.2.1/work/neovim-remote-2.2.1' > * S: '/var/tmp/portage/dev-python/neovim-remote-2.2.1/work/neovim-remote-2.2.1'
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 738018
: 655496