From 19a5f3f4a5adcb2f2bb9e24c20021d1ee52300f2 Mon Sep 17 00:00:00 2001 From: William S Fulton Date: Thu, 6 Oct 2022 20:36:49 +0100 Subject: [PATCH] Remove some final testing Given Visual C++ does not work with these tests (tested with VS2022 17.3 and earlier) --- Examples/test-suite/cpp11_final_class.i | 18 +++++++++++++++--- .../python/cpp11_final_class_runme.py | 15 +++++++++------ 2 files changed, 24 insertions(+), 9 deletions(-) diff --git a/Examples/test-suite/cpp11_final_class.i b/Examples/test-suite/cpp11_final_class.i index e6a29e988..4f2429320 100644 --- a/Examples/test-suite/cpp11_final_class.i +++ b/Examples/test-suite/cpp11_final_class.i @@ -8,7 +8,7 @@ %rename(Space1_final) Space1::final::final; #endif #if defined(SWIGOCAML) -%rename(finale) Space2::FinalEnum1::final; +%rename(finale) BrokenSpace::FinalEnum1::final; #endif %inline %{ @@ -105,9 +105,22 @@ struct FinalVar9 { Y final{9}; }; struct FinalVar10 { - void a10(class Y final) {} void b10(Y final) {} }; +} +%} + +// Unfortunately the use of final in BrokenSpace does not work with Visual C++ +// so we limit testing to parsing these by SWIG and then ignoring it all. +%ignore BrokenSpace::FinalVar11; +%ignore BrokenSpace::FinalEnum1; +%ignore BrokenSpace::FinalEnum2; + +namespace BrokenSpace { +using Space2::Y; +struct FinalVar11 { + void a11(class Y final) {} +}; struct FinalEnum1 { enum Enum1 { one, two, final }; void enum_in(Enum1 e) {} @@ -117,7 +130,6 @@ struct FinalEnum2 { enum Enum2 final; }; } -%} %rename(Space3_final) Space3::final; %inline %{ diff --git a/Examples/test-suite/python/cpp11_final_class_runme.py b/Examples/test-suite/python/cpp11_final_class_runme.py index 568a1ca1a..54e289043 100644 --- a/Examples/test-suite/python/cpp11_final_class_runme.py +++ b/Examples/test-suite/python/cpp11_final_class_runme.py @@ -49,14 +49,17 @@ fv9 = FinalVar9() yy = fv9.final fv10 = FinalVar10() -fv10.a10(y) fv10.b10(y) -fe1 = FinalEnum1() -fe1.enum_in(FinalEnum1.final) - -fe2 = FinalEnum2() -fe2f = fe2.final +# Removed due to Visual C++ compiler limitations +# fv11 = FinalVar11() +# fv11.a11(y) +# +# fe1 = FinalEnum1() +# fe1.enum_in(FinalEnum1.final) +# +# fe2 = FinalEnum2() +# fe2f = fe2.final s3f = Space3_final() s3f.fmethod();