Skip to content

Commit 28416bb

Browse files
committed
skip test_collections.py#test_issue_4920, it will always fail in graalpython due to different set order
1 parent a3120f4 commit 28416bb

File tree

2 files changed

+36
-0
lines changed

2 files changed

+36
-0
lines changed

graalpython/com.oracle.graal.python.test/src/tests/test_set.py

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
# ankitv 10/10/13
4141
# Iterating by Sequence Index
4242

43+
from collections.abc import MutableSet
4344

4445
def assert_raises(err, fn, *args, **kwargs):
4546
raised = False
@@ -478,3 +479,37 @@ def iterate_and_update(it):
478479

479480
s = {1, 2}
480481
assert_raises(RuntimeError, iterate_and_update, s)
482+
483+
# copied and modified test_collections.py#test_issue_4920
484+
# the original will always fail on graalpython due to different set order
485+
def test_MutableSet_pop():
486+
class MySet(MutableSet):
487+
__slots__=['__s']
488+
def __init__(self,items=None):
489+
if items is None:
490+
items=[]
491+
self.__s=set(items)
492+
def __contains__(self,v):
493+
return v in self.__s
494+
def __iter__(self):
495+
return iter(self.__s)
496+
def __len__(self):
497+
return len(self.__s)
498+
def add(self,v):
499+
result=v not in self.__s
500+
self.__s.add(v)
501+
return result
502+
def discard(self,v):
503+
result=v in self.__s
504+
self.__s.discard(v)
505+
return result
506+
def __repr__(self):
507+
return "MySet(%s)" % repr(list(self))
508+
l = [5,43]
509+
s = MySet(l)
510+
v1 = s.pop()
511+
assert v1 in l
512+
v2 = s.pop()
513+
assert v2 in l
514+
assert v1 != v2
515+
assert len(s) == 0

graalpython/lib-python/3/test/test_collections.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1399,6 +1399,7 @@ def test_issue_5647(self):
13991399
s &= WithSet('cdef') # This used to fail
14001400
self.assertEqual(set(s), set('cd'))
14011401

1402+
@support.impl_detail("relies on element order in a set", graalvm=False)
14021403
def test_issue_4920(self):
14031404
# MutableSet.pop() method did not work
14041405
class MySet(MutableSet):

0 commit comments

Comments
 (0)