1fb726d48Sopenharmony_ci/* 2fb726d48Sopenharmony_ci * Copyright (C) 2022 Huawei Device Co., Ltd. 3fb726d48Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4fb726d48Sopenharmony_ci * you may not use this file except in compliance with the License. 5fb726d48Sopenharmony_ci * You may obtain a copy of the License at 6fb726d48Sopenharmony_ci * 7fb726d48Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8fb726d48Sopenharmony_ci * 9fb726d48Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10fb726d48Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11fb726d48Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12fb726d48Sopenharmony_ci * See the License for the specific language governing permissions and 13fb726d48Sopenharmony_ci * limitations under the License. 14fb726d48Sopenharmony_ci */ 15fb726d48Sopenharmony_ci 16fb726d48Sopenharmony_ciimport { 17fb726d48Sopenharmony_ci filterNativeMemoryChartData, 18fb726d48Sopenharmony_ci nativeMemoryDataHandler 19fb726d48Sopenharmony_ci} from '../../../../src/trace/database/data-trafic/NativeMemoryDataReceiver'; 20fb726d48Sopenharmony_ci 21fb726d48Sopenharmony_cidescribe(' NativeMemoryDataReceiver Test', () => { 22fb726d48Sopenharmony_ci let data; 23fb726d48Sopenharmony_ci let proc; 24fb726d48Sopenharmony_ci const dataCache = { 25fb726d48Sopenharmony_ci normalCache: new Map(), 26fb726d48Sopenharmony_ci statisticsCache: new Map(), 27fb726d48Sopenharmony_ci }; 28fb726d48Sopenharmony_ci beforeEach(() => { 29fb726d48Sopenharmony_ci data = { 30fb726d48Sopenharmony_ci id: 'c07094fb-5340-4f1e-be9d-cd4071a77e24', 31fb726d48Sopenharmony_ci name: 206, 32fb726d48Sopenharmony_ci action: 'exec-proto', 33fb726d48Sopenharmony_ci params: { 34fb726d48Sopenharmony_ci totalNS: 108952700947, 35fb726d48Sopenharmony_ci recordStartNS: 8406282873525, 36fb726d48Sopenharmony_ci recordEndNS: 8515235574472, 37fb726d48Sopenharmony_ci model: 'native_hook', 38fb726d48Sopenharmony_ci processes: [ 39fb726d48Sopenharmony_ci 1 40fb726d48Sopenharmony_ci ], 41fb726d48Sopenharmony_ci trafic: 1, 42fb726d48Sopenharmony_ci isCache: true 43fb726d48Sopenharmony_ci } 44fb726d48Sopenharmony_ci }; 45fb726d48Sopenharmony_ci proc = jest.fn((sql) => [ 46fb726d48Sopenharmony_ci {data: {id: 4, startTs: 4.4, pid: 40, tid: 400, dur: 40000, depth: 4}}, 47fb726d48Sopenharmony_ci {data: {id: 5, startTs: 5.5, pid: 50, tid: 500, dur: 50000, depth: 5}}, 48fb726d48Sopenharmony_ci ]); 49fb726d48Sopenharmony_ci }); 50fb726d48Sopenharmony_ci afterEach(() => { 51fb726d48Sopenharmony_ci dataCache.normalCache.clear(); 52fb726d48Sopenharmony_ci dataCache.statisticsCache.clear(); 53fb726d48Sopenharmony_ci }); 54fb726d48Sopenharmony_ci it(' NativeMemoryDataReceiver01', () => { 55fb726d48Sopenharmony_ci const mockPostMessage = jest.fn(); 56fb726d48Sopenharmony_ci global.postMessage = mockPostMessage; 57fb726d48Sopenharmony_ci nativeMemoryDataHandler(data, proc); 58fb726d48Sopenharmony_ci expect(mockPostMessage).toHaveBeenCalledTimes(1); 59fb726d48Sopenharmony_ci }); 60fb726d48Sopenharmony_ci it(' NativeMemoryDataReceiver02', () => { 61fb726d48Sopenharmony_ci const model = 'native_hook'; 62fb726d48Sopenharmony_ci const startNS = 0; 63fb726d48Sopenharmony_ci const endNS = 100; 64fb726d48Sopenharmony_ci const totalNS = 200; 65fb726d48Sopenharmony_ci const drawType = 0; 66fb726d48Sopenharmony_ci const frame = 1; 67fb726d48Sopenharmony_ci const key = 'testKey'; 68fb726d48Sopenharmony_ci const result = filterNativeMemoryChartData(model, startNS, endNS, totalNS, drawType, frame, key); 69fb726d48Sopenharmony_ci expect(result.startTime).toEqual([]); 70fb726d48Sopenharmony_ci expect(result.dur).toEqual([]); 71fb726d48Sopenharmony_ci expect(result.heapSize).toEqual([]); 72fb726d48Sopenharmony_ci expect(result.density).toEqual([]); 73fb726d48Sopenharmony_ci }); 74fb726d48Sopenharmony_ci}); 75