File tree 4 files changed +55
-5
lines changed
4 files changed +55
-5
lines changed Original file line number Diff line number Diff line change 93
93
components : clippy
94
94
- run : cargo clippy
95
95
96
+ miri :
97
+ runs-on : ubuntu-latest
98
+ strategy :
99
+ matrix :
100
+ rust :
101
+ - nightly
102
+ steps :
103
+ - uses : actions/checkout@v2
104
+ - uses : actions-rs/toolchain@v1
105
+ with :
106
+ profile : minimal
107
+ toolchain : ${{ matrix.rust }}
108
+ override : true
109
+ components : miri
110
+ - run : cargo miri test
Original file line number Diff line number Diff line change @@ -1567,7 +1567,7 @@ mod tests {
1567
1567
1568
1568
let mut keys = vec ! [ ] ;
1569
1569
keys. extend ( 0 ..16 ) ;
1570
- keys. extend ( 128 ..267 ) ;
1570
+ keys. extend ( if cfg ! ( miri ) { 32 .. 64 } else { 128 ..267 } ) ;
1571
1571
1572
1572
for & i in & keys {
1573
1573
let old_map = map. clone ( ) ;
Original file line number Diff line number Diff line change @@ -1426,7 +1426,7 @@ mod tests {
1426
1426
1427
1427
let mut values = vec ! [ ] ;
1428
1428
values. extend ( 0 ..16 ) ;
1429
- values. extend ( 128 ..267 ) ;
1429
+ values. extend ( if cfg ! ( miri ) { 32 .. 64 } else { 128 ..267 } ) ;
1430
1430
1431
1431
for & i in & values {
1432
1432
let old_set = set. clone ( ) ;
Original file line number Diff line number Diff line change 1
1
use indexmap:: { IndexMap , IndexSet } ;
2
2
use itertools:: Itertools ;
3
3
4
- use quickcheck:: quickcheck;
5
4
use quickcheck:: Arbitrary ;
6
5
use quickcheck:: Gen ;
6
+ use quickcheck:: QuickCheck ;
7
7
use quickcheck:: TestResult ;
8
8
9
9
use fnv:: FnvHasher ;
39
39
IndexMap :: from_iter ( iter. into_iter ( ) . copied ( ) . map ( |k| ( k, ( ) ) ) )
40
40
}
41
41
42
- quickcheck ! {
42
+ // Helper macro to allow us to use smaller quickcheck limits under miri.
43
+ macro_rules! quickcheck_limit {
44
+ ( @as_items $( $i: item) * ) => ( $( $i) * ) ;
45
+ {
46
+ $(
47
+ $( #[ $m: meta] ) *
48
+ fn $fn_name: ident( $( $arg_name: ident : $arg_ty: ty) ,* ) -> $ret: ty {
49
+ $( $code: tt) *
50
+ }
51
+ ) *
52
+ } => (
53
+ quickcheck:: quickcheck! {
54
+ @as_items
55
+ $(
56
+ #[ test]
57
+ $( #[ $m] ) *
58
+ fn $fn_name( ) {
59
+ fn prop( $( $arg_name: $arg_ty) ,* ) -> $ret {
60
+ $( $code) *
61
+ }
62
+ let mut quickcheck = QuickCheck :: new( ) ;
63
+ if cfg!( miri) {
64
+ quickcheck = quickcheck
65
+ . gen ( Gen :: new( 10 ) )
66
+ . tests( 10 )
67
+ . max_tests( 100 ) ;
68
+ }
69
+
70
+ quickcheck. quickcheck( prop as fn ( $( $arg_ty) ,* ) -> $ret) ;
71
+ }
72
+ ) *
73
+ }
74
+ )
75
+ }
76
+
77
+ quickcheck_limit ! {
43
78
fn contains( insert: Vec <u32 >) -> bool {
44
79
let mut map = IndexMap :: new( ) ;
45
80
for & key in & insert {
@@ -260,7 +295,7 @@ where
260
295
true
261
296
}
262
297
263
- quickcheck ! {
298
+ quickcheck_limit ! {
264
299
fn operations_i8( ops: Large <Vec <Op <i8 , i8 >>>) -> bool {
265
300
let mut map = IndexMap :: new( ) ;
266
301
let mut reference = HashMap :: new( ) ;
You can’t perform that action at this time.
0 commit comments