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