File tree Expand file tree Collapse file tree 7 files changed +22
-19
lines changed Expand file tree Collapse file tree 7 files changed +22
-19
lines changed Original file line number Diff line number Diff line change @@ -49,7 +49,8 @@ impl Arbitrary for bool {
4949 #[ inline( always) ]
5050 fn any ( ) -> Self {
5151 let byte = u8:: any ( ) ;
52- byte == 0
52+ crate :: assume ( byte < 2 ) ;
53+ byte == 1
5354 }
5455}
5556
Original file line number Diff line number Diff line change @@ -6,7 +6,9 @@ Executable trace
66fn kani_exe_trace_harness
77 let det_vals: Vec<Vec<u8>> = vec![
88 // 0
9- vec![0
9+ vec![0],
10+ // 1
11+ vec![1]
1012 ];
1113 kani::exe_trace_run(det_vals, harness);
1214}
Original file line number Diff line number Diff line change 33
44// kani-flags: --harness harness --enable-unstable --gen-exe-trace
55
6- /// Note: We can't test a false value yet because any::<bool>() could be any non-zero number.
76#[ kani:: proof]
87pub fn harness ( ) {
98 let bool_1: bool = kani:: any ( ) ;
10- assert ! ( bool_1 != true ) ;
9+ let bool_2: bool = kani:: any ( ) ;
10+ assert ! ( !( !bool_1 && bool_2) ) ;
1111}
Original file line number Diff line number Diff line change @@ -5,10 +5,12 @@ Executable trace
55#[test]
66fn kani_exe_trace_harness
77 let det_vals: Vec<Vec<u8>> = vec![
8- // 0
9- vec![0 ],
8+ // 1
9+ vec![1 ],
1010 // 101
11- vec![101]
11+ vec![101],
12+ // 0
13+ vec![0]
1214 ];
1315 kani::exe_trace_run(det_vals, harness);
1416}
Original file line number Diff line number Diff line change 33
44// kani-flags: --harness harness --enable-unstable --gen-exe-trace
55
6- /// This should generate 2 bools.
7- /// The first should be 0 because the Option type is Some.
8- /// The second should be 101, the inner value of the Some.
9- /// Note: We can't test on a None type yet because the first any::<bool>() could be any non-zero number.
106#[ kani:: proof]
117pub fn harness ( ) {
128 let option_1: Option < u8 > = kani:: any ( ) ;
13- assert ! ( option_1 != Some ( 101 ) ) ;
9+ let option_2: Option < u8 > = kani:: any ( ) ;
10+ assert ! ( !( option_1 == Some ( 101 ) && option_2 == None ) ) ;
1411}
Original file line number Diff line number Diff line change @@ -5,10 +5,14 @@ Executable trace
55#[test]
66fn kani_exe_trace_harness
77 let det_vals: Vec<Vec<u8>> = vec![
8+ // 1
9+ vec![1],
10+ // 101
11+ vec![101],
812 // 0
913 vec![0],
10- // 101
11- vec![101 ]
14+ // 102
15+ vec![102 ]
1216 ];
1317 kani::exe_trace_run(det_vals, harness);
1418}
Original file line number Diff line number Diff line change 33
44// kani-flags: --harness harness --enable-unstable --gen-exe-trace
55
6- /// This should generate 2 bools.
7- /// The first should be 0 because the Result type is Ok.
8- /// The second should be 101, the inner value of the Ok.
9- /// Note: We can't test an Err type yet because the first any::<bool>() could be any non-zero number.
106#[ kani:: proof]
117pub fn harness ( ) {
128 let result_1: Result < u8 , u8 > = kani:: any ( ) ;
13- assert ! ( result_1 != Ok ( 101 ) ) ;
9+ let result_2: Result < u8 , u8 > = kani:: any ( ) ;
10+ assert ! ( !( result_1 == Ok ( 101 ) && result_2 == Err ( 102 ) ) ) ;
1411}
You can’t perform that action at this time.
0 commit comments