about summary refs log tree commit diff
path: root/tests/ui/foreign
diff options
context:
space:
mode:
authorBen Kimock <kimockb@gmail.com>2024-04-18 17:30:07 -0400
committerBen Kimock <kimockb@gmail.com>2024-05-20 11:13:10 -0400
commit281178de4242af70ef6e4f2803ae8573c2778433 (patch)
treeeb044ad0c6da515997291bb3380fc861d3f52e79 /tests/ui/foreign
parent18b0a07d4912f4bdd7f74c03ca3a61f93609b323 (diff)
downloadrust-281178de4242af70ef6e4f2803ae8573c2778433.tar.gz
rust-281178de4242af70ef6e4f2803ae8573c2778433.zip
Add a Windows version of foreign2.rs
Diffstat (limited to 'tests/ui/foreign')
-rw-r--r--tests/ui/foreign/foreign2.rs28
1 files changed, 25 insertions, 3 deletions
diff --git a/tests/ui/foreign/foreign2.rs b/tests/ui/foreign/foreign2.rs
index eb24df35033..765f2833f3c 100644
--- a/tests/ui/foreign/foreign2.rs
+++ b/tests/ui/foreign/foreign2.rs
@@ -1,9 +1,8 @@
 //@ run-pass
-#![allow(dead_code)]
 //@ pretty-expanded FIXME #23616
-#![feature(rustc_private)]
 
-extern crate libc;
+#![allow(dead_code)]
+#![feature(rustc_private)]
 
 mod bar {
     extern "C" {}
@@ -13,7 +12,9 @@ mod zed {
     extern "C" {}
 }
 
+#[cfg(not(windows))]
 mod mlibc {
+    extern crate libc;
     use libc::{c_int, c_void, size_t, ssize_t};
 
     extern "C" {
@@ -21,6 +22,27 @@ mod mlibc {
     }
 }
 
+#[cfg(windows)]
+mod mlibc {
+    #![allow(non_snake_case)]
+
+    use std::ffi::c_void;
+
+    pub type BOOL = i32;
+    pub type HANDLE = *mut c_void;
+
+    #[link(name = "ntdll")]
+    extern "system" {
+        pub fn WriteFile(
+            hfile: HANDLE,
+            lpbuffer: *const u8,
+            nnumberofbytestowrite: u32,
+            lpnumberofbyteswritten: *mut u32,
+            lpoverlapped: *mut c_void,
+        ) -> BOOL;
+    }
+}
+
 mod baz {
     extern "C" {}
 }