Home - Summaries: (main) : (py3.11) : Everything - Nightly builds - Benchmarks - RPython - Builders - About

rlib/test/test_rposix_stat.py::TestPosixStatFunctions::()::test_stat3_ino_dev

self = <rpython.rlib.test.test_rposix_stat.TestPosixStatFunctions instance at 0x0000022e69295260>

    @py.test.mark.skipif(sys.platform != 'win32', reason='win32 test')
    def test_stat3_ino_dev(self):
        # PyPy 2 uses python3 semantics
        # st = rposix_stat.stat('C:\\')
        # assert st.st_dev == st.st_ino == 0
>       st = rposix_stat.stat3('C:\\')

rlib\test\test_rposix_stat.py:79: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
rlib\rposix_stat.py:657: in stat3
    return win32_xstat3(traits, path, traverse=True)
rlib\rposix_stat.py:724: in win32_xstat3
    return win32_xstat_impl(win32traits, path, traverse, fileInfo, tagInfo)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

traits = <class rpython.rlib.rwin32file.Win32Traits at 0x0000022e692d1f30>
path = 'C:\\', traverse = True
fileInfo = <* DEAD Struct BY_HANDLE_FILE_INFORMATION { c_dwFileAttributes, c_ftCreationTi...izeHigh, c_nFileSizeLow, c_nNumberOfLinks, c_nFileIndexHigh, c_nFileIndexLow }>
tagInfo = <* DEAD Struct FILE_ATTRIBUTE_TAG_INFO { c_FileAttributes, c_ReparseTag }>

    @specialize.arg(0)
    def win32_xstat_impl(traits, path, traverse, fileInfo, tagInfo):
        access = traits.FILE_READ_ATTRIBUTES
        flags = traits.FILE_FLAG_BACKUP_SEMANTICS
        isUnhandledTag = False
        if not traverse:
            flags |= traits.FILE_FLAG_OPEN_REPARSE_POINT
        with rffi.scoped_utf82wcharp(path, codepoints_in_utf8(path)) as buf:
            hFile = traits.CreateFile(buf, access, 0,
                lltype.nullptr(rwin32.LPSECURITY_ATTRIBUTES.TO),
                traits.OPEN_EXISTING, flags, rwin32.NULL_HANDLE)
    
        if hFile == rwin32.INVALID_HANDLE_VALUE:
            # Either the path doesn't exist, or the caller lacks access
            errcode = rwin32.GetLastError_saved()
            if (errcode == traits.ERROR_ACCESS_DENIED or
                errcode == traits.ERROR_SHARING_VIOLATION):
                # Try reading the parent directory
                if win32_attributes_from_dir(traits, path, fileInfo, tagInfo) == 0:
                    raise WindowsError(rwin32.GetLastError_saved(),
                                       "win32_attributes_from_dir failed")
                if widen(fileInfo.c_dwFileAttributes) & traits.FILE_ATTRIBUTE_REPARSE_POINT:
                    if traverse or not IsReparseTagNameSurrogate(tagInfo.c_ReparseTag):
                        raise WindowsError(rwin32.GetLastError_saved(),
                                           "win32_xstat failed")
            elif errcode == traits.ERROR_INVALID_PARAMETER:
                # \\.\con requires read or write access.
                with rffi.scoped_utf82wcharp(path, codepoints_in_utf8(path)) as buf:
                    hFile = traits.CreateFile(buf,
                                access | traits.GENERIC_READ,
                                traits.FILE_SHARE_READ | traits.FILE_SHARE_WRITE,
                                lltype.nullptr(rwin32.LPSECURITY_ATTRIBUTES.TO),
                                traits.OPEN_EXISTING, flags, rwin32.NULL_HANDLE)
                if hFile == rwin32.INVALID_HANDLE_VALUE:
                    raise WindowsError(rwin32.GetLastError_saved(),
                                       "win32_xstat failed")
            elif errcode == traits.ERROR_CANT_ACCESS_FILE:
                # bpo37834: opne unhandled reparse points if traverse fails
                if traverse:
                    traverse = False
                    isUnhandledTag = True
                    with rffi.scoped_utf82wcharp(path, codepoints_in_utf8(path)) as buf:
                        hFile = traits.CreateFile(buf, access, 0,
                            lltype.nullptr(rwin32.LPSECURITY_ATTRIBUTES.TO),
                            traits.OPEN_EXISTING,
                            flags | traits.FILE_FLAG_OPEN_REPARSE_POINT,
                            rwin32.NULL_HANDLE)
                if hFile == rwin32.INVALID_HANDLE_VALUE:
                    raise WindowsError(rwin32.GetLastError_saved(),
                                       "win32_xstat failed")
            else:
>               raise WindowsError(errcode, "os_stat failed")
E               WindowsError: [Error 2] os_stat failed

rlib\rposix_stat.py:777: WindowsError
builder: rpython-win-x86-64 build #399
test: rlib/test/test_rposix_stat/py/TestPosixStatFunctions/()/test_stat3_ino_dev