diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/expectations/class.rs | 49 | ||||
-rw-r--r-- | tests/expectations/const_tparam.rs | 3 | ||||
-rw-r--r-- | tests/headers/class.hpp | 9 | ||||
-rw-r--r-- | tests/headers/const_tparam.hpp | 1 |
4 files changed, 61 insertions, 1 deletions
diff --git a/tests/expectations/class.rs b/tests/expectations/class.rs index 5951e0e6..4f736342 100644 --- a/tests/expectations/class.rs +++ b/tests/expectations/class.rs @@ -72,3 +72,52 @@ fn bindgen_test_layout_WithUnion() { impl Clone for WithUnion { fn clone(&self) -> Self { *self } } +#[repr(C)] +#[derive(Debug, Copy)] +pub struct RealAbstractionWithTonsOfMethods { + pub _address: u8, +} +#[test] +fn bindgen_test_layout_RealAbstractionWithTonsOfMethods() { + assert_eq!(::std::mem::size_of::<RealAbstractionWithTonsOfMethods>() , + 1usize); + assert_eq!(::std::mem::align_of::<RealAbstractionWithTonsOfMethods>() , + 1usize); +} +extern "C" { + #[link_name = "_ZNK32RealAbstractionWithTonsOfMethods3barEv"] + pub fn RealAbstractionWithTonsOfMethods_bar(this: + *const RealAbstractionWithTonsOfMethods); +} +extern "C" { + #[link_name = "_ZN32RealAbstractionWithTonsOfMethods3barEv"] + pub fn RealAbstractionWithTonsOfMethods_bar1(this: + *mut RealAbstractionWithTonsOfMethods); +} +extern "C" { + #[link_name = "_ZN32RealAbstractionWithTonsOfMethods3barEi"] + pub fn RealAbstractionWithTonsOfMethods_bar2(this: + *mut RealAbstractionWithTonsOfMethods, + foo: ::std::os::raw::c_int); +} +extern "C" { + #[link_name = "_ZN32RealAbstractionWithTonsOfMethods3staEv"] + pub fn RealAbstractionWithTonsOfMethods_sta(); +} +impl Clone for RealAbstractionWithTonsOfMethods { + fn clone(&self) -> Self { *self } +} +impl RealAbstractionWithTonsOfMethods { + #[inline] + pub unsafe fn bar(&self) { RealAbstractionWithTonsOfMethods_bar(&*self) } + #[inline] + pub unsafe fn bar1(&mut self) { + RealAbstractionWithTonsOfMethods_bar1(&mut *self) + } + #[inline] + pub unsafe fn bar2(&mut self, foo: ::std::os::raw::c_int) { + RealAbstractionWithTonsOfMethods_bar2(&mut *self, foo) + } + #[inline] + pub unsafe fn sta() { RealAbstractionWithTonsOfMethods_sta() } +} diff --git a/tests/expectations/const_tparam.rs b/tests/expectations/const_tparam.rs index 59649626..3ed10d28 100644 --- a/tests/expectations/const_tparam.rs +++ b/tests/expectations/const_tparam.rs @@ -7,5 +7,6 @@ #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct C<T> { - pub foo: *mut T, + pub foo: *const T, + pub bar: *mut T, } diff --git a/tests/headers/class.hpp b/tests/headers/class.hpp index a34d4d8e..e753f186 100644 --- a/tests/headers/class.hpp +++ b/tests/headers/class.hpp @@ -18,3 +18,12 @@ union Union { class WithUnion { Union data; }; + +class RealAbstractionWithTonsOfMethods { + void foo(); +public: + void bar() const; + void bar(); + void bar(int foo); + static void sta(); +}; diff --git a/tests/headers/const_tparam.hpp b/tests/headers/const_tparam.hpp index a2db574c..05f26e4a 100644 --- a/tests/headers/const_tparam.hpp +++ b/tests/headers/const_tparam.hpp @@ -1,4 +1,5 @@ template<typename T> class C { const T* const foo; + const T* bar; }; |