pyfuse3 icon indicating copy to clipboard operation
pyfuse3 copied to clipboard

Test case test_rounding fails on i686

Open sternenseemann opened this issue 4 years ago • 4 comments

Looks like an integer size problem:

============================= test session starts ==============================
platform linux -- Python 3.9.6, pytest-6.2.4, py-1.10.0, pluggy-0.13.1
rootdir: /build/pyfuse3-3.2.0
plugins: trio-0.7.0
collected 17 items / 1 deselected / 16 selected                                

test/test_api.py ...s.                                                   [ 31%]
test/test_examples.py ssss                                               [ 56%]
test/test_fs.py ssssss                                                   [ 93%]
test/test_rounding.py F                                                  [100%]

=================================== FAILURES ===================================
________________________________ test_rounding _________________________________

    def test_rounding():
        # Incorrect division previously resulted in rounding errors for
        # all dates.
        entry = pyfuse3.EntryAttributes()
    
        # Approximately 100 years, ending in 999
        secs = 100 * 365 * 24 * 3600 + 999
        nanos = _NANOS_PER_SEC - 1
    
        total = secs * _NANOS_PER_SEC + nanos
    
>       entry.st_atime_ns = total

test/test_rounding.py:31: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

>   self.attr.st_atime = val // _NANOS_PER_SEC
E   OverflowError: Python int too large to convert to C long

src/pyfuse3.pyx:295: OverflowError
=============================== warnings summary ===============================
test/test_fs.py:47
  /build/pyfuse3-3.2.0/test/test_fs.py:47: PytestDeprecationWarning: @pytest.yield_fixture is deprecated.
  Use @pytest.fixture instead; they are the same.
    @pytest.yield_fixture()

-- Docs: https://docs.pytest.org/en/stable/warnings.html
=========================== short test summary info ============================
FAILED test/test_rounding.py::test_rounding - OverflowError: Python int too l...
====== 1 failed, 4 passed, 11 skipped, 1 deselected, 1 warning in 27.32s =======

sternenseemann avatar Aug 31 '21 10:08 sternenseemann

Thanks for taking the time to report this issue!

Unfortunately, this project does not currently have any active, regular contributors. As the maintainer, I try to review pull requests and make regular releases, but unfortunately I have no capacity to do significant development beyond that. Issue reports that do not come with a pull request or clearly have high impact on a large number of users are therefore likely to languish.

I understand that this is frustrating for users, but I hope you can also understand that any development work that I do on this project has to compete with spending time with my family, doing work that I get paid for, doing something recreational without a computer, or working on features/bugs that affect me personally. Most bugs and ideas - unfortunately including this one - loose out in this competition.

In other words, unless you plan to work on this yourself or can recruit someone who will, it's unlikely that anyone is going to do anything about it anytime soon.

This is just to calibrate expectations. I am grateful that you took the time and effort to report this! I'll leave this issue open to document the problem and who knows, maybe someone will pick it up after all :-).

Nikratio avatar Aug 31 '21 17:08 Nikratio

Had this issue pop up as well on the referenced degoo_drive program.

JVTEAM avatar Sep 18 '22 19:09 JVTEAM

@JVTEAM so you are using a 32bit platform? (see topic of this issue)

ThomasWaldmann avatar Sep 18 '22 21:09 ThomasWaldmann

@JVTEAM so you are using a 32bit platform? (see topic of this issue)

Yes, it's a raspberry pi 3.

JVTEAM avatar Sep 19 '22 01:09 JVTEAM