xref: /drstd/src/std/sys/sgx/abi/tls/sync_bitset/tests.rs (revision 9670759b785600bf6315e4173e46a602f16add7a)
1 use super::*;
2 
test_data(bitset: [usize; 2], bit_indices: &[usize])3 fn test_data(bitset: [usize; 2], bit_indices: &[usize]) {
4     let set = SyncBitset([AtomicUsize::new(bitset[0]), AtomicUsize::new(bitset[1])]);
5     assert_eq!(set.iter().collect::<Vec<_>>(), bit_indices);
6     for &i in bit_indices {
7         assert!(set.get(i));
8     }
9 }
10 
11 #[test]
iter()12 fn iter() {
13     test_data([0b0110_1001, 0], &[0, 3, 5, 6]);
14     test_data(
15         [0x8000_0000_0000_0000, 0x8000_0000_0000_0001],
16         &[63, 64, 127],
17     );
18     test_data([0, 0], &[]);
19 }
20 
21 #[test]
set_get_clear()22 fn set_get_clear() {
23     let set = SYNC_BITSET_INIT;
24     let key = set.set().unwrap();
25     assert!(set.get(key));
26     set.clear(key);
27     assert!(!set.get(key));
28 }
29