Author: Wim Lavrijsen <[email protected]>
Branch: reflex-support
Changeset: r62766:66e9a50cc4a4
Date: 2013-03-25 13:12 -0700
http://bitbucket.org/pypy/pypy/changeset/66e9a50cc4a4/
Log: add test for globally overloaded (in-)equality operators
diff --git a/pypy/module/cppyy/test/advancedcpp.xml
b/pypy/module/cppyy/test/advancedcpp.xml
--- a/pypy/module/cppyy/test/advancedcpp.xml
+++ b/pypy/module/cppyy/test/advancedcpp.xml
@@ -33,6 +33,11 @@
<class name="some_class_with_data" />
<class name="some_class_with_data::some_data" />
+ <class name="some_comparable" />
+ <function name="operator=="/>
+ <function name="operator!="/>
+
+
<class name="ref_tester" />
<class name="std::vector<ref_tester>" />
diff --git a/pypy/module/cppyy/test/advancedcpp_LinkDef.h
b/pypy/module/cppyy/test/advancedcpp_LinkDef.h
--- a/pypy/module/cppyy/test/advancedcpp_LinkDef.h
+++ b/pypy/module/cppyy/test/advancedcpp_LinkDef.h
@@ -58,6 +58,10 @@
#pragma link C++ class some_class_with_data;
#pragma link C++ class some_class_with_data::some_data;
+#pragma link C++ class some_comparable;
+#pragma link C++ function operator==(const some_comparable&, const
some_comparable&);
+#pragma link C++ function operator!=(const some_comparable&, const
some_comparable&);
+
#pragma link C++ class ref_tester;
#pragma link C++ class std::vector<ref_tester>;
#pragma link C++ class pointer_pass;
diff --git a/pypy/module/cppyy/test/test_advancedcpp.py
b/pypy/module/cppyy/test/test_advancedcpp.py
--- a/pypy/module/cppyy/test/test_advancedcpp.py
+++ b/pypy/module/cppyy/test/test_advancedcpp.py
@@ -611,3 +611,21 @@
assert float(a) == 4321.
assert float(a) == a.m_d
+
+ def test20_comparator(self):
+ """Check that the global operator!=/== is picked up"""
+
+ from cppyy import gbl
+
+ a, b = gbl.some_comparable(), gbl.some_comparable()
+
+ assert a == b
+ assert b == a
+ assert a.__eq__(b)
+ assert b.__eq__(a)
+ assert a.__ne__(a)
+ assert b.__ne__(b)
+ assert a.__eq__(b) == True
+ assert b.__eq__(a) == True
+ assert a.__eq__(a) == False
+ assert b.__eq__(b) == False
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit