28 lines
1.3 KiB
JavaScript
28 lines
1.3 KiB
JavaScript
import { decodeAndTransformProto, FILE_TYPES, FILE_DECODERS } from '../src/decode';
|
|
import fs from 'fs';
|
|
import path from 'path';
|
|
import { expectedEntries, expectedLayers, layers_traces } from './traces/ExpectedTraces';
|
|
|
|
describe("Proto Transformations", () => {
|
|
it("can transform surface flinger traces", () => {
|
|
for (var i = 0; i < layers_traces.length; i++) {
|
|
const trace = layers_traces[i];
|
|
const buffer = new Uint8Array(fs.readFileSync(path.resolve(__dirname, trace)));
|
|
const data = decodeAndTransformProto(buffer, FILE_DECODERS[FILE_TYPES.SURFACE_FLINGER_TRACE].decoderParams, true);
|
|
|
|
// use final entry as this determines if there was any error in previous entry parsing
|
|
const transformedEntry = data.entries[data.entries.length-1];
|
|
const expectedEntry = expectedEntries[i];
|
|
for (const property in expectedEntry) {
|
|
expect(transformedEntry[property]).toEqual(expectedEntry[property]);
|
|
}
|
|
|
|
// check final flattened layer
|
|
const transformedLayer = transformedEntry.flattenedLayers[transformedEntry.flattenedLayers.length-1];
|
|
const expectedLayer = expectedLayers[i];
|
|
for (const property in expectedLayer) {
|
|
expect(transformedLayer[property]).toEqual(expectedLayer[property]);
|
|
}
|
|
}
|
|
});
|
|
}); |