From 0913a6272037f386377267a7290848eae2a757ba Mon Sep 17 00:00:00 2001 From: Paul Young <84700+paulyoung@users.noreply.github.com> Date: Sat, 8 Mar 2025 13:35:52 -0800 Subject: [PATCH] Attempt to add some failing test cases for #1342 https://github.com/google/autocxx/issues/1342 --- integration-tests/tests/integration_test.rs | 56 +++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/integration-tests/tests/integration_test.rs b/integration-tests/tests/integration_test.rs index 9d6590023..a86cec199 100644 --- a/integration-tests/tests/integration_test.rs +++ b/integration-tests/tests/integration_test.rs @@ -12578,6 +12578,62 @@ fn test_opaque_directive() { ); } +#[test] +fn test_generate_class() { + let cxx = ""; + let hdr = indoc! {" + #ifndef MY_CLASS + #define MY_CLASS + + #include + + class MyClass + { + public: + MyClass(); + virtual ~MyClass(); + + static void* operator new( size_t size ); + }; + + #endif // MY_CLASS + "}; + let rs = quote! {}; + let directives = quote! { + generate!("MyClass") + }; + run_test_ex(cxx, hdr, rs, directives, None, None, None); +} + +#[test] +fn test_subclass_codegen() { + let cxx = ""; + let hdr = indoc! {" + #ifndef MY_CLASS + #define MY_CLASS + + #include + + class MyClass + { + public: + MyClass(); + virtual ~MyClass(); + + static void* operator new( size_t size ); + }; + + #endif // MY_CLASS + "}; + let rs = quote! { + pub struct MySubclass {} + }; + let directives = quote! { + subclass!("MyClass", MySubclass) + }; + run_test_ex(cxx, hdr, rs, directives, None, None, None); +} + // Yet to test: // - Ifdef // - Out param pointers