Skip to content

Commit fc896a5

Browse files
committed
tests: move the test code into separate files to tidy up lib.rs
1 parent 7dc736c commit fc896a5

3 files changed

Lines changed: 105 additions & 100 deletions

File tree

src/lib.rs

Lines changed: 0 additions & 100 deletions
Original file line numberDiff line numberDiff line change
@@ -369,103 +369,3 @@ macro_rules! _volatile_map {
369369
] => {};
370370
[ ] => [];
371371
}
372-
373-
#[cfg(test)]
374-
#[test]
375-
fn _test_volatile_macro() {
376-
let mut v = 10usize;
377-
let addr = &mut v as *mut _ as *mut usize;
378-
379-
unsafe {
380-
// rw
381-
let volatile_ptr = volatile!(addr);
382-
assert_eq!(volatile_ptr.read(), 10);
383-
volatile_ptr.write(1);
384-
assert_eq!(volatile_ptr.read(), 1);
385-
}
386-
387-
unsafe {
388-
// rw2
389-
let volatile_ptr = volatile!(rw: addr);
390-
volatile_ptr.write(2);
391-
assert_eq!(volatile_ptr.read(), 2);
392-
}
393-
394-
unsafe {
395-
// wo
396-
let volatile_ptr = volatile!(wo: addr);
397-
volatile_ptr.write(3);
398-
}
399-
400-
unsafe {
401-
// ro
402-
let volatile_ptr = volatile!(ro: addr);
403-
assert_eq!(volatile_ptr.read(), 3);
404-
}
405-
}
406-
407-
#[cfg(test)]
408-
#[test]
409-
fn _test_volatile_table_macro() {
410-
static mut V: usize = 0usize;
411-
unsafe {
412-
V = 10usize;
413-
}
414-
415-
volatile_table! {
416-
rw RW_V_PTR = &raw mut V;
417-
ro RO_V_PTR = &raw mut V;
418-
wo WO_V_PTR = &raw mut V;
419-
420-
map[RW_V_PTR]: {
421-
#[allow(unused)]
422-
rw TEST += 0;
423-
#[allow(unused)]
424-
rw TEST3 += 0;
425-
#[allow(unused)]
426-
rw TEST2 += 1;
427-
};
428-
429-
map[
430-
#[allow(unused)]
431-
rw RW2_V_PTR = &raw mut V
432-
]: {
433-
#[allow(unused)]
434-
rw TEST44 += 0;
435-
};
436-
}
437-
438-
{
439-
let volatile_ptr = RW_V_PTR;
440-
unsafe {
441-
// rw
442-
assert_eq!(volatile_ptr.read(), 10);
443-
volatile_ptr.write(1);
444-
assert_eq!(volatile_ptr.read(), 1);
445-
}
446-
447-
unsafe {
448-
// rw2
449-
volatile_ptr.write(2);
450-
assert_eq!(volatile_ptr.read(), 2);
451-
}
452-
453-
unsafe {
454-
// wo
455-
volatile_ptr.write(3);
456-
}
457-
458-
unsafe {
459-
// ro
460-
assert_eq!(volatile_ptr.read(), 3);
461-
}
462-
}
463-
464-
unsafe {
465-
WO_V_PTR.write(4);
466-
}
467-
468-
unsafe {
469-
assert_eq!(RO_V_PTR.read(), 4);
470-
}
471-
}

tests/volatile_macro.rs

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
2+
#[cfg(test)]
3+
#[test]
4+
fn test_volatile_macro() {
5+
use volatile_table::volatile;
6+
7+
let mut v = 10usize;
8+
let addr = &mut v as *mut _ as *mut usize;
9+
10+
unsafe {
11+
// rw
12+
let volatile_ptr = volatile!(addr);
13+
assert_eq!(volatile_ptr.read(), 10);
14+
volatile_ptr.write(1);
15+
assert_eq!(volatile_ptr.read(), 1);
16+
}
17+
18+
unsafe {
19+
// rw2
20+
let volatile_ptr = volatile!(rw: addr);
21+
volatile_ptr.write(2);
22+
assert_eq!(volatile_ptr.read(), 2);
23+
}
24+
25+
unsafe {
26+
// wo
27+
let volatile_ptr = volatile!(wo: addr);
28+
volatile_ptr.write(3);
29+
}
30+
31+
unsafe {
32+
// ro
33+
let volatile_ptr = volatile!(ro: addr);
34+
assert_eq!(volatile_ptr.read(), 3);
35+
}
36+
}
37+

tests/volatile_table_macro.rs

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
2+
#[cfg(test)]
3+
#[test]
4+
fn test_volatile_table_macro() {
5+
use volatile_table::volatile_table;
6+
7+
static mut V: usize = 0usize;
8+
unsafe {
9+
V = 10usize;
10+
}
11+
12+
volatile_table! {
13+
rw RW_V_PTR = &raw mut V;
14+
ro RO_V_PTR = &raw mut V;
15+
wo WO_V_PTR = &raw mut V;
16+
17+
map[RW_V_PTR]: {
18+
#[allow(unused)]
19+
rw TEST += 0;
20+
#[allow(unused)]
21+
rw TEST3 += 0;
22+
#[allow(unused)]
23+
rw TEST2 += 1;
24+
};
25+
26+
map[
27+
#[allow(unused)]
28+
rw RW2_V_PTR = &raw mut V
29+
]: {
30+
#[allow(unused)]
31+
rw TEST44 += 0;
32+
};
33+
}
34+
35+
{
36+
let volatile_ptr = RW_V_PTR;
37+
unsafe {
38+
// rw
39+
assert_eq!(volatile_ptr.read(), 10);
40+
volatile_ptr.write(1);
41+
assert_eq!(volatile_ptr.read(), 1);
42+
}
43+
44+
unsafe {
45+
// rw2
46+
volatile_ptr.write(2);
47+
assert_eq!(volatile_ptr.read(), 2);
48+
}
49+
50+
unsafe {
51+
// wo
52+
volatile_ptr.write(3);
53+
}
54+
55+
unsafe {
56+
// ro
57+
assert_eq!(volatile_ptr.read(), 3);
58+
}
59+
}
60+
61+
unsafe {
62+
WO_V_PTR.write(4);
63+
}
64+
65+
unsafe {
66+
assert_eq!(RO_V_PTR.read(), 4);
67+
}
68+
}

0 commit comments

Comments
 (0)