summaryrefslogtreecommitdiffstats
path: root/third_party/rust/autocfg-0.1.6/src/tests.rs
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/rust/autocfg-0.1.6/src/tests.rs')
-rw-r--r--third_party/rust/autocfg-0.1.6/src/tests.rs99
1 files changed, 99 insertions, 0 deletions
diff --git a/third_party/rust/autocfg-0.1.6/src/tests.rs b/third_party/rust/autocfg-0.1.6/src/tests.rs
new file mode 100644
index 0000000000..304d989bcb
--- /dev/null
+++ b/third_party/rust/autocfg-0.1.6/src/tests.rs
@@ -0,0 +1,99 @@
+use super::AutoCfg;
+
+impl AutoCfg {
+ fn core_std(&self, path: &str) -> String {
+ let krate = if self.no_std { "core" } else { "std" };
+ format!("{}::{}", krate, path)
+ }
+}
+
+#[test]
+fn autocfg_version() {
+ let ac = AutoCfg::with_dir("target").unwrap();
+ println!("version: {:?}", ac.rustc_version);
+ assert!(ac.probe_rustc_version(1, 0));
+}
+
+#[test]
+fn version_cmp() {
+ use super::version::Version;
+ let v123 = Version::new(1, 2, 3);
+
+ assert!(Version::new(1, 0, 0) < v123);
+ assert!(Version::new(1, 2, 2) < v123);
+ assert!(Version::new(1, 2, 3) == v123);
+ assert!(Version::new(1, 2, 4) > v123);
+ assert!(Version::new(1, 10, 0) > v123);
+ assert!(Version::new(2, 0, 0) > v123);
+}
+
+#[test]
+fn probe_add() {
+ let ac = AutoCfg::with_dir("target").unwrap();
+ let add = ac.core_std("ops::Add");
+ let add_rhs = ac.core_std("ops::Add<i32>");
+ let add_rhs_output = ac.core_std("ops::Add<i32, Output = i32>");
+ assert!(ac.probe_path(&add));
+ assert!(ac.probe_trait(&add));
+ assert!(ac.probe_trait(&add_rhs));
+ assert!(ac.probe_trait(&add_rhs_output));
+ assert!(ac.probe_type(&add_rhs_output));
+}
+
+#[test]
+fn probe_as_ref() {
+ let ac = AutoCfg::with_dir("target").unwrap();
+ let as_ref = ac.core_std("convert::AsRef");
+ let as_ref_str = ac.core_std("convert::AsRef<str>");
+ assert!(ac.probe_path(&as_ref));
+ assert!(ac.probe_trait(&as_ref_str));
+ assert!(ac.probe_type(&as_ref_str));
+}
+
+#[test]
+fn probe_i128() {
+ let ac = AutoCfg::with_dir("target").unwrap();
+ let missing = !ac.probe_rustc_version(1, 26);
+ let i128_path = ac.core_std("i128");
+ assert!(missing ^ ac.probe_path(&i128_path));
+ assert!(missing ^ ac.probe_type("i128"));
+}
+
+#[test]
+fn probe_sum() {
+ let ac = AutoCfg::with_dir("target").unwrap();
+ let missing = !ac.probe_rustc_version(1, 12);
+ let sum = ac.core_std("iter::Sum");
+ let sum_i32 = ac.core_std("iter::Sum<i32>");
+ assert!(missing ^ ac.probe_path(&sum));
+ assert!(missing ^ ac.probe_trait(&sum));
+ assert!(missing ^ ac.probe_trait(&sum_i32));
+ assert!(missing ^ ac.probe_type(&sum_i32));
+}
+
+#[test]
+fn probe_std() {
+ let ac = AutoCfg::with_dir("target").unwrap();
+ assert_eq!(ac.probe_sysroot_crate("std"), !ac.no_std);
+}
+
+#[test]
+fn probe_alloc() {
+ let ac = AutoCfg::with_dir("target").unwrap();
+ let missing = !ac.probe_rustc_version(1, 36);
+ assert!(missing ^ ac.probe_sysroot_crate("alloc"));
+}
+
+#[test]
+fn probe_bad_sysroot_crate() {
+ let ac = AutoCfg::with_dir("target").unwrap();
+ assert!(!ac.probe_sysroot_crate("doesnt_exist"));
+}
+
+#[test]
+fn probe_no_std() {
+ let ac = AutoCfg::with_dir("target").unwrap();
+ assert!(ac.probe_type("i32"));
+ assert!(ac.probe_type("[i32]"));
+ assert_eq!(ac.probe_type("Vec<i32>"), !ac.no_std);
+}