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 { PluginConvertUtils } from '../../../../../src/trace/component/setting/utils/PluginConvertUtils';
17import { ProfilerSessionConfigMode } from '../../../../../src/trace/component/setting/bean/ProfilerServiceTypes';
18
19import {
20  ProfilerSessionConfigBufferConfig,
21  ProfilerSessionConfigBufferConfigPolicy,
22  TracePluginConfig,
23  // @ts-ignore
24} from '../../../../../src/trace/component/setting/bean/ProfilerServiceTypes';
25import {
26  HilogConfig,
27  levelFromJSON,
28  Type,
29  // @ts-ignore
30} from '../../../../../src/trace/component/setting/bean/ProfilerServiceTypes';
31import {
32  MemoryConfig,
33  sysMeminfoTypeFromJSON,
34  sysVMeminfoTypeFromJSON,
35  // @ts-ignore
36} from '../../../../../src/trace/component/setting/bean/ProfilerServiceTypes';
37import { SpRecordTrace } from '../../../../../src/trace/component/SpRecordTrace';
38
39describe('PlugConvertUtils Test', () => {
40  let bufferConfig: ProfilerSessionConfigBufferConfig = {
41    pages: 1000,
42    policy: ProfilerSessionConfigBufferConfigPolicy.RECYCLE,
43  };
44  let sessionConfig = {
45    buffers: [bufferConfig],
46    sessionMode: ProfilerSessionConfigMode.OFFLINE,
47    resultFile: '/data/local/tmp/hiprofiler_data.htrace',
48    resultMaxSize: 0,
49    sampleDuration: 1000,
50    keepAliveTime: 0,
51  };
52  let tracePluginConfig: TracePluginConfig = {
53    ftraceEvents: [],
54    bytraceCategories: [],
55    bytraceApps: [],
56    bufferSizeKb: 1024,
57    flushIntervalMs: 1000,
58    flushThresholdKb: 4096,
59    parseKsyms: true,
60    clock: 'mono',
61    tracePeriodMs: 200,
62    rawDataPrefix: '',
63    traceDurationMs: 0,
64    debugOn: false,
65  };
66  let hilogConfig: HilogConfig = {
67    deviceType: Type.HI3516,
68    logLevel: levelFromJSON('Info'),
69    needClear: true,
70  };
71  let memoryconfig: MemoryConfig = {
72    reportProcessTree: true,
73    reportSysmemMemInfo: true,
74    sysMeminfoCounters: [],
75    reportSysmemVmemInfo: true,
76    sysVmeminfoCounters: [],
77    reportProcessMemInfo: true,
78    reportAppMemInfo: false,
79    reportAppMemByMemoryService: false,
80    pid: [],
81  };
82  let request = {
83    requestId: 1,
84    sessionConfig: sessionConfig,
85    pluginConfigs: [tracePluginConfig, hilogConfig, memoryconfig],
86  };
87
88  it('PlugConvertUtils01', function () {
89    expect(PluginConvertUtils.createHdcCmd('aaaa', 11)).not.toBeNull();
90  });
91
92  it('PlugConvertUtils02', function () {
93    expect(PluginConvertUtils.BeanToCmdTxt(request, true)).not.toBeNull();
94  });
95
96  it('PlugConvertUtils03', function () {
97    expect(PluginConvertUtils.BeanToCmdTxtWithObjName(request, false, '', 1)).not.toBeNull();
98  });
99});
100