15
15
import XCTest
16
16
@testable import Fuzzilli
17
17
18
+ func testAndCompareSerialization( program: Program ) {
19
+ var proto1 = program. asProtobuf ( )
20
+ var proto2 = program. asProtobuf ( )
21
+ XCTAssertEqual ( proto1, proto2)
22
+
23
+ let data1 = try ! proto1. serializedData ( )
24
+ let data2 = try ! proto2. serializedData ( )
25
+
26
+ proto1 = try ! Fuzzilli_Protobuf_Program ( serializedBytes: data1)
27
+ proto2 = try ! Fuzzilli_Protobuf_Program ( serializedBytes: data2)
28
+ XCTAssertEqual ( proto1, proto2)
29
+
30
+ let copy1 = try ! Program ( from: proto1)
31
+ let copy2 = try ! Program ( from: proto2)
32
+ XCTAssertEqual ( copy1, copy2)
33
+ XCTAssertEqual ( copy1, program)
34
+ XCTAssertEqual ( FuzzILLifter ( ) . lift ( copy1) , FuzzILLifter ( ) . lift ( program) )
35
+ }
36
+
18
37
class ProgramSerializationTests : XCTestCase {
19
38
func testProtobufSerialization( ) {
20
39
let fuzzer = makeMockFuzzer ( )
@@ -23,25 +42,22 @@ class ProgramSerializationTests: XCTestCase {
23
42
for _ in 0 ..< 10 {
24
43
b. buildPrefix ( )
25
44
b. build ( n: 100 , by: . generating)
26
-
27
45
let program = b. finalize ( )
46
+ testAndCompareSerialization ( program: program)
47
+ }
48
+ }
28
49
29
- var proto1 = program. asProtobuf ( )
30
- var proto2 = program. asProtobuf ( )
31
- XCTAssertEqual ( proto1, proto2)
32
-
33
- let data1 = try ! proto1. serializedData ( )
34
- let data2 = try ! proto2. serializedData ( )
35
-
36
- proto1 = try ! Fuzzilli_Protobuf_Program ( serializedBytes: data1)
37
- proto2 = try ! Fuzzilli_Protobuf_Program ( serializedBytes: data2)
38
- XCTAssertEqual ( proto1, proto2)
50
+ func testProtobufSerializationWithWasmModule( ) {
51
+ let fuzzer = makeMockFuzzer ( )
52
+ let b = fuzzer. makeBuilder ( )
39
53
40
- let copy1 = try ! Program ( from: proto1)
41
- let copy2 = try ! Program ( from: proto2)
42
- XCTAssertEqual ( copy1, copy2)
43
- XCTAssertEqual ( copy1, program)
44
- XCTAssertEqual ( FuzzILLifter ( ) . lift ( copy1) , FuzzILLifter ( ) . lift ( program) )
54
+ for _ in 0 ..< 10 {
55
+ b. buildPrefix ( )
56
+ b. buildWasmModule { wasmModule in
57
+ b. build ( n: 50 , by: . generating)
58
+ }
59
+ let program = b. finalize ( )
60
+ testAndCompareSerialization ( program: program)
45
61
}
46
62
}
47
63
0 commit comments