summaryrefslogtreecommitdiffstats
path: root/third_party/rust/target-lexicon/src/host.rs
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/rust/target-lexicon/src/host.rs')
-rw-r--r--third_party/rust/target-lexicon/src/host.rs56
1 files changed, 56 insertions, 0 deletions
diff --git a/third_party/rust/target-lexicon/src/host.rs b/third_party/rust/target-lexicon/src/host.rs
new file mode 100644
index 0000000000..4c6ad5ba54
--- /dev/null
+++ b/third_party/rust/target-lexicon/src/host.rs
@@ -0,0 +1,56 @@
+use crate::{Architecture, BinaryFormat, Environment, OperatingSystem, Triple, Vendor};
+
+// Include the implementations of the `HOST` object containing information
+// about the current host.
+include!(concat!(env!("OUT_DIR"), "/host.rs"));
+
+#[cfg(test)]
+mod tests {
+ #[cfg(target_os = "linux")]
+ #[test]
+ fn test_linux() {
+ use super::*;
+ assert_eq!(OperatingSystem::host(), OperatingSystem::Linux);
+ }
+
+ #[cfg(target_os = "macos")]
+ #[test]
+ fn test_macos() {
+ use super::*;
+ assert_eq!(OperatingSystem::host(), OperatingSystem::Darwin);
+ }
+
+ #[cfg(windows)]
+ #[test]
+ fn test_windows() {
+ use super::*;
+ assert_eq!(OperatingSystem::host(), OperatingSystem::Windows);
+ }
+
+ #[cfg(target_pointer_width = "16")]
+ #[test]
+ fn test_ptr16() {
+ use super::*;
+ assert_eq!(Architecture::host().pointer_width().unwrap().bits(), 16);
+ }
+
+ #[cfg(target_pointer_width = "32")]
+ #[test]
+ fn test_ptr32() {
+ use super::*;
+ assert_eq!(Architecture::host().pointer_width().unwrap().bits(), 32);
+ }
+
+ #[cfg(target_pointer_width = "64")]
+ #[test]
+ fn test_ptr64() {
+ use super::*;
+ assert_eq!(Architecture::host().pointer_width().unwrap().bits(), 64);
+ }
+
+ #[test]
+ fn host_object() {
+ use super::*;
+ assert_eq!(HOST, Triple::host());
+ }
+}