summaryrefslogtreecommitdiffstats
path: root/vendor/core-foundation/tests
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-04 12:41:41 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-04 12:41:41 +0000
commit10ee2acdd26a7f1298c6f6d6b7af9b469fe29b87 (patch)
treebdffd5d80c26cf4a7a518281a204be1ace85b4c1 /vendor/core-foundation/tests
parentReleasing progress-linux version 1.70.0+dfsg1-9~progress7.99u1. (diff)
downloadrustc-10ee2acdd26a7f1298c6f6d6b7af9b469fe29b87.tar.xz
rustc-10ee2acdd26a7f1298c6f6d6b7af9b469fe29b87.zip
Merging upstream version 1.70.0+dfsg2.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'vendor/core-foundation/tests')
-rw-r--r--vendor/core-foundation/tests/use_macro_outside_crate.rs28
1 files changed, 28 insertions, 0 deletions
diff --git a/vendor/core-foundation/tests/use_macro_outside_crate.rs b/vendor/core-foundation/tests/use_macro_outside_crate.rs
new file mode 100644
index 000000000..ff1c17d4c
--- /dev/null
+++ b/vendor/core-foundation/tests/use_macro_outside_crate.rs
@@ -0,0 +1,28 @@
+#[macro_use]
+extern crate core_foundation;
+
+use core_foundation::base::{CFComparisonResult, TCFType};
+use std::os::raw::c_void;
+
+// sys equivalent stuff that must be declared
+
+#[repr(C)]
+pub struct __CFFooBar(c_void);
+
+pub type CFFooBarRef = *const __CFFooBar;
+
+extern "C" {
+ pub fn CFFooBarGetTypeID() -> core_foundation::base::CFTypeID;
+ pub fn fake_compare(
+ this: CFFooBarRef,
+ other: CFFooBarRef,
+ context: *mut c_void,
+ ) -> CFComparisonResult;
+}
+
+// Try to use the macros outside of the crate
+
+declare_TCFType!(CFFooBar, CFFooBarRef);
+impl_TCFType!(CFFooBar, CFFooBarRef, CFFooBarGetTypeID);
+impl_CFTypeDescription!(CFFooBar);
+impl_CFComparison!(CFFooBar, fake_compare);