]> git.proxmox.com Git - rustc.git/blob - library/core/tests/lib.rs
New upstream version 1.70.0+dfsg1
[rustc.git] / library / core / tests / lib.rs
1 #![feature(alloc_layout_extra)]
2 #![feature(array_chunks)]
3 #![feature(array_methods)]
4 #![feature(array_windows)]
5 #![feature(bigint_helper_methods)]
6 #![feature(cell_update)]
7 #![feature(const_align_offset)]
8 #![feature(const_assume)]
9 #![feature(const_align_of_val_raw)]
10 #![feature(const_black_box)]
11 #![feature(const_bool_to_option)]
12 #![feature(const_caller_location)]
13 #![feature(const_cell_into_inner)]
14 #![feature(const_convert)]
15 #![feature(const_hash)]
16 #![feature(const_heap)]
17 #![feature(const_maybe_uninit_as_mut_ptr)]
18 #![feature(const_maybe_uninit_assume_init_read)]
19 #![feature(const_nonnull_new)]
20 #![feature(const_num_from_num)]
21 #![feature(const_pointer_byte_offsets)]
22 #![feature(const_pointer_is_aligned)]
23 #![feature(const_ptr_as_ref)]
24 #![feature(const_ptr_read)]
25 #![feature(const_ptr_write)]
26 #![feature(const_trait_impl)]
27 #![feature(const_likely)]
28 #![feature(const_location_fields)]
29 #![feature(core_intrinsics)]
30 #![feature(core_private_bignum)]
31 #![feature(core_private_diy_float)]
32 #![feature(dec2flt)]
33 #![feature(div_duration)]
34 #![feature(duration_consts_float)]
35 #![feature(duration_constants)]
36 #![feature(exact_size_is_empty)]
37 #![feature(extern_types)]
38 #![feature(flt2dec)]
39 #![feature(fmt_internals)]
40 #![feature(float_minimum_maximum)]
41 #![feature(future_join)]
42 #![feature(generic_assert_internals)]
43 #![feature(array_try_from_fn)]
44 #![feature(hasher_prefixfree_extras)]
45 #![feature(hashmap_internals)]
46 #![feature(try_find)]
47 #![feature(inline_const)]
48 #![feature(is_sorted)]
49 #![feature(layout_for_ptr)]
50 #![feature(pattern)]
51 #![feature(sort_internals)]
52 #![feature(slice_take)]
53 #![feature(slice_from_ptr_range)]
54 #![feature(split_as_slice)]
55 #![feature(maybe_uninit_uninit_array)]
56 #![feature(maybe_uninit_write_slice)]
57 #![feature(maybe_uninit_uninit_array_transpose)]
58 #![feature(min_specialization)]
59 #![feature(numfmt)]
60 #![feature(step_trait)]
61 #![feature(str_internals)]
62 #![feature(std_internals)]
63 #![feature(test)]
64 #![feature(trusted_len)]
65 #![feature(try_blocks)]
66 #![feature(try_trait_v2)]
67 #![feature(slice_internals)]
68 #![feature(slice_partition_dedup)]
69 #![feature(ip)]
70 #![feature(ip_in_core)]
71 #![feature(iter_advance_by)]
72 #![feature(iter_array_chunks)]
73 #![feature(iter_collect_into)]
74 #![feature(iter_partition_in_place)]
75 #![feature(iter_intersperse)]
76 #![feature(iter_is_partitioned)]
77 #![feature(iter_next_chunk)]
78 #![feature(iter_order_by)]
79 #![feature(iter_repeat_n)]
80 #![feature(iterator_try_collect)]
81 #![feature(iterator_try_reduce)]
82 #![feature(const_ip)]
83 #![feature(const_ipv4)]
84 #![feature(const_ipv6)]
85 #![feature(const_mut_refs)]
86 #![feature(const_pin)]
87 #![feature(const_waker)]
88 #![feature(never_type)]
89 #![feature(unwrap_infallible)]
90 #![feature(pointer_byte_offsets)]
91 #![feature(pointer_is_aligned)]
92 #![feature(portable_simd)]
93 #![feature(ptr_metadata)]
94 #![feature(lazy_cell)]
95 #![feature(unsized_tuple_coercion)]
96 #![feature(const_option)]
97 #![feature(const_option_ext)]
98 #![feature(const_result)]
99 #![feature(integer_atomics)]
100 #![feature(int_roundings)]
101 #![feature(slice_group_by)]
102 #![feature(split_array)]
103 #![feature(strict_provenance)]
104 #![feature(strict_provenance_atomic_ptr)]
105 #![feature(trusted_random_access)]
106 #![feature(unsize)]
107 #![feature(const_array_from_ref)]
108 #![feature(const_slice_from_ref)]
109 #![feature(waker_getters)]
110 #![feature(slice_flatten)]
111 #![feature(provide_any)]
112 #![feature(utf8_chunks)]
113 #![feature(is_ascii_octdigit)]
114 #![feature(get_many_mut)]
115 #![deny(unsafe_op_in_unsafe_fn)]
116 #![deny(fuzzy_provenance_casts)]
117
118 extern crate test;
119
120 mod alloc;
121 mod any;
122 mod array;
123 mod ascii;
124 mod asserting;
125 mod atomic;
126 mod bool;
127 mod cell;
128 mod char;
129 mod clone;
130 mod cmp;
131 mod const_ptr;
132 mod convert;
133 mod fmt;
134 mod future;
135 mod hash;
136 mod intrinsics;
137 mod iter;
138 mod lazy;
139 mod macros;
140 mod manually_drop;
141 mod mem;
142 mod net;
143 mod nonzero;
144 mod num;
145 mod ops;
146 mod option;
147 mod panic;
148 mod pattern;
149 mod pin;
150 mod pin_macro;
151 mod ptr;
152 mod result;
153 mod simd;
154 mod slice;
155 mod str;
156 mod str_lossy;
157 mod task;
158 mod time;
159 mod tuple;
160 mod unicode;
161 mod waker;
162
163 /// Copied from `std::test_helpers::test_rng`, see that function for rationale.
164 #[track_caller]
165 #[allow(dead_code)] // Not used in all configurations.
166 pub(crate) fn test_rng() -> rand_xorshift::XorShiftRng {
167 use core::hash::{BuildHasher, Hash, Hasher};
168 let mut hasher = std::collections::hash_map::RandomState::new().build_hasher();
169 core::panic::Location::caller().hash(&mut hasher);
170 let hc64 = hasher.finish();
171 let seed_vec = hc64.to_le_bytes().into_iter().chain(0u8..8).collect::<Vec<u8>>();
172 let seed: [u8; 16] = seed_vec.as_slice().try_into().unwrap();
173 rand::SeedableRng::from_seed(seed)
174 }