Skip to content

Commit b4cde17

Browse files
committed
Skip compiling diamond pattern tests by default
1 parent dbb6c7e commit b4cde17

File tree

2 files changed

+16
-3
lines changed

2 files changed

+16
-3
lines changed

tests/test_virtual_functions.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -472,6 +472,11 @@ class Final: public virtual Interface {
472472
}
473473
};
474474

475+
#ifndef RUN_DIAMOND
476+
#define RUN_DIAMOND 0
477+
#endif /* ifndef RUN_DIAMOND */
478+
479+
#if RUN_DIAMOND
475480
class B_Concrete: public virtual Interface {
476481
public:
477482
virtual int run(Interface* ptr) {
@@ -496,10 +501,13 @@ class Diamond: public C_Concrete, public B_Concrete {
496501
#pragma warning(pop)
497502
#endif
498503

504+
#endif /* if RUN_DIAMOND */
505+
499506
void initialize_virtual_inheritance(py::module &m) {
500507
py::class_<Interface>(m, "Interface").def("run", &Interface::run);
501508
py::class_<Final, Interface>(m, "Final").def(py::init<>());
502509

510+
#if RUN_DIAMOND
503511
py::class_<B_Concrete, Interface>(m, "B_Concrete");
504512
py::class_<C_Concrete, Interface>(m, "C_Concrete");
505513
py::class_<Diamond, B_Concrete, C_Concrete>(m, "Diamond").def(py::init<>());
@@ -508,4 +516,5 @@ void initialize_virtual_inheritance(py::module &m) {
508516
Diamond d = Diamond();
509517
return d.run(&d);
510518
}, "Runs the diamond test in c++");
519+
#endif /* if RUN_DIAMOND */
511520
}

tests/test_virtual_functions.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -375,6 +375,10 @@ def test_virtual_inheritance():
375375

376376
final = m.Final()
377377
assert final.run(final) == 6
378-
diamond = m.Diamond()
379-
assert diamond.run(diamond) == 4
380-
assert m.run_virtual_inheritance() == 4
378+
try:
379+
diamond = m.Diamond()
380+
except AttributeError:
381+
pass
382+
else:
383+
assert diamond.run(diamond) == 4
384+
assert m.run_virtual_inheritance() == 4

0 commit comments

Comments
 (0)