diff options
| -rw-r--r-- | executor/executor.cc | 3 | ||||
| -rw-r--r-- | pkg/runtest/run_test.go | 22 |
2 files changed, 13 insertions, 12 deletions
diff --git a/executor/executor.cc b/executor/executor.cc index 750858be2..e8e1cb000 100644 --- a/executor/executor.cc +++ b/executor/executor.cc @@ -1169,8 +1169,9 @@ uint32 write_cover(flatbuffers::FlatBufferBuilder& fbb, cover_t* cov) cover_size = std::unique(cover_data, end) - cover_data; } fbb.StartVector(cover_size, sizeof(uint64)); + // Flatbuffer arrays are written backwards, so reverse the order on our side as well. for (uint32 i = 0; i < cover_size; i++) - fbb.PushElement(uint64(cover_data[i] + cov->pc_offset)); + fbb.PushElement(uint64(cover_data[cover_size - i - 1] + cov->pc_offset)); return fbb.EndVector(cover_size); } diff --git a/pkg/runtest/run_test.go b/pkg/runtest/run_test.go index 219e84046..5d6235fd8 100644 --- a/pkg/runtest/run_test.go +++ b/pkg/runtest/run_test.go @@ -219,15 +219,15 @@ func testCover(t *testing.T, target *prog.Target) { Input: makeCover64(0xc0dec0dec0000033, 0xc0dec0dec0000022, 0xc0dec0dec0000011, 0xc0dec0dec0000011, 0xc0dec0dec0000022, 0xc0dec0dec0000033, 0xc0dec0dec0000011), Flags: flatrpc.ExecFlagCollectCover, - Cover: []uint64{0xc0dec0dec0000011, 0xc0dec0dec0000033, 0xc0dec0dec0000022, - 0xc0dec0dec0000011, 0xc0dec0dec0000011, 0xc0dec0dec0000022, 0xc0dec0dec0000033}, + Cover: []uint64{0xc0dec0dec0000033, 0xc0dec0dec0000022, 0xc0dec0dec0000011, + 0xc0dec0dec0000011, 0xc0dec0dec0000022, 0xc0dec0dec0000033, 0xc0dec0dec0000011}, }, { Is64Bit: true, Input: makeCover64(0xc0dec0dec0000033, 0xc0dec0dec0000022, 0xc0dec0dec0000011, 0xc0dec0dec0000011, 0xc0dec0dec0000022, 0xc0dec0dec0000033, 0xc0dec0dec0000011), Flags: flatrpc.ExecFlagCollectCover | flatrpc.ExecFlagDedupCover, - Cover: []uint64{0xc0dec0dec0000033, 0xc0dec0dec0000022, 0xc0dec0dec0000011}, + Cover: []uint64{0xc0dec0dec0000011, 0xc0dec0dec0000022, 0xc0dec0dec0000033}, }, // Signal hashing. { @@ -315,8 +315,8 @@ func testCover(t *testing.T, target *prog.Target) { 0xc0dec0dec0000100, 0xc0dec0dec0001000), MaxSignal: []uint64{0xc0dec0dec0000001, 0xc0dec0dec0000013, 0xc0dec0dec0000abc}, Flags: flatrpc.ExecFlagCollectSignal | flatrpc.ExecFlagCollectCover, - Cover: []uint64{0xc0dec0dec0001000, 0xc0dec0dec0000100, 0xc0dec0dec0000002, - 0xc0dec0dec0000010, 0xc0dec0dec0000001}, + Cover: []uint64{0xc0dec0dec0000001, 0xc0dec0dec0000010, 0xc0dec0dec0000002, + 0xc0dec0dec0000100, 0xc0dec0dec0001000}, Signal: []uint64{0xc0dec0dec0001100, 0xc0dec0dec0000102}, }, { @@ -324,7 +324,7 @@ func testCover(t *testing.T, target *prog.Target) { Input: makeCover32(0xc0000001, 0xc0000010, 0xc0000002, 0xc0000100, 0xc0001000), MaxSignal: []uint64{0xc0000001, 0xc0000013, 0xc0000abc}, Flags: flatrpc.ExecFlagCollectSignal | flatrpc.ExecFlagCollectCover, - Cover: []uint64{0xc0001000, 0xc0000100, 0xc0000002, 0xc0000010, 0xc0000001}, + Cover: []uint64{0xc0000001, 0xc0000010, 0xc0000002, 0xc0000100, 0xc0001000}, Signal: []uint64{0xc0001100, 0xc0000102}, }, { @@ -344,8 +344,8 @@ func testCover(t *testing.T, target *prog.Target) { 0xc0dec0dec0000040, 0xc0dec0dec0000100, 0xc0dec0dec0001000, 0xc0dec0dec0002000), CoverFilter: []uint64{0xc0dec0dec0000002, 0xc0dec0dec0000100}, Flags: flatrpc.ExecFlagCollectSignal | flatrpc.ExecFlagCollectCover, - Cover: []uint64{0xc0dec0dec0002000, 0xc0dec0dec0001000, 0xc0dec0dec0000100, 0xc0dec0dec0000040, - 0xc0dec0dec0000020, 0xc0dec0dec0000010, 0xc0dec0dec0000001}, + Cover: []uint64{0xc0dec0dec0000001, 0xc0dec0dec0000010, 0xc0dec0dec0000020, 0xc0dec0dec0000040, + 0xc0dec0dec0000100, 0xc0dec0dec0001000, 0xc0dec0dec0002000}, Signal: []uint64{0xc0dec0dec0001100, 0xc0dec0dec0000140, 0xc0dec0dec0000011, 0xc0dec0dec0000001}, }, { @@ -354,8 +354,8 @@ func testCover(t *testing.T, target *prog.Target) { 0xc0000100, 0xc0001000, 0xc0002000), CoverFilter: []uint64{0xc0000002, 0xc0000100}, Flags: flatrpc.ExecFlagCollectSignal | flatrpc.ExecFlagCollectCover, - Cover: []uint64{0xc0002000, 0xc0001000, 0xc0000100, 0xc0000040, - 0xc0000020, 0xc0000010, 0xc0000001}, + Cover: []uint64{0xc0000001, 0xc0000010, 0xc0000020, 0xc0000040, + 0xc0000100, 0xc0001000, 0xc0002000}, Signal: []uint64{0xc0001100, 0xc0000140, 0xc0000011, 0xc0000001}, }, // Extra coverage. @@ -364,7 +364,7 @@ func testCover(t *testing.T, target *prog.Target) { ExtraCoverage: true, Input: makeCover64(0xc0dec0dec0000001, 0xc0dec0dec0000010), Flags: flatrpc.ExecFlagCollectSignal | flatrpc.ExecFlagCollectCover, - Cover: []uint64{0xc0dec0dec0000010, 0xc0dec0dec0000001}, + Cover: []uint64{0xc0dec0dec0000001, 0xc0dec0dec0000010}, Signal: []uint64{0xc0dec0dec0000011, 0xc0dec0dec0000001}, }, } |
