1/*
2 * Copyright (C) 2022 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 *     http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16import { threadPool } from '../../../../src/trace/database/SqlLite';
17import { TraceRow } from '../../../../src/trace/component/trace/base/TraceRow';
18import { EBPFChartStruct } from '../../../../src/trace/database/ui-worker/ProcedureWorkerEBPF';
19import {
20  diskIoSender,
21  fileSystemSender,
22  fileSysVMSender
23} from '../../../../src/trace/database/data-trafic/EBPFSender';
24jest.mock('../../../../src/js-heap/model/DatabaseStruct', () => {});
25jest.mock('../../../../src/trace/database/ui-worker/ProcedureWorker', () => {
26  return {};
27});
28jest.mock('../../../../src/trace/database/ui-worker/ProcedureWorkerSnapshot', () => {
29  return {};
30});
31describe('EBPFSender Test', () => {
32  let EBPFData = {
33    size: 3,
34    dur: null,
35    endNS: 107000,
36    startNS: 106000,
37    height: 1,
38    frame: {
39      y: 0,
40      height: 1,
41      x: 403,
42      width: 4
43    },
44    group10Ms: true,
45  }
46  it('EBPFSenderTest01 ', () => {
47    threadPool.submitProto = jest.fn((query: number, params: any, callback: Function) => {
48      callback(EBPFData, 1, true);
49    });
50    let type = 1;
51    let scale = 1;
52    let fileSystemTraceRow = TraceRow.skeleton<EBPFChartStruct>();
53    fileSystemSender(type, scale, fileSystemTraceRow).then(result => {
54      expect(result).toHaveLength(1);
55    });
56  });
57  it('EBPFSenderTest02 ', () => {
58    threadPool.submitProto = jest.fn((query: number, params: any, callback: Function) => {
59      callback(EBPFData, 1, true);
60    });
61    let scale = 1;
62    let all = true;
63    let ipid = 5;
64    let typeArr = [1, 2, 3, 4];
65    let DiskIoDataTraceRow = TraceRow.skeleton<EBPFChartStruct>();
66    diskIoSender(all, ipid, typeArr, scale, DiskIoDataTraceRow).then(res => {
67      expect(res).toHaveLength(1);
68    });
69  });
70  it('EBPFSenderTest03 ', () => {
71    threadPool.submitProto = jest.fn((query: number, params: any, callback: Function) => {
72      callback(EBPFData, 1, true);
73    });
74    let scale = 1;
75    let DiskIoDataTraceRow = TraceRow.skeleton<EBPFChartStruct>();
76    fileSysVMSender(scale, DiskIoDataTraceRow).then(res => {
77      expect(res).toHaveLength(1);
78    });
79  });
80});
81