[pypy-issue] Issue #2686: pysha3 fails tests due to mutable methods (?) (pypy/pypy)

Michał Górny issues-reply at bitbucket.org
Thu Oct 26 10:37:14 EDT 2017


New issue 2686: pysha3 fails tests due to mutable methods (?)
https://bitbucket.org/pypy/pypy/issues/2686/pysha3-fails-tests-due-to-mutable-methods

Michał Górny:

```
$ pypy --version
Python 2.7.13 (84a2f3e6a7f88f2fe698e473998755b3bd1a12e2, Oct 08 2017, 10:49:35)
[PyPy 5.9.0 with GCC 5.4.0]
```

Originally reported as [tiran/pysha3#13](https://github.com/tiran/pysha3/issues/13). The upstream author claims the failures are due to incompatible behavior with CPython:

> It looks like a bug in PyPy. You shouldn't be able to modify any members like methods or attributes.

Happens both with JIT enabled and disabled. To reproduce:

```
$ git clone https://github.com/tiran/pysha3
$ cd pysha3
$ pypy --jit off setup.py test
running test
running build
running build_py
running build_ext
test_basics (__main__.SHA3_224Tests) ... FAIL
test_hashlib (__main__.SHA3_224Tests) ... ok
test_hmac (__main__.SHA3_224Tests) ... ok
test_vectors (__main__.SHA3_224Tests) ... ok
test_vectors_unaligned (__main__.SHA3_224Tests) ... ok
test_basics (__main__.SHA3_256Tests) ... FAIL
test_hashlib (__main__.SHA3_256Tests) ... ok
test_hmac (__main__.SHA3_256Tests) ... ok
test_vectors (__main__.SHA3_256Tests) ... ok
test_vectors_unaligned (__main__.SHA3_256Tests) ... ok
test_basics (__main__.SHA3_384Tests) ... FAIL
test_hashlib (__main__.SHA3_384Tests) ... ok
test_hmac (__main__.SHA3_384Tests) ... ok
test_vectors (__main__.SHA3_384Tests) ... ok
test_vectors_unaligned (__main__.SHA3_384Tests) ... ok
test_basics (__main__.SHA3_512Tests) ... FAIL
test_hashlib (__main__.SHA3_512Tests) ... ok
test_hmac (__main__.SHA3_512Tests) ... ok
test_vectors (__main__.SHA3_512Tests) ... ok
test_vectors_unaligned (__main__.SHA3_512Tests) ... ok
test_basics (__main__.Shake_128Tests) ... FAIL
test_hashlib (__main__.Shake_128Tests) ... ok
test_hmac (__main__.Shake_128Tests) ... ok
test_vectors (__main__.Shake_128Tests) ... ok
test_vectors_unaligned (__main__.Shake_128Tests) ... ok
test_basics (__main__.Shake_256Tests) ... FAIL
test_hashlib (__main__.Shake_256Tests) ... ok
test_hmac (__main__.Shake_256Tests) ... ok
test_vectors (__main__.Shake_256Tests) ... ok
test_vectors_unaligned (__main__.Shake_256Tests) ... ok
test_basics (__main__.Keccak_224Tests) ... FAIL
test_hashlib (__main__.Keccak_224Tests) ... ok
test_hmac (__main__.Keccak_224Tests) ... ok
test_vectors (__main__.Keccak_224Tests) ... ok
test_vectors_unaligned (__main__.Keccak_224Tests) ... ok
test_basics (__main__.Keccak_256Tests) ... FAIL
test_hashlib (__main__.Keccak_256Tests) ... ok
test_hmac (__main__.Keccak_256Tests) ... ok
test_vectors (__main__.Keccak_256Tests) ... ok
test_vectors_unaligned (__main__.Keccak_256Tests) ... ok
test_basics (__main__.Keccak_384Tests) ... FAIL
test_hashlib (__main__.Keccak_384Tests) ... ok
test_hmac (__main__.Keccak_384Tests) ... ok
test_vectors (__main__.Keccak_384Tests) ... ok
test_vectors_unaligned (__main__.Keccak_384Tests) ... ok
test_basics (__main__.Keccak_512Tests) ... FAIL
test_hashlib (__main__.Keccak_512Tests) ... ok
test_hmac (__main__.Keccak_512Tests) ... ok
test_vectors (__main__.Keccak_512Tests) ... ok
test_vectors_unaligned (__main__.Keccak_512Tests) ... ok

======================================================================
FAIL: test_basics (__main__.SHA3_224Tests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "tests.py", line 110, in test_basics
    self.assertRaises(AttributeError, setattr, sha3, "digest", 3)
AssertionError: AttributeError not raised

======================================================================
FAIL: test_basics (__main__.SHA3_256Tests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "tests.py", line 110, in test_basics
    self.assertRaises(AttributeError, setattr, sha3, "digest", 3)
AssertionError: AttributeError not raised

======================================================================
FAIL: test_basics (__main__.SHA3_384Tests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "tests.py", line 110, in test_basics
    self.assertRaises(AttributeError, setattr, sha3, "digest", 3)
AssertionError: AttributeError not raised

======================================================================
FAIL: test_basics (__main__.SHA3_512Tests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "tests.py", line 110, in test_basics
    self.assertRaises(AttributeError, setattr, sha3, "digest", 3)
AssertionError: AttributeError not raised

======================================================================
FAIL: test_basics (__main__.Shake_128Tests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "tests.py", line 110, in test_basics
    self.assertRaises(AttributeError, setattr, sha3, "digest", 3)
AssertionError: AttributeError not raised

======================================================================
FAIL: test_basics (__main__.Shake_256Tests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "tests.py", line 110, in test_basics
    self.assertRaises(AttributeError, setattr, sha3, "digest", 3)
AssertionError: AttributeError not raised

======================================================================
FAIL: test_basics (__main__.Keccak_224Tests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "tests.py", line 110, in test_basics
    self.assertRaises(AttributeError, setattr, sha3, "digest", 3)
AssertionError: AttributeError not raised

======================================================================
FAIL: test_basics (__main__.Keccak_256Tests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "tests.py", line 110, in test_basics
    self.assertRaises(AttributeError, setattr, sha3, "digest", 3)
AssertionError: AttributeError not raised

======================================================================
FAIL: test_basics (__main__.Keccak_384Tests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "tests.py", line 110, in test_basics
    self.assertRaises(AttributeError, setattr, sha3, "digest", 3)
AssertionError: AttributeError not raised

======================================================================
FAIL: test_basics (__main__.Keccak_512Tests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "tests.py", line 110, in test_basics
    self.assertRaises(AttributeError, setattr, sha3, "digest", 3)
AssertionError: AttributeError not raised

----------------------------------------------------------------------
Ran 50 tests in 2.794s

FAILED (failures=10)
Traceback (most recent call last):
  File "setup.py", line 123, in <module>
    "Topic :: Security :: Cryptography",
  File "/usr/lib64/pypy/lib-python/2.7/distutils/core.py", line 151, in setup
    dist.run_commands()
  File "/usr/lib64/pypy/lib-python/2.7/distutils/dist.py", line 953, in run_commands
    self.run_command(cmd)
  File "/usr/lib64/pypy/lib-python/2.7/distutils/dist.py", line 972, in run_command
    cmd_obj.run()
  File "setup.py", line 64, in run
    errno = subprocess.check_call([sys.executable, "tests.py"], env=env)
  File "/usr/lib64/pypy/lib-python/2.7/subprocess.py", line 186, in check_call
    raise CalledProcessError(retcode, cmd)
CalledProcessError: Command '['/usr/bin/pypy', 'tests.py']' returned non-zero exit status 1

```




More information about the pypy-issue mailing list