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