Skip to content

Commit 5b4896a

Browse files
LiedtkeV8-internal LUCI CQ
authored andcommitted
Add explicit protobuf serialization tests for wasm operations
Change-Id: Ia8d0c3c86403d99da82e1575b7edfda71e0dcf2d Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/7963389 Reviewed-by: Carl Smith <[email protected]> Auto-Submit: Matthias Liedtke <[email protected]> Commit-Queue: Carl Smith <[email protected]>
1 parent ff0f89c commit 5b4896a

File tree

1 file changed

+32
-16
lines changed

1 file changed

+32
-16
lines changed

Tests/FuzzilliTests/ProgramSerializationTest.swift

Lines changed: 32 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,25 @@
1515
import XCTest
1616
@testable import Fuzzilli
1717

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+
1837
class ProgramSerializationTests: XCTestCase {
1938
func testProtobufSerialization() {
2039
let fuzzer = makeMockFuzzer()
@@ -23,25 +42,22 @@ class ProgramSerializationTests: XCTestCase {
2342
for _ in 0..<10 {
2443
b.buildPrefix()
2544
b.build(n: 100, by: .generating)
26-
2745
let program = b.finalize()
46+
testAndCompareSerialization(program: program)
47+
}
48+
}
2849

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()
3953

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)
4561
}
4662
}
4763

0 commit comments

Comments
 (0)