• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 { TabPaneSdkSlice } from '../../../../../../src/trace/component/trace/sheet/sdk/TabPaneSdkSlice';
17import { LitTable } from '../../../../../../src/base-ui/table/lit-table';
18import { SpSystemTrace } from '../../../../../../src/trace/component/SpSystemTrace';
19
20import { TabUtil } from '../../../../../../src/trace/component/trace/sheet/sdk/TabUtil';
21jest.mock('../../../../../../src/js-heap/model/DatabaseStruct', () => {});
22
23window.ResizeObserver =
24  window.ResizeObserver ||
25  jest.fn().mockImplementation(() => ({
26    disconnect: jest.fn(),
27    observe: jest.fn(),
28    unobserve: jest.fn(),
29  }));
30
31const sqlite = require('../../../../../../src/trace/database/sql/SqlLite.sql');
32jest.mock('../../../../../../src/trace/database/sql/SqlLite.sql');
33const sdkSqlite = require('../../../../../../src/trace/database/sql/Sdk.sql');
34jest.mock('../../../../../../src/trace/database/sql/Sdk.sql');
35
36describe('TabPaneSdkSlice Test', () => {
37  let tabPaneSdkSlice = new TabPaneSdkSlice();
38  document.body.innerHTML = `<lit-table id="tb-counter"></lit-table>`;
39  let litTable = document.querySelector('#tb-counter') as LitTable;
40  it('TabPaneSdkSliceTest00', () => {
41    let mockStartTime = sqlite.queryStartTime;
42    let startTime: Array<any> = [
43      {
44        start_ts: 1000,
45      },
46    ];
47    mockStartTime.mockResolvedValue(startTime);
48    let totalTime = sqlite.queryTotalTime;
49    let totalData: Array<any> = [
50      {
51        recordStartNS: 1000,
52        recordEndNS: 3000,
53        total: 2000,
54      },
55    ];
56    totalTime.mockResolvedValue(totalData);
57    let mockSdkSliceData = sdkSqlite.getTabSdkSliceData;
58    let sliceData = [
59      {
60        start_ts: 1000,
61        end_ts: 1500,
62        type: 0,
63        value: 100,
64      },
65      {
66        start_ts: 2000,
67        end_ts: 2500,
68        type: 0,
69        value: 100,
70      },
71      {
72        start_ts: 3000,
73        end_ts: 3500,
74        type: 0,
75        value: 100,
76      },
77      {
78        start_ts: 4000,
79        end_ts: 4500,
80        type: 0,
81        value: 100,
82      },
83      {
84        start_ts: 5000,
85        end_ts: 5500,
86        type: 0,
87        value: 100,
88      },
89    ];
90    mockSdkSliceData.mockResolvedValue(sliceData);
91    let slice = new TabPaneSdkSlice();
92    slice.tblSdkSlice = jest.fn(() => litTable);
93    slice.tblSdkSlice.appendChild = jest.fn(() => true);
94    let map = new Map();
95    let sdkSliceJsonCofigStr =
96      '{"settingConfig":{"configuration":{"counters":{"enum":["ARM_Mali-TTRx_JS1_ACTIVE","ARM_Mali-TTRx_JS0_ACTIVE","ARM_Mali-TTRx_GPU_ACTIVE","ARM_Mali-TTRx_FRAG_ACTIVE"],\n' +
97      '    "type":"string"},"stop_gator":{"default":"true","description":"stop_gator","type":"boolean"},"version":{"default":"1","description":"gatordversion","type":"number"}},"name":"mailG77"},\n' +
98      '    "tableConfig":{"showType":[{"columns":[{"column":"ts","displayName":"TimeStamp","showType":[2,1,3],"type":"INTEGER"},{"column":"counter_id","displayName":"MonitorValue","showType":[1,96,3],"type":"INTEGER"},\n' +
99      '    {"column":"value","displayName":"Value","showType":[0,1,3],"type":"INTEGER"}],"inner":{"columns":[{"column":"counter_name","displayName":"","showType":[63],"type":"STRING"},\n' +
100      '    {"column":"counter_id","displayName":"","showType":[0,2],"type":"INTEGER"}],"tableName":"mock_plugin_counterobj_table"},"tableName":"mock_plugin_counter_table"},\n' +
101      '    {"columns":[{"column":"start_ts","displayName":"startts","showType":[2,3],"type":"INTEGER"},{"column":"end_ts","displayName":"endts","showType":[2,10,3],"type":"INTEGER"},\n' +
102      '    {"column":"slice_id","displayName":"slice_id","showType":[2,4,3],"type":"INTEGER"},{"column":"value","displayName":"Value","showType":[2,3],"type":"INTEGER"}],\n' +
103      '    "inner":{"columns":[{"column":"slice_name","displayName":"","showType":[6],"type":"STRING"},{"column":"slice_id","displayName":"","showType":[12,0],"type":"INTEGER"}],\n' +
104      '    "tableName":"mock_plugin_sliceobj_table"},"tableName":"mock_plugin_slice_table"}]}}';
105    let dataSliceMap = {
106      jsonConfig: sdkSliceJsonCofigStr,
107    };
108    let datamap = {
109      disPlayName: 'common_mock',
110      pluginName: 'mock-plugin',
111      jsonConfig: sdkSliceJsonCofigStr,
112    };
113    map.set('1', dataSliceMap);
114    SpSystemTrace.SDK_CONFIG_MAP = map;
115    let data = {
116      cpus: [],
117      threadIds: [12, 787, 56, 11],
118      trackIds: [52, 652, 23, 2],
119      funTids: [4, 45, 9],
120      heapIds: [95, 4],
121      nativeMemory: [],
122      cpuAbilityIds: [120, 41, 2],
123      memoryAbilityIds: [63, 1],
124      diskAbilityIds: [56, 1],
125      networkAbilityIds: [36, 11],
126      leftNs: 1236461,
127      rightNs: 96641021,
128      hasFps: false,
129      statisticsSelectData: [],
130      perfSampleIds: [12, 15, 112],
131      perfCpus: [0, 1],
132      perfProcess: [],
133      perfThread: [],
134      perfAll: false,
135      sdkSliceIds: ['a-b', 'd-e', 'a'],
136    };
137    map.set('1', datamap);
138    SpSystemTrace.SDK_CONFIG_MAP = map;
139    slice.tblSdkSlice.recycleDataSource = jest.fn(() => data);
140    slice.data = data;
141    expect(slice.data).toBeUndefined();
142  });
143
144  it('TabPaneSdkSliceTest01', () => {
145    expect(tabPaneSdkSlice.parseJson([])).toBe('');
146  });
147
148  it('TabPaneSdkSliceTest02', () => {
149    let type = {
150      columns: [{ showType: 'slice' }],
151    };
152    expect(TabUtil.getTableType(type)).toBe('');
153  });
154
155  it('TabPaneSdkSliceTest03', () => {
156    expect(tabPaneSdkSlice.initDataElement()).toBeUndefined();
157  });
158
159  it('TabPaneSdkSliceTest04', function () {
160    tabPaneSdkSlice.tblSdkSlice = jest.fn(() => true);
161    tabPaneSdkSlice.tblSdkSlice!.recycleDataSource = jest.fn(() => true);
162    expect(
163      tabPaneSdkSlice.sortByColumn({
164        key: '',
165        sort: '',
166      })
167    ).toBeUndefined();
168  });
169
170  it('TabPaneSdkSliceTest06', () => {
171    expect(tabPaneSdkSlice.isDateIntersection(5, 5, 1, 6)).toBeTruthy();
172  });
173  it('TabPaneSdkSliceTest07', () => {
174    expect(tabPaneSdkSlice.isDateIntersection(5, 5, 1, 6)).toBeTruthy();
175  });
176  it('TabPaneSdkSliceTest08', () => {
177    expect(tabPaneSdkSlice.isDateIntersection(1, 5, 5, 3)).toBeTruthy();
178  });
179});
180