@@ -2,44 +2,10 @@ open Packet
2
2
open QuickCheck
3
3
module Gen = QuickCheck_gen
4
4
5
- (* arbitrary first `b` bits set in an Int32 *)
6
- let arbitrary_uint32_bits b =
7
- Gen. choose_int32 (Int32. zero, Int32. of_int ((0x1 lsl b) - 1 ) )
5
+ open Arbitrary_Base
8
6
9
- (* arbitrary instance for uint3, using the `int32` type. *)
10
- let arbitrary_uint4 = arbitrary_uint32_bits 4
11
-
12
- (* arbitrary instance for uint8, using the `int32` type. *)
13
- let arbitrary_uint8 = arbitrary_uint32_bits 8
14
-
15
- (* arbitrary instance for uint12, using the `int32` type. *)
16
- let arbitrary_uint12 = arbitrary_uint32_bits 12
17
-
18
- (* arbitrary instance for uint16, using the `int32` type. *)
19
- let arbitrary_uint16 = arbitrary_uint32_bits 16
20
-
21
- (* arbitrary instance for uint32, using the `int32` type. *)
22
- let arbitrary_uint32 =
23
- let open Gen in
24
- arbitrary_uint16 >> = fun w16_1 ->
25
- arbitrary_uint16 >> = fun w16_2 ->
26
- ret_gen Int32. (logor (shift_left w16_1 16 ) w16_2)
27
-
28
- let choose_int64 = Gen. lift_gen QuickCheck_util.Random. int64_range
29
-
30
- (* arbitrary instance for uint48, using the `int64` type. *)
31
- let arbitrary_int48 =
32
- choose_int64 (Int64. zero, 0xffffffffffL )
33
-
34
- (* arbitrary instance for option type, favoring `Some` rather than `None` *)
35
- let arbitrary_option arb =
36
- let open Gen in
37
- frequency [
38
- (1 , ret_gen None );
39
- (3 , arb >> = fun e -> ret_gen (Some e)) ]
40
-
41
- let arbitrary_dlAddr = arbitrary_int48
42
- let arbitrary_nwAddr = arbitrary_int32
7
+ let arbitrary_dlAddr = arbitrary_uint48
8
+ let arbitrary_dlTyp = arbitrary_uint16
43
9
44
10
let arbitrary_dlVlan =
45
11
let open Gen in
@@ -49,9 +15,15 @@ let arbitrary_dlVlan =
49
15
| Some w16 ->
50
16
arbitrary_uint32_bits 3 >> = fun w4 ->
51
17
arbitrary_bool >> = fun b ->
52
- ret_gen (Some ( Int32. to_int w16) , b, Int32. to_int w4)
18
+ ret_gen (Some w16, b, Int32. to_int w4)
53
19
end
54
20
21
+
22
+ let arbitrary_nwAddr = arbitrary_uint32
23
+ let arbitrary_nwTos = arbitrary_uint8
24
+ let arbitrary_nwProto = arbitrary_uint8
25
+ let arbitrary_tpPort = Arbitrary_Base. arbitrary_uint16
26
+
55
27
let arbitrary_dl_unparsable_len l =
56
28
let li = Int32. to_int l in
57
29
Gen. ret_gen (Unparsable (li, Cstruct. create li))
@@ -122,21 +94,19 @@ let arbitrary_ip arbitrary_tp =
122
94
arbitrary_nwAddr >> = fun nwDst ->
123
95
arbitrary_tp >> = fun tp ->
124
96
ret_gen {
125
- tos = Int32. to_int tos
126
- ; ident = Int32. to_int ident
97
+ tos = tos
98
+ ; ident = ident
127
99
; flags = flags
128
100
; frag = Int32. to_int frag
129
- ; ttl = Int32. to_int ttl
101
+ ; ttl = ttl
130
102
(* Dummy checksum, as the library currently does not verify it *)
131
- ; chksum = Int32. to_int chksum
103
+ ; chksum = chksum
132
104
; src = nwSrc
133
105
; dst = nwDst
134
106
; tp = tp
135
107
; options = empty_bytes
136
108
}
137
109
138
- let arbitrary_tpPort = Gen. map_gen Int32. to_int arbitrary_uint16
139
-
140
110
let arbitrary_tcp_flags =
141
111
let open Gen in
142
112
let open Tcp.Flags in
@@ -194,10 +164,10 @@ let arbitrary_tcp arbitrary_payload =
194
164
; dst = dst
195
165
; seq = seq
196
166
; ack = ack
197
- ; offset = Int32. to_int offset
167
+ ; offset = offset
198
168
; flags = flags
199
- ; window = Int32. to_int window
169
+ ; window = window
200
170
; chksum = 0
201
- ; urgent = Int32. to_int urgent
171
+ ; urgent = urgent
202
172
; payload = payload
203
173
}
0 commit comments