@mchp-mcc/clock-16bit-driver 1.1.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1165 @@
1
+ import { TestCaseAPIs } from "@microchip/ccl-itf/lib/apis/TestCaseAPIs";
2
+ import { ReportAPIs } from "@microchip/ccl-itf/lib/apis/ReportAPIs";
3
+ import * as utils from "./Utils";
4
+
5
+ const addMsg = require("@microchip/melody-itf-reporters/lib/helper").addMsg;
6
+ const itfConfig = require("../../reports/itf.config.json"); // This file is automatically generated by CCL-ITF.
7
+
8
+ let testAPI: TestCaseAPIs;
9
+ let reportAPI: ReportAPIs;
10
+
11
+ const devices: string[] = itfConfig.devices;
12
+ const runDir: string = itfConfig.runDir;
13
+ const MAX_LAUNCH_TIMEOUT = 1000000; // in ms
14
+ const MAX_TESTCASE_TIMEOUT = 700000; // in ms
15
+ const MAX_CMD_TIMEOUT = 90000; // in ms (this is optional, default is 60000ms)
16
+ let PLIBModuleId:any = "";
17
+ let driverModuleId:any = "";
18
+ let pinModuleId:any = "";
19
+ let configBitsModuleId="";
20
+
21
+ const PLIBmoduleInfo = {
22
+ name: '@mchp-mcc/pic24-dspic33-clock-sib',
23
+ version: '>=1.0.0'
24
+ }
25
+ const driverModuleInfo = {
26
+ name: '@mchp-mcc/clock-16bit-driver',
27
+ version: '>=1.0.0'
28
+ }
29
+ const PCPModuleInfo = {
30
+ name: '@mchp-mcc/pin-content-processor',
31
+ version: '>=1.0.0'
32
+ }
33
+ const configBitsModuleInfo = {
34
+ name: '@mchp-mcc/dspic33-configuration-bits',
35
+ version: '>=1.0.0'
36
+ }
37
+ const setup = async () => {
38
+ try {
39
+ testAPI = new TestCaseAPIs();
40
+ reportAPI = new ReportAPIs();
41
+ await testAPI.setup(runDir);
42
+ await reportAPI.setup(runDir);
43
+ } catch (e) {
44
+ throw e;
45
+ }
46
+ }
47
+
48
+ /*
49
+ * Test cases
50
+ */
51
+ describe("Clock Driver", () => {
52
+ beforeAll(async () => {
53
+ await setup();
54
+ await testAPI.start();
55
+ }, MAX_LAUNCH_TIMEOUT);
56
+
57
+ afterAll(async () => {
58
+ await testAPI.close();
59
+ });
60
+
61
+ beforeEach(async () => {
62
+ await reportAPI.cleanupLog();
63
+ });
64
+
65
+ afterEach(async () => {
66
+ const log: string = await reportAPI.getLogData();
67
+ await addMsg(log);
68
+ });
69
+ const loadModulebyId = async () => {
70
+ const deriverModule = await testAPI.getModuleIdsforInterface(driverModuleInfo);
71
+ expect(deriverModule.length).toBeGreaterThan(0);
72
+ driverModuleId = deriverModule[0];
73
+ const PLIBModule = await testAPI.getModuleIdsforInterface(PLIBmoduleInfo);
74
+ expect(PLIBModule.length).toBeGreaterThan(0);
75
+ PLIBModuleId = PLIBModule[0];
76
+ const pinModule= await testAPI.getModuleIdsforInterface(PCPModuleInfo);
77
+ expect(pinModule.length).toBeGreaterThan(0);
78
+ pinModuleId = pinModule[0];
79
+ const configBitsModule= await testAPI.getModuleIdsforInterface(configBitsModuleInfo);
80
+ configBitsModuleId = configBitsModule[0];
81
+ };
82
+
83
+ //Module testcases
84
+ describe.each(devices)("%s", (device) => {
85
+ describe("TID_1 Basic Setting", () => {
86
+ test("TID_1-1 Load Module and generate code with default setting", async () => {
87
+ expect(await testAPI.loadDevice(device)).toBe(true);
88
+ await loadModulebyId();
89
+ expect(await testAPI.generateCode()).toBeTruthy();
90
+ const projectName = `${device}.default.clock.X`;
91
+ expect(await testAPI.saveProjectAs(projectName, true)).toBeTruthy();
92
+ },MAX_TESTCASE_TIMEOUT);
93
+ });
94
+ // //
95
+ describe("TID_2 System Clock for different clock input sources", () => {
96
+ test("TID_2-1 For the input clock source Primary Oscillator with PLL, Verify the Calculated FOSC/2, FPLLO, FVCO, FVCODIV, Pin configuration and derived configBit Registers settings", async () => {
97
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','systemClock.mainClockSource','Primary Oscillator with PLL');
98
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.mainClockSource','Primary Oscillator with PLL')).toBeTruthy();
99
+
100
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','systemClock.setMaximumSystemFrequency',true);
101
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.setMaximumSystemFrequency',true)).toBeTruthy();
102
+
103
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','systemClock.fvcoDivider','2');
104
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.fvcoDivider','2')).toBeTruthy();
105
+
106
+ const PLIBData = await testAPI.getModuleData(PLIBModuleId);
107
+ const configBitsData = await testAPI.getModuleData(configBitsModuleId);
108
+
109
+ expect(await testAPI.assertAutoModuleProperty(PLIBModuleId, 'main','software.oscOutputPinConfig',"OSC2 is clock output")).toBeTruthy();
110
+ expect(utils.getHiddenProperty(PLIBData,"software","clockOutputPinConfig")).toBe("hidden");
111
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','systemClock.mainClockInputFrequency_Hz',18000000);
112
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.mainClockInputFrequency_Hz',18000000)).toBeTruthy();
113
+ const DriverData = await testAPI.getModuleData(driverModuleId);
114
+ expect(utils.getArgs(DriverData,"clock_16bit_config_interface","mainClockArg")?.mainClockSource).toBe("Primary Oscillator with PLL");
115
+
116
+ expect(utils.getArgs(DriverData,"clock_16bit_config_interface","mainClockArg")?.setMaximumSystemFrequency).toBe(true);
117
+ expect(utils.getArgs(DriverData,"clock_16bit_config_interface","mainClockArg")?.fvcoDivider).toBe(2);
118
+
119
+ expect(utils.getReadOnlyValue(DriverData,"systemClock","calculatedSystemFrequency_Hz")).toBe(true);
120
+ expect(utils.getReadOnlyValue(DriverData,"systemClock","instructionClockFrequency_Hz")).toBe(true);
121
+ expect(utils.getReadOnlyValue(DriverData,"systemClock","fpllo")).toBe(true);
122
+ expect(utils.getReadOnlyValue(DriverData,"systemClock","fvco")).toBe(true);
123
+ expect(utils.getReadOnlyValue(PLIBData,"software","clockOutputPinConfig")).toBe(true);
124
+ expect(utils.getReadOnlyValue(PLIBData,"software","oscOutputPinConfig")).toBe(true);
125
+
126
+ expect(utils.getHiddenProperty(DriverData,"systemClock","requestedSystemFrequency_Hz")).toBe("hidden");
127
+
128
+ const pinModuleData:any = await testAPI.getModuleData(pinModuleId);
129
+ expect(utils.getModulepins(pinModuleData,PLIBModuleId,['INTERNAL OSCILLATOR$OSCO$output'])?.name == "OSCO").toBe(true);
130
+ expect(utils.getModulepins(pinModuleData,PLIBModuleId,['INTERNAL OSCILLATOR$OSCI$input'])?.name == "OSCI").toBe(true);
131
+ expect(utils.getModulepins(pinModuleData,PLIBModuleId,['INTERNAL OSCILLATOR$OSCO$output'])?.pins?.['RB1']?.state).toBe('L');
132
+ expect(utils.getModulepins(pinModuleData,PLIBModuleId,['INTERNAL OSCILLATOR$OSCI$input'])?.pins?.['RB0']?.state).toBe('L');
133
+ expect(utils.getModulepins(pinModuleData,PLIBModuleId,['INTERNAL OSCILLATOR$REFO$output'])?.pins?.['RB0']?.state).toBe('UL');
134
+ expect(utils.getModulepins(pinModuleData,PLIBModuleId,['INTERNAL OSCILLATOR$REFI$input'])?.pins?.['RB0']?.state).toBe('MUL');
135
+
136
+ if(device.match("dsPIC33CH[0-9]+MP5[0-9]+$")){
137
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.calculatedSystemFrequency_Hz',"180.00 MHz")).toBe(true);
138
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.instructionClockFrequency_Hz',"90.00 MHz")).toBe(true);
139
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.fpllo',"360.00 MHz")).toBe(true);
140
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.fvco',"720.00 MHz")).toBe(true);
141
+
142
+ expect(utils.getSettingBit(PLIBData,"OSCCON","NOSC")).toBe("PRIPLL");
143
+ expect(utils.getSettingBit(PLIBData,"PLLFBD","PLLFBDIV")).toBe("90");
144
+ expect(utils.getSettingBit(PLIBData,"PLLDIV","VCODIV")).toBe("FVCO/2");
145
+ expect(utils.getSettingBit(PLIBData,"PLLDIV","POST1DIV")).toBe("1:2");
146
+
147
+ expect(utils.getConfigBitsSettingBit(configBitsData,"FOSC","poscmodFosc")).toBe("XT");
148
+ expect(utils.getConfigBitsSettingBit(configBitsData,"FOSC","osciofcnFosc")).toBe("OFF");
149
+ expect(utils.getConfigBitsSettingBit(configBitsData,"FOSC","pllkenFosc")).toBe("PLLKEN_ON");
150
+ expect(utils.getConfigBitsSettingBit(configBitsData,"FOSC","fcksmFosc")).toBe("CSECMD");
151
+
152
+ expect(utils.getConfigBitsSettingBit(configBitsData,"FOSCSEL","fnoscFoscsel")).toBe("FRC");
153
+ expect(utils.getConfigBitsSettingBit(configBitsData,"FOSCSEL","iesoFoscsel")).toBe("OFF");
154
+
155
+ expect(utils.getRegisterValue(PLIBData,"OSCCON")).toBe("OSCCON : 0x300");
156
+ expect(utils.getRegisterValue(PLIBData,"PLLFBD")).toBe("PLLFBD : 0x5a");
157
+ expect(utils.getRegisterValue(PLIBData,"PLLDIV")).toBe("PLLDIV : 0x221");
158
+ }
159
+
160
+ if(device.match("dsPIC33C[^H]+[0-9]+M[A-Z][0-9]+$")){
161
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.calculatedSystemFrequency_Hz',"199.13 MHz")).toBe(true);
162
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.instructionClockFrequency_Hz',"99.56 MHz")).toBe(true);
163
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.fpllo',"398.25 MHz")).toBe(true);
164
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.fvco',"1593.00 MHz")).toBe(true);
165
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.fvcoDiv',"796.50 MHz")).toBe(true);
166
+
167
+ expect(utils.getSettingBit(PLIBData,"OSCCON","NOSC")).toBe("PRIPLL");
168
+ expect(utils.getSettingBit(PLIBData,"PLLFBD","PLLFBDIV")).toBe("50");
169
+ expect(utils.getSettingBit(PLIBData,"PLLDIV","VCODIV")).toBe("FVCO/2");
170
+ expect(utils.getSettingBit(PLIBData,"PLLDIV","POST1DIV")).toBe("1:1");
171
+
172
+ expect(utils.getConfigBitsSettingBit(configBitsData,"FOSC","poscmodFosc")).toBe("XT");
173
+ expect(utils.getConfigBitsSettingBit(configBitsData,"FOSC","osciofcnFosc")).toBe("OFF");
174
+ expect(utils.getConfigBitsSettingBit(configBitsData,"FOSC","pllkenFosc")).toBe("ON");
175
+ expect(utils.getConfigBitsSettingBit(configBitsData,"FOSC","fcksmFosc")).toBe("CSECMD");
176
+
177
+ expect(utils.getConfigBitsSettingBit(configBitsData,"FOSCSEL","fnoscFoscsel")).toBe("FRC");
178
+ expect(utils.getConfigBitsSettingBit(configBitsData,"FOSCSEL","iesoFoscsel")).toBe("OFF");
179
+
180
+ expect(utils.getRegisterValue(PLIBData,"OSCCON")).toBe("OSCCON : 0x300");
181
+ expect(utils.getRegisterValue(PLIBData,"PLLFBD")).toBe("PLLFBD : 0x32");
182
+ expect(utils.getRegisterValue(PLIBData,"PLLDIV")).toBe("PLLDIV : 0x211");
183
+ }
184
+ if(device.match("dsPIC33CH[0-9]+MP5[0-9]+S1$")){
185
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.calculatedSystemFrequency_Hz',"199.13 MHz")).toBe(true);
186
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.instructionClockFrequency_Hz',"99.56 MHz")).toBe(true);
187
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.fpllo',"398.25 MHz")).toBe(true);
188
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.fvco',"1593.00 MHz")).toBe(true);
189
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.fvcoDiv',"796.50 MHz")).toBe(true);
190
+ }
191
+ },MAX_TESTCASE_TIMEOUT);
192
+
193
+ test("TID_2-2 For the input clock source FRC Oscillator with Postscaler, Verify the Calculated FOSC/2, FPLLO, FVCO, FVCODIV, Pin configuration and derived configBit Registers settings", async () => {
194
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','systemClock.mainClockSource','FRC Oscillator with Postscaler');
195
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.mainClockSource','FRC Oscillator with Postscaler')).toBeTruthy();
196
+
197
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','systemClock.setMaximumSystemFrequency',true);
198
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.setMaximumSystemFrequency',true)).toBeTruthy();
199
+
200
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','systemClock.fvcoDivider','4');
201
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.fvcoDivider','4')).toBeTruthy();
202
+
203
+ const DriverData = await testAPI.getModuleData(driverModuleId);
204
+ expect(utils.getArgs(DriverData,"clock_16bit_config_interface","mainClockArg")?.mainClockSource).toBe("FRC Oscillator with Postscaler");
205
+
206
+ expect(utils.getArgs(DriverData,"clock_16bit_config_interface","mainClockArg")?.setMaximumSystemFrequency).toBe(true);
207
+ expect(utils.getArgs(DriverData,"clock_16bit_config_interface","mainClockArg")?.fvcoDivider).toBe(4);
208
+
209
+ expect(utils.getReadOnlyValue(DriverData,"systemClock","calculatedSystemFrequency_Hz")).toBe(true);
210
+ expect(utils.getReadOnlyValue(DriverData,"systemClock","instructionClockFrequency_Hz")).toBe(true);
211
+ expect(utils.getReadOnlyValue(DriverData,"systemClock","fpllo")).toBe(true);
212
+ expect(utils.getReadOnlyValue(DriverData,"systemClock","fvco")).toBe(true);
213
+
214
+ expect(utils.getHiddenProperty(DriverData,"systemClock","requestedSystemFrequency_Hz")).toBe("hidden");
215
+ expect(utils.getHiddenProperty(DriverData,"systemClock","mainClockInputFrequency_Hz")).toBe("hidden");
216
+
217
+
218
+ const PLIBData = await testAPI.getModuleData(PLIBModuleId);
219
+ const configBitsData = await testAPI.getModuleData(configBitsModuleId);
220
+ expect(await testAPI.assertAutoModuleProperty(PLIBModuleId, 'main','software.clockOutputPinConfig',"OSC2 is general purpose digital i/o pin")).toBeTruthy();
221
+ expect(utils.getReadOnlyValue(PLIBData,"software","clockOutputPinConfig")).toBe(true);
222
+ expect(utils.getReadOnlyValue(PLIBData,"software","oscOutputPinConfig")).toBe(true);
223
+ expect(utils.getHiddenProperty(PLIBData,"software","oscOutputPinConfig")).toBe("hidden");
224
+ const pinModuleData:any = await testAPI.getModuleData(pinModuleId);
225
+ expect(utils.getModulepins(pinModuleData,PLIBModuleId,['INTERNAL OSCILLATOR$CLKO$output'])?.name == "CLKO").toBe(true);
226
+ expect(utils.getModulepins(pinModuleData,PLIBModuleId,['INTERNAL OSCILLATOR$CLKO$output'])?.pins?.['RB1']?.state).toBe('UL');
227
+ expect(utils.getModulepins(pinModuleData,PLIBModuleId,['INTERNAL OSCILLATOR$REFO$output'])?.pins?.['RB0']?.state).toBe('UL');
228
+ expect(utils.getModulepins(pinModuleData,PLIBModuleId,['INTERNAL OSCILLATOR$REFI$input'])?.pins?.['RB0']?.state).toBe('MUL');
229
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.calculatedSystemFrequency_Hz',"8.00 MHz")).toBe(true);
230
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.instructionClockFrequency_Hz',"4.00 MHz")).toBe(true);
231
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.fpllo',"1200.00 MHz")).toBe(true);
232
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.fvco',"1200.00 MHz")).toBe(true);
233
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.fvcoDiv',"300.00 MHz")).toBe(true);
234
+
235
+ expect(utils.getSettingBit(PLIBData,"OSCCON","NOSC")).toBe("FRCDIV");
236
+ expect(utils.getSettingBit(PLIBData,"PLLFBD","PLLFBDIV")).toBe("150");
237
+ expect(utils.getSettingBit(PLIBData,"PLLDIV","VCODIV")).toBe("FVCO/4");
238
+ expect(utils.getSettingBit(PLIBData,"PLLDIV","POST1DIV")).toBe("1:4");
239
+ expect(utils.getRegisterValue(PLIBData,"OSCCON")).toBe("OSCCON : 0x700");
240
+ expect(utils.getRegisterValue(PLIBData,"PLLFBD")).toBe("PLLFBD : 0x96");
241
+ expect(utils.getRegisterValue(PLIBData,"PLLDIV")).toBe("PLLDIV : 0x41");
242
+ if(device.match("dsPIC33C[A-Z]+[0-9]+M[A-Z][0-9]+$")){
243
+ expect(utils.getConfigBitsSettingBit(configBitsData,"FOSC","poscmodFosc")).toBe("NONE");
244
+ expect(utils.getConfigBitsSettingBit(configBitsData,"FOSC","osciofcnFosc")).toBe("ON");
245
+ expect(utils.getConfigBitsSettingBit(configBitsData,"FOSC","fcksmFosc")).toBe("CSDCMD");
246
+ expect(utils.getConfigBitsSettingBit(configBitsData,"FOSCSEL","fnoscFoscsel")).toBe("FRCDIV");
247
+ expect(utils.getConfigBitsSettingBit(configBitsData,"FOSCSEL","iesoFoscsel")).toBe("OFF");
248
+ }
249
+ },MAX_TESTCASE_TIMEOUT);
250
+ test("TID_2-3 For the input clock source FRC Oscillator, Verify the Calculated FOSC/2, FPLLO, FVCO, FVCODIV, Pin configuration and derived configBit Registers settings", async () => {
251
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','systemClock.mainClockSource','FRC Oscillator');
252
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.mainClockSource','FRC Oscillator')).toBeTruthy();
253
+
254
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','systemClock.setMaximumSystemFrequency',true);
255
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.setMaximumSystemFrequency',true)).toBeTruthy();
256
+
257
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','systemClock.fvcoDivider','4');
258
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.fvcoDivider','4')).toBeTruthy();
259
+ const DriverData = await testAPI.getModuleData(driverModuleId);
260
+ expect(utils.getArgs(DriverData,"clock_16bit_config_interface","mainClockArg")?.mainClockSource).toBe("FRC Oscillator");
261
+
262
+ expect(utils.getArgs(DriverData,"clock_16bit_config_interface","mainClockArg")?.setMaximumSystemFrequency).toBe(true);
263
+ expect(utils.getArgs(DriverData,"clock_16bit_config_interface","mainClockArg")?.fvcoDivider).toBe(4);
264
+
265
+ expect(utils.getReadOnlyValue(DriverData,"systemClock","calculatedSystemFrequency_Hz")).toBe(true);
266
+ expect(utils.getReadOnlyValue(DriverData,"systemClock","instructionClockFrequency_Hz")).toBe(true);
267
+ expect(utils.getReadOnlyValue(DriverData,"systemClock","fpllo")).toBe(true);
268
+ expect(utils.getReadOnlyValue(DriverData,"systemClock","fvco")).toBe(true);
269
+
270
+ expect(utils.getHiddenProperty(DriverData,"systemClock","requestedSystemFrequency_Hz")).toBe("hidden");
271
+ expect(utils.getHiddenProperty(DriverData,"systemClock","mainClockInputFrequency_Hz")).toBe("hidden");
272
+
273
+ const PLIBData = await testAPI.getModuleData(PLIBModuleId);
274
+ expect(await testAPI.assertAutoModuleProperty(PLIBModuleId, 'main','software.clockOutputPinConfig',"OSC2 is general purpose digital i/o pin")).toBeTruthy();
275
+ expect(utils.getReadOnlyValue(PLIBData,"software","clockOutputPinConfig")).toBe(true);
276
+ expect(utils.getReadOnlyValue(PLIBData,"software","oscOutputPinConfig")).toBe(true);
277
+ expect(utils.getHiddenProperty(PLIBData,"software","oscOutputPinConfig")).toBe("hidden");
278
+ const pinModuleData:any = await testAPI.getModuleData(pinModuleId);
279
+ const configBitsData = await testAPI.getModuleData(configBitsModuleId);
280
+ expect(utils.getModulepins(pinModuleData,PLIBModuleId,['INTERNAL OSCILLATOR$CLKO$output'])?.name == "CLKO").toBe(true);
281
+ expect(utils.getModulepins(pinModuleData,PLIBModuleId,['INTERNAL OSCILLATOR$CLKO$output'])?.pins?.['RB1']?.state).toBe('UL');
282
+ expect(utils.getModulepins(pinModuleData,PLIBModuleId,['INTERNAL OSCILLATOR$REFO$output'])?.pins?.['RB0']?.state).toBe('UL');
283
+ expect(utils.getModulepins(pinModuleData,PLIBModuleId,['INTERNAL OSCILLATOR$REFI$input'])?.pins?.['RB0']?.state).toBe('MUL');
284
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.calculatedSystemFrequency_Hz',"8.00 MHz")).toBe(true);
285
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.instructionClockFrequency_Hz',"4.00 MHz")).toBe(true);
286
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.fpllo',"1200.00 MHz")).toBe(true);
287
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.fvco',"1200.00 MHz")).toBe(true);
288
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.fvcoDiv',"300.00 MHz")).toBe(true);
289
+ expect(utils.getSettingBit(PLIBData,"OSCCON","NOSC")).toBe("FRC");
290
+ expect(utils.getSettingBit(PLIBData,"PLLFBD","PLLFBDIV")).toBe("150");
291
+ expect(utils.getSettingBit(PLIBData,"PLLDIV","VCODIV")).toBe("FVCO/4");
292
+ expect(utils.getSettingBit(PLIBData,"PLLDIV","POST1DIV")).toBe("1:4");
293
+ if(device.match("dsPIC33C[A-Z]+[0-9]+M[A-Z][0-9]+$")){
294
+ expect(utils.getConfigBitsSettingBit(configBitsData,"FOSC","poscmodFosc")).toBe("NONE");
295
+ expect(utils.getConfigBitsSettingBit(configBitsData,"FOSC","osciofcnFosc")).toBe("ON");
296
+ expect(utils.getConfigBitsSettingBit(configBitsData,"FOSC","fcksmFosc")).toBe("CSDCMD");
297
+ expect(utils.getConfigBitsSettingBit(configBitsData,"FOSCSEL","fnoscFoscsel")).toBe("FRC");
298
+ expect(utils.getConfigBitsSettingBit(configBitsData,"FOSCSEL","iesoFoscsel")).toBe("OFF");
299
+ }
300
+ },MAX_TESTCASE_TIMEOUT);
301
+ test("TID_2-4 For the input clock source FRC Oscillator with PLL, Verify the Calculated FOSC/2, FPLLO, FVCO, FVCODIV, Pin configuration and derived configBit Registers settings", async () => {
302
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','systemClock.mainClockSource','FRC Oscillator with PLL');
303
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.mainClockSource','FRC Oscillator with PLL')).toBeTruthy();
304
+
305
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','systemClock.setMaximumSystemFrequency',false);
306
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.setMaximumSystemFrequency',false)).toBeTruthy();
307
+
308
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','systemClock.requestedSystemFrequency_Hz',"18000000");
309
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.requestedSystemFrequency_Hz',"18000000")).toBeTruthy();
310
+
311
+
312
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','systemClock.fvcoDivider','2');
313
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.fvcoDivider','2')).toBeTruthy();
314
+ const DriverData = await testAPI.getModuleData(driverModuleId);
315
+ expect(utils.getArgs(DriverData,"clock_16bit_config_interface","mainClockArg")?.mainClockSource).toBe("FRC Oscillator with PLL");
316
+
317
+ expect(utils.getArgs(DriverData,"clock_16bit_config_interface","mainClockArg")?.setMaximumSystemFrequency).toBe(false);
318
+ expect(utils.getArgs(DriverData,"clock_16bit_config_interface","mainClockArg")?.fvcoDivider).toBe(2);
319
+
320
+ expect(utils.getReadOnlyValue(DriverData,"systemClock","calculatedSystemFrequency_Hz")).toBe(true);
321
+ expect(utils.getReadOnlyValue(DriverData,"systemClock","instructionClockFrequency_Hz")).toBe(true);
322
+ expect(utils.getReadOnlyValue(DriverData,"systemClock","fpllo")).toBe(true);
323
+ expect(utils.getReadOnlyValue(DriverData,"systemClock","fvco")).toBe(true);
324
+
325
+ expect(utils.getHiddenProperty(DriverData,"systemClock","mainClockInputFrequency_Hz")).toBe("hidden");
326
+ const PLIBData = await testAPI.getModuleData(PLIBModuleId);
327
+ const configBitsData = await testAPI.getModuleData(configBitsModuleId);
328
+ expect(await testAPI.assertAutoModuleProperty(PLIBModuleId, 'main','software.clockOutputPinConfig',"OSC2 is general purpose digital i/o pin")).toBeTruthy();
329
+ expect(utils.getReadOnlyValue(PLIBData,"software","clockOutputPinConfig")).toBe(true);
330
+ expect(utils.getReadOnlyValue(PLIBData,"software","oscOutputPinConfig")).toBe(true);
331
+ expect(utils.getHiddenProperty(PLIBData,"software","oscOutputPinConfig")).toBe("hidden");
332
+
333
+ const pinModuleData:any = await testAPI.getModuleData(pinModuleId);
334
+ expect(utils.getModulepins(pinModuleData,PLIBModuleId,['INTERNAL OSCILLATOR$CLKO$output'])?.name == "CLKO").toBe(true);
335
+ expect(utils.getModulepins(pinModuleData,PLIBModuleId,['INTERNAL OSCILLATOR$CLKO$output'])?.pins?.['RB1']?.state).toBe('UL');
336
+ expect(utils.getModulepins(pinModuleData,PLIBModuleId,['INTERNAL OSCILLATOR$REFO$output'])?.pins?.['RB0']?.state).toBe('UL');
337
+ expect(utils.getModulepins(pinModuleData,PLIBModuleId,['INTERNAL OSCILLATOR$REFI$input'])?.pins?.['RB0']?.state).toBe('MUL');
338
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.calculatedSystemFrequency_Hz',"18.00 MHz")).toBe(true);
339
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.instructionClockFrequency_Hz',"9.00 MHz")).toBe(true);
340
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.fpllo',"36.00 MHz")).toBe(true);
341
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.fvco',"432.00 MHz")).toBe(true);
342
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.fvcoDiv',"216.00 MHz")).toBe(true);
343
+
344
+ expect(utils.getSettingBit(PLIBData,"OSCCON","NOSC")).toBe("FRCPLL");
345
+ expect(utils.getSettingBit(PLIBData,"PLLFBD","PLLFBDIV")).toBe("54");
346
+ expect(utils.getSettingBit(PLIBData,"PLLDIV","VCODIV")).toBe("FVCO/2");
347
+ expect(utils.getSettingBit(PLIBData,"PLLDIV","POST1DIV")).toBe("1:6");
348
+ expect(utils.getRegisterValue(PLIBData,"OSCCON")).toBe("OSCCON : 0x100");
349
+ expect(utils.getRegisterValue(PLIBData,"PLLFBD")).toBe("PLLFBD : 0x36");
350
+ expect(utils.getRegisterValue(PLIBData,"PLLDIV")).toBe("PLLDIV : 0x262");
351
+ if(device.match("dsPIC33C[A-Z]+[0-9]+M[A-Z][0-9]+$")){
352
+ expect(utils.getConfigBitsSettingBit(configBitsData,"FOSC","poscmodFosc")).toBe("NONE");
353
+ expect(utils.getConfigBitsSettingBit(configBitsData,"FOSC","osciofcnFosc")).toBe("ON");
354
+ expect(utils.getConfigBitsSettingBit(configBitsData,"FOSC","fcksmFosc")).toBe("CSECMD");
355
+ expect(utils.getConfigBitsSettingBit(configBitsData,"FOSCSEL","fnoscFoscsel")).toBe("FRC");
356
+ expect(utils.getConfigBitsSettingBit(configBitsData,"FOSCSEL","iesoFoscsel")).toBe("OFF");
357
+ }
358
+ },MAX_TESTCASE_TIMEOUT);
359
+ test("TID_2-5 For the input clock source Primary Oscillator, Verify the Calculated FOSC/2, FPLLO, FVCO, FVCODIV, Pin configuration and derived configBit Registers settings", async () => {
360
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','systemClock.mainClockSource','Primary Oscillator');
361
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.mainClockSource','Primary Oscillator')).toBeTruthy();
362
+
363
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','systemClock.setMaximumSystemFrequency',true);
364
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.setMaximumSystemFrequency',true)).toBeTruthy();
365
+
366
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','systemClock.mainClockInputFrequency_Hz',"15000000");
367
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.mainClockInputFrequency_Hz',"15000000")).toBeTruthy();
368
+
369
+
370
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','systemClock.fvcoDivider','2');
371
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.fvcoDivider','2')).toBeTruthy();
372
+
373
+ const DriverData = await testAPI.getModuleData(driverModuleId);
374
+ expect(utils.getArgs(DriverData,"clock_16bit_config_interface","mainClockArg")?.mainClockSource).toBe("Primary Oscillator");
375
+
376
+ expect(utils.getArgs(DriverData,"clock_16bit_config_interface","mainClockArg")?.setMaximumSystemFrequency).toBe(true);
377
+ expect(utils.getArgs(DriverData,"clock_16bit_config_interface","mainClockArg")?.fvcoDivider).toBe(2);
378
+
379
+ expect(utils.getReadOnlyValue(DriverData,"systemClock","calculatedSystemFrequency_Hz")).toBe(true);
380
+ expect(utils.getReadOnlyValue(DriverData,"systemClock","instructionClockFrequency_Hz")).toBe(true);
381
+ expect(utils.getReadOnlyValue(DriverData,"systemClock","fpllo")).toBe(true);
382
+ expect(utils.getReadOnlyValue(DriverData,"systemClock","fvco")).toBe(true);
383
+
384
+ const PLIBData = await testAPI.getModuleData(PLIBModuleId);
385
+ const configBitsData = await testAPI.getModuleData(configBitsModuleId);
386
+ expect(await testAPI.assertAutoModuleProperty(PLIBModuleId, 'main','software.oscOutputPinConfig',"OSC2 is clock output")).toBeTruthy();
387
+ expect(utils.getReadOnlyValue(PLIBData,"software","clockOutputPinConfig")).toBe(true);
388
+ expect(utils.getReadOnlyValue(PLIBData,"software","oscOutputPinConfig")).toBe(true);
389
+ expect(utils.getHiddenProperty(PLIBData,"software","clockOutputPinConfig")).toBe("hidden");
390
+
391
+ const pinModuleData:any = await testAPI.getModuleData(pinModuleId);
392
+ expect(utils.getModulepins(pinModuleData,PLIBModuleId,['INTERNAL OSCILLATOR$OSCO$output'])?.name == "OSCO").toBe(true);
393
+ expect(utils.getModulepins(pinModuleData,PLIBModuleId,['INTERNAL OSCILLATOR$OSCI$input'])?.name == "OSCI").toBe(true);
394
+ expect(utils.getModulepins(pinModuleData,PLIBModuleId,['INTERNAL OSCILLATOR$OSCO$output'])?.pins?.['RB1']?.state).toBe('L');
395
+ expect(utils.getModulepins(pinModuleData,PLIBModuleId,['INTERNAL OSCILLATOR$OSCI$input'])?.pins?.['RB0']?.state).toBe('L');
396
+ expect(utils.getModulepins(pinModuleData,PLIBModuleId,['INTERNAL OSCILLATOR$REFO$output'])?.pins?.['RB0']?.state).toBe('UL');
397
+ expect(utils.getModulepins(pinModuleData,PLIBModuleId,['INTERNAL OSCILLATOR$REFI$input'])?.pins?.['RB0']?.state).toBe('MUL');
398
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.calculatedSystemFrequency_Hz',"15.00 MHz")).toBe(true);
399
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.instructionClockFrequency_Hz',"7.50 MHz")).toBe(true);
400
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.fpllo',"1200.00 MHz")).toBe(true);
401
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.fvco',"1200.00 MHz")).toBe(true);
402
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.fvcoDiv',"600.00 MHz")).toBe(true);
403
+ expect(utils.getSettingBit(PLIBData,"OSCCON","NOSC")).toBe("PRI");
404
+ expect(utils.getSettingBit(PLIBData,"PLLFBD","PLLFBDIV")).toBe("150");
405
+ expect(utils.getSettingBit(PLIBData,"PLLDIV","VCODIV")).toBe("FVCO/2");
406
+ expect(utils.getSettingBit(PLIBData,"PLLDIV","POST1DIV")).toBe("1:4");
407
+ expect(utils.getRegisterValue(PLIBData,"OSCCON")).toBe("OSCCON : 0x200");
408
+ expect(utils.getRegisterValue(PLIBData,"PLLFBD")).toBe("PLLFBD : 0x96");
409
+ expect(utils.getRegisterValue(PLIBData,"PLLDIV")).toBe("PLLDIV : 0x241");
410
+ if(device.match("dsPIC33C[A-Z]+[0-9]+M[A-Z][0-9]+$")){
411
+ expect(utils.getConfigBitsSettingBit(configBitsData,"FOSC","poscmodFosc")).toBe("HS");
412
+ expect(utils.getConfigBitsSettingBit(configBitsData,"FOSC","osciofcnFosc")).toBe("OFF");
413
+ expect(utils.getConfigBitsSettingBit(configBitsData,"FOSC","fcksmFosc")).toBe("CSDCMD");
414
+ expect(utils.getConfigBitsSettingBit(configBitsData,"FOSCSEL","fnoscFoscsel")).toBe("PRI");
415
+ expect(utils.getConfigBitsSettingBit(configBitsData,"FOSCSEL","iesoFoscsel")).toBe("OFF");
416
+ }
417
+ },MAX_TESTCASE_TIMEOUT);
418
+ if(device.match("dsPIC33C[A-Z]+[0-9]+MP[0-9]+$")){
419
+ test("TID_2-6 For the input clock source LPRC Oscillator, Verify the Calculated FOSC/2, FPLLO, FVCO, FVCODIV, Pin configuration and derived configBit Registers settings", async () => {
420
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','systemClock.mainClockSource','LPRC Oscillator');
421
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.mainClockSource','LPRC Oscillator')).toBeTruthy();
422
+
423
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','systemClock.setMaximumSystemFrequency',true);
424
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.setMaximumSystemFrequency',true)).toBeTruthy();
425
+
426
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','systemClock.fvcoDivider','2');
427
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.fvcoDivider','2')).toBeTruthy();
428
+
429
+ const DriverData = await testAPI.getModuleData(driverModuleId);
430
+ expect(utils.getArgs(DriverData,"clock_16bit_config_interface","mainClockArg")?.mainClockSource).toBe("LPRC Oscillator");
431
+
432
+ expect(utils.getArgs(DriverData,"clock_16bit_config_interface","mainClockArg")?.setMaximumSystemFrequency).toBe(true);
433
+ expect(utils.getArgs(DriverData,"clock_16bit_config_interface","mainClockArg")?.fvcoDivider).toBe(2);
434
+
435
+ expect(utils.getReadOnlyValue(DriverData,"systemClock","calculatedSystemFrequency_Hz")).toBe(true);
436
+ expect(utils.getReadOnlyValue(DriverData,"systemClock","instructionClockFrequency_Hz")).toBe(true);
437
+
438
+ expect(utils.getReadOnlyValue(DriverData,"systemClock","fpllo")).toBe(true);
439
+ expect(utils.getReadOnlyValue(DriverData,"systemClock","fvco")).toBe(true);
440
+
441
+ expect(utils.getHiddenProperty(DriverData,"systemClock","mainClockInputFrequency_Hz")).toBe("hidden");
442
+ const PLIBData = await testAPI.getModuleData(PLIBModuleId);
443
+ expect(await testAPI.assertAutoModuleProperty(PLIBModuleId, 'main','software.clockOutputPinConfig',"OSC2 is general purpose digital i/o pin")).toBeTruthy();
444
+ expect(utils.getReadOnlyValue(PLIBData,"software","clockOutputPinConfig")).toBe(true);
445
+ expect(utils.getReadOnlyValue(PLIBData,"software","oscOutputPinConfig")).toBe(true);
446
+ expect(utils.getHiddenProperty(PLIBData,"software","oscOutputPinConfig")).toBe("hidden");
447
+
448
+ const pinModuleData:any = await testAPI.getModuleData(pinModuleId);
449
+ const configBitsData = await testAPI.getModuleData(configBitsModuleId);
450
+ expect(utils.getModulepins(pinModuleData,PLIBModuleId,['INTERNAL OSCILLATOR$CLKO$output'])?.name == "CLKO").toBe(true);
451
+ expect(utils.getModulepins(pinModuleData,PLIBModuleId,['INTERNAL OSCILLATOR$CLKO$output'])?.pins?.['RB1']?.state).toBe('UL');
452
+ expect(utils.getModulepins(pinModuleData,PLIBModuleId,['INTERNAL OSCILLATOR$REFO$output'])?.pins?.['RB0']?.state).toBe('UL');
453
+ expect(utils.getModulepins(pinModuleData,PLIBModuleId,['INTERNAL OSCILLATOR$REFI$input'])?.pins?.['RB0']?.state).toBe('MUL');
454
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.calculatedSystemFrequency_Hz',"32.00 kHz")).toBe(true);
455
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.instructionClockFrequency_Hz',"16.00 kHz")).toBe(true);
456
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.fpllo',"1200.00 MHz")).toBe(true);
457
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.fvco',"1200.00 MHz")).toBe(true);
458
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.fvcoDiv',"600.00 MHz")).toBe(true);
459
+
460
+ expect(utils.getSettingBit(PLIBData,"OSCCON","NOSC")).toBe("LPRC");
461
+ expect(utils.getSettingBit(PLIBData,"PLLFBD","PLLFBDIV")).toBe("150");
462
+ expect(utils.getSettingBit(PLIBData,"PLLDIV","VCODIV")).toBe("FVCO/2");
463
+ expect(utils.getSettingBit(PLIBData,"PLLDIV","POST1DIV")).toBe("1:4");
464
+ expect(utils.getRegisterValue(PLIBData,"OSCCON")).toBe("OSCCON : 0x500");
465
+ expect(utils.getRegisterValue(PLIBData,"PLLFBD")).toBe("PLLFBD : 0x96");
466
+ expect(utils.getRegisterValue(PLIBData,"PLLDIV")).toBe("PLLDIV : 0x241");
467
+ if(device.match("dsPIC33C[A-Z]+[0-9]+M[A-Z][0-9]+$")){
468
+ expect(utils.getConfigBitsSettingBit(configBitsData,"FOSC","poscmodFosc")).toBe("NONE");
469
+ expect(utils.getConfigBitsSettingBit(configBitsData,"FOSC","osciofcnFosc")).toBe("ON");
470
+ expect(utils.getConfigBitsSettingBit(configBitsData,"FOSC","fcksmFosc")).toBe("CSDCMD");
471
+ expect(utils.getConfigBitsSettingBit(configBitsData,"FOSCSEL","fnoscFoscsel")).toBe("LPRC");
472
+ expect(utils.getConfigBitsSettingBit(configBitsData,"FOSCSEL","iesoFoscsel")).toBe("OFF");
473
+ }
474
+ },MAX_TESTCASE_TIMEOUT);
475
+ }
476
+ test("TID_2-7 For the input clock source External Oscillator with PLL, Verify the Calculated FOSC/2, FPLLO, FVCO, FVCODIV, Pin configuration and derived configBit Registers settings", async () => {
477
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','systemClock.mainClockSource','External Oscillator with PLL');
478
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.mainClockSource','External Oscillator with PLL')).toBeTruthy();
479
+
480
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','systemClock.setMaximumSystemFrequency',true);
481
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.setMaximumSystemFrequency',true)).toBeTruthy();
482
+
483
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','systemClock.mainClockInputFrequency_Hz',8000000);
484
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.mainClockInputFrequency_Hz',8000000)).toBeTruthy();
485
+
486
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','systemClock.fvcoDivider','2');
487
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.fvcoDivider','2')).toBeTruthy();
488
+
489
+ const DriverData = await testAPI.getModuleData(driverModuleId);
490
+ expect(utils.getArgs(DriverData,"clock_16bit_config_interface","mainClockArg")?.mainClockSource).toBe("External Oscillator with PLL");
491
+
492
+ expect(utils.getArgs(DriverData,"clock_16bit_config_interface","mainClockArg")?.setMaximumSystemFrequency).toBe(true);
493
+ expect(utils.getArgs(DriverData,"clock_16bit_config_interface","mainClockArg")?.fvcoDivider).toBe(2);
494
+
495
+ expect(utils.getReadOnlyValue(DriverData,"systemClock","calculatedSystemFrequency_Hz")).toBe(true);
496
+ expect(utils.getReadOnlyValue(DriverData,"systemClock","instructionClockFrequency_Hz")).toBe(true);
497
+ expect(utils.getReadOnlyValue(DriverData,"systemClock","fpllo")).toBe(true);
498
+ expect(utils.getReadOnlyValue(DriverData,"systemClock","fvco")).toBe(true);
499
+ const PLIBData = await testAPI.getModuleData(PLIBModuleId);
500
+ const configBitsData = await testAPI.getModuleData(configBitsModuleId);
501
+ expect(await testAPI.assertAutoModuleProperty(PLIBModuleId, 'main','software.clockOutputPinConfig',"OSC2 is general purpose digital i/o pin")).toBeTruthy();
502
+ expect(utils.getReadOnlyValue(PLIBData,"software","clockOutputPinConfig")).toBe(true);
503
+ expect(utils.getReadOnlyValue(PLIBData,"software","oscOutputPinConfig")).toBe(true);
504
+ expect(utils.getHiddenProperty(PLIBData,"software","oscOutputPinConfig")).toBe("hidden");
505
+
506
+ const pinModuleData:any = await testAPI.getModuleData(pinModuleId);
507
+ expect(utils.getModulepins(pinModuleData,PLIBModuleId,['INTERNAL OSCILLATOR$CLKO$output'])?.name == "CLKO").toBe(true);
508
+ expect(utils.getModulepins(pinModuleData,PLIBModuleId,['INTERNAL OSCILLATOR$CLKO$output'])?.pins?.['RB1']?.state).toBe('UL');
509
+ expect(utils.getModulepins(pinModuleData,PLIBModuleId,['INTERNAL OSCILLATOR$REFO$output'])?.pins?.['RB0']?.state).toBe('UL');
510
+ expect(utils.getModulepins(pinModuleData,PLIBModuleId,['INTERNAL OSCILLATOR$REFI$input'])?.pins?.['RB0']?.state).toBe('MUL');
511
+
512
+ if(device.match("dsPIC33CH[0-9]+MP5[0-9]+$")){
513
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.calculatedSystemFrequency_Hz',"180.00 MHz")).toBe(true);
514
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.instructionClockFrequency_Hz',"90.00 MHz")).toBe(true);
515
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.fpllo',"360.00 MHz")).toBe(true);
516
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.fvco',"720.00 MHz")).toBe(true);
517
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.fvcoDiv',"360.00 MHz")).toBe(true);
518
+
519
+ expect(utils.getSettingBit(PLIBData,"OSCCON","NOSC")).toBe("PRIPLL");
520
+ expect(utils.getSettingBit(PLIBData,"PLLFBD","PLLFBDIV")).toBe("90");
521
+ expect(utils.getSettingBit(PLIBData,"PLLDIV","VCODIV")).toBe("FVCO/2");
522
+ expect(utils.getSettingBit(PLIBData,"PLLDIV","POST1DIV")).toBe("1:2");
523
+
524
+ expect(utils.getConfigBitsSettingBit(configBitsData,"FOSC","poscmodFosc")).toBe("EC");
525
+ expect(utils.getConfigBitsSettingBit(configBitsData,"FOSC","osciofcnFosc")).toBe("ON");
526
+ expect(utils.getConfigBitsSettingBit(configBitsData,"FOSC","pllkenFosc")).toBe("PLLKEN_ON");
527
+ expect(utils.getConfigBitsSettingBit(configBitsData,"FOSC","fcksmFosc")).toBe("CSECMD");
528
+
529
+ expect(utils.getConfigBitsSettingBit(configBitsData,"FOSCSEL","fnoscFoscsel")).toBe("FRC");
530
+ expect(utils.getConfigBitsSettingBit(configBitsData,"FOSCSEL","iesoFoscsel")).toBe("OFF");
531
+
532
+ expect(utils.getRegisterValue(PLIBData,"OSCCON")).toBe("OSCCON : 0x300");
533
+ expect(utils.getRegisterValue(PLIBData,"PLLFBD")).toBe("PLLFBD : 0x5a");
534
+ expect(utils.getRegisterValue(PLIBData,"PLLDIV")).toBe("PLLDIV : 0x221");
535
+ }
536
+ if(device.match("dsPIC33C[^H]+[0-9]+M[A-Z][0-9]+$")){
537
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.calculatedSystemFrequency_Hz',"200.00 MHz")).toBe(true);
538
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.instructionClockFrequency_Hz',"100.00 MHz")).toBe(true);
539
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.fpllo',"400.00 MHz")).toBe(true);
540
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.fvco',"400.00 MHz")).toBe(true);
541
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.fvcoDiv',"200.00 MHz")).toBe(true);
542
+ expect(utils.getSettingBit(PLIBData,"OSCCON","NOSC")).toBe("PRIPLL");
543
+ expect(utils.getSettingBit(PLIBData,"PLLFBD","PLLFBDIV")).toBe("50");
544
+ expect(utils.getSettingBit(PLIBData,"PLLDIV","VCODIV")).toBe("FVCO/2");
545
+ expect(utils.getSettingBit(PLIBData,"PLLDIV","POST1DIV")).toBe("1:1");
546
+ expect(utils.getConfigBitsSettingBit(configBitsData,"FOSC","poscmodFosc")).toBe("EC");
547
+ expect(utils.getConfigBitsSettingBit(configBitsData,"FOSC","osciofcnFosc")).toBe("ON");
548
+ expect(utils.getConfigBitsSettingBit(configBitsData,"FOSC","fcksmFosc")).toBe("CSECMD");
549
+ expect(utils.getConfigBitsSettingBit(configBitsData,"FOSCSEL","fnoscFoscsel")).toBe("FRC");
550
+ expect(utils.getConfigBitsSettingBit(configBitsData,"FOSCSEL","iesoFoscsel")).toBe("OFF");
551
+ expect(utils.getRegisterValue(PLIBData,"OSCCON")).toBe("OSCCON : 0x300");
552
+ expect(utils.getRegisterValue(PLIBData,"PLLFBD")).toBe("PLLFBD : 0x32");
553
+ expect(utils.getRegisterValue(PLIBData,"PLLDIV")).toBe("PLLDIV : 0x211");
554
+ }
555
+ if(device.match("dsPIC33CH[0-9]+MP5[0-9]+S1$")){
556
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.calculatedSystemFrequency_Hz',"200.00 MHz")).toBe(true);
557
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.instructionClockFrequency_Hz',"100.00 MHz")).toBe(true);
558
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.fpllo',"400.00 MHz")).toBe(true);
559
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.fvco',"400.00 MHz")).toBe(true);
560
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.fvcoDiv',"200.00 MHz")).toBe(true);
561
+ }
562
+ },MAX_TESTCASE_TIMEOUT);
563
+ test("TID_2-8 For the input clock source External Oscillator, Verify the Calculated FOSC/2, FPLLO, FVCO, FVCODIV, Pin configuration and derived configBit Registers settings", async () => {
564
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','systemClock.mainClockSource','External Oscillator');
565
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.mainClockSource','External Oscillator')).toBeTruthy();
566
+
567
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','systemClock.setMaximumSystemFrequency',true);
568
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.setMaximumSystemFrequency',true)).toBeTruthy();
569
+
570
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','systemClock.mainClockInputFrequency_Hz',9000000);
571
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.mainClockInputFrequency_Hz',9000000)).toBeTruthy();
572
+
573
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','systemClock.fvcoDivider','2');
574
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.fvcoDivider','2')).toBeTruthy();
575
+
576
+ const DriverData = await testAPI.getModuleData(driverModuleId);
577
+ expect(utils.getArgs(DriverData,"clock_16bit_config_interface","mainClockArg")?.mainClockSource).toBe("External Oscillator");
578
+
579
+ expect(utils.getArgs(DriverData,"clock_16bit_config_interface","mainClockArg")?.setMaximumSystemFrequency).toBe(true);
580
+ expect(utils.getArgs(DriverData,"clock_16bit_config_interface","mainClockArg")?.fvcoDivider).toBe(2);
581
+
582
+ expect(utils.getReadOnlyValue(DriverData,"systemClock","calculatedSystemFrequency_Hz")).toBe(true);
583
+ expect(utils.getReadOnlyValue(DriverData,"systemClock","instructionClockFrequency_Hz")).toBe(true);
584
+ expect(utils.getReadOnlyValue(DriverData,"systemClock","fpllo")).toBe(true);
585
+ expect(utils.getReadOnlyValue(DriverData,"systemClock","fvco")).toBe(true);
586
+
587
+ const PLIBData = await testAPI.getModuleData(PLIBModuleId);
588
+ const configBitsData = await testAPI.getModuleData(configBitsModuleId);
589
+ expect(await testAPI.assertAutoModuleProperty(PLIBModuleId, 'main','software.clockOutputPinConfig',"OSC2 is general purpose digital i/o pin")).toBeTruthy();
590
+ expect(utils.getReadOnlyValue(PLIBData,"software","clockOutputPinConfig")).toBe(true);
591
+ expect(utils.getReadOnlyValue(PLIBData,"software","oscOutputPinConfig")).toBe(true);
592
+ expect(utils.getHiddenProperty(PLIBData,"software","oscOutputPinConfig")).toBe("hidden");
593
+
594
+ const pinModuleData:any = await testAPI.getModuleData(pinModuleId);
595
+ expect(utils.getModulepins(pinModuleData,PLIBModuleId,['INTERNAL OSCILLATOR$CLKO$output'])?.name == "CLKO").toBe(true);
596
+ expect(utils.getModulepins(pinModuleData,PLIBModuleId,['INTERNAL OSCILLATOR$REFO$output'])?.pins?.['RB0']?.state).toBe('UL');
597
+ expect(utils.getModulepins(pinModuleData,PLIBModuleId,['INTERNAL OSCILLATOR$REFI$input'])?.pins?.['RB0']?.state).toBe('MUL');
598
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.calculatedSystemFrequency_Hz',"9.00 MHz")).toBe(true);
599
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.instructionClockFrequency_Hz',"4.50 MHz")).toBe(true);
600
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.fpllo',"1200.00 MHz")).toBe(true);
601
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.fvco',"1200.00 MHz")).toBe(true);
602
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.fvcoDiv',"600.00 MHz")).toBe(true);
603
+
604
+ expect(utils.getSettingBit(PLIBData,"OSCCON","NOSC")).toBe("PRI");
605
+ expect(utils.getSettingBit(PLIBData,"PLLFBD","PLLFBDIV")).toBe("150");
606
+ expect(utils.getSettingBit(PLIBData,"PLLDIV","VCODIV")).toBe("FVCO/2");
607
+ expect(utils.getSettingBit(PLIBData,"PLLDIV","POST1DIV")).toBe("1:4");
608
+
609
+ expect(utils.getRegisterValue(PLIBData,"OSCCON")).toBe("OSCCON : 0x200");
610
+ expect(utils.getRegisterValue(PLIBData,"PLLFBD")).toBe("PLLFBD : 0x96");
611
+ expect(utils.getRegisterValue(PLIBData,"PLLDIV")).toBe("PLLDIV : 0x241");
612
+ if(device.match("dsPIC33C[A-Z]+[0-9]+M[A-Z][0-9]+$")){
613
+ expect(utils.getConfigBitsSettingBit(configBitsData,"FOSC","poscmodFosc")).toBe("EC");
614
+ expect(utils.getConfigBitsSettingBit(configBitsData,"FOSC","osciofcnFosc")).toBe("ON");
615
+ expect(utils.getConfigBitsSettingBit(configBitsData,"FOSC","fcksmFosc")).toBe("CSDCMD");
616
+ expect(utils.getConfigBitsSettingBit(configBitsData,"FOSCSEL","fnoscFoscsel")).toBe("PRI");
617
+ expect(utils.getConfigBitsSettingBit(configBitsData,"FOSCSEL","iesoFoscsel")).toBe("OFF");
618
+ }
619
+ },MAX_TESTCASE_TIMEOUT);
620
+ test("TID_2-9 For the input clock source BFRC Oscillator, Verify the Calculated FOSC/2, FPLLO, FVCO, FVCODIV, Pin configuration and derived configBit Registers settings", async () => {
621
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','systemClock.mainClockSource','BFRC Oscillator');
622
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.mainClockSource','BFRC Oscillator')).toBeTruthy();
623
+
624
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','systemClock.setMaximumSystemFrequency',true);
625
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.setMaximumSystemFrequency',true)).toBeTruthy();
626
+
627
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','systemClock.fvcoDivider','2');
628
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.fvcoDivider','2')).toBeTruthy();
629
+ const DriverData = await testAPI.getModuleData(driverModuleId);
630
+ expect(utils.getArgs(DriverData,"clock_16bit_config_interface","mainClockArg")?.mainClockSource).toBe("BFRC Oscillator");
631
+
632
+ expect(utils.getArgs(DriverData,"clock_16bit_config_interface","mainClockArg")?.setMaximumSystemFrequency).toBe(true);
633
+ expect(utils.getArgs(DriverData,"clock_16bit_config_interface","mainClockArg")?.fvcoDivider).toBe(2);
634
+
635
+ expect(utils.getReadOnlyValue(DriverData,"systemClock","calculatedSystemFrequency_Hz")).toBe(true);
636
+ expect(utils.getReadOnlyValue(DriverData,"systemClock","instructionClockFrequency_Hz")).toBe(true);
637
+ expect(utils.getReadOnlyValue(DriverData,"systemClock","fpllo")).toBe(true);
638
+ expect(utils.getReadOnlyValue(DriverData,"systemClock","fvco")).toBe(true);
639
+
640
+ const PLIBData = await testAPI.getModuleData(PLIBModuleId);
641
+ const configBitsData = await testAPI.getModuleData(configBitsModuleId);
642
+ expect(await testAPI.assertAutoModuleProperty(PLIBModuleId, 'main','software.clockOutputPinConfig',"OSC2 is general purpose digital i/o pin")).toBeTruthy();
643
+ expect(utils.getReadOnlyValue(PLIBData,"software","clockOutputPinConfig")).toBe(true);
644
+ expect(utils.getReadOnlyValue(PLIBData,"software","oscOutputPinConfig")).toBe(true);
645
+ expect(utils.getHiddenProperty(PLIBData,"software","oscOutputPinConfig")).toBe("hidden");
646
+
647
+ const pinModuleData:any = await testAPI.getModuleData(pinModuleId);
648
+ expect(utils.getModulepins(pinModuleData,PLIBModuleId,['INTERNAL OSCILLATOR$CLKO$output'])?.name == "CLKO").toBe(true);
649
+ expect(utils.getModulepins(pinModuleData,PLIBModuleId,['INTERNAL OSCILLATOR$CLKO$output'])?.pins?.['RB1']?.state).toBe('UL');
650
+ expect(utils.getModulepins(pinModuleData,PLIBModuleId,['INTERNAL OSCILLATOR$REFO$output'])?.pins?.['RB0']?.state).toBe('UL');
651
+ expect(utils.getModulepins(pinModuleData,PLIBModuleId,['INTERNAL OSCILLATOR$REFI$input'])?.pins?.['RB0']?.state).toBe('MUL');
652
+
653
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.calculatedSystemFrequency_Hz',"8.00 MHz")).toBe(true);
654
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.instructionClockFrequency_Hz',"4.00 MHz")).toBe(true);
655
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.fpllo',"1200.00 MHz")).toBe(true);
656
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.fvco',"1200.00 MHz")).toBe(true);
657
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','systemClock.fvcoDiv',"600.00 MHz")).toBe(true);
658
+ expect(utils.getSettingBit(PLIBData,"OSCCON","NOSC")).toBe("BFRC");
659
+ expect(utils.getSettingBit(PLIBData,"PLLFBD","PLLFBDIV")).toBe("150");
660
+ expect(utils.getSettingBit(PLIBData,"PLLDIV","VCODIV")).toBe("FVCO/2");
661
+ expect(utils.getSettingBit(PLIBData,"PLLDIV","POST1DIV")).toBe("1:4");
662
+ expect(utils.getRegisterValue(PLIBData,"OSCCON")).toBe("OSCCON : 0x600");
663
+ expect(utils.getRegisterValue(PLIBData,"PLLFBD")).toBe("PLLFBD : 0x96");
664
+ expect(utils.getRegisterValue(PLIBData,"PLLDIV")).toBe("PLLDIV : 0x241");
665
+ if(device.match("dsPIC33C[A-Z]+[0-9]+M[A-Z][0-9]+$")){
666
+ expect(utils.getConfigBitsSettingBit(configBitsData,"FOSC","poscmodFosc")).toBe("NONE");
667
+ expect(utils.getConfigBitsSettingBit(configBitsData,"FOSC","osciofcnFosc")).toBe("ON");
668
+ expect(utils.getConfigBitsSettingBit(configBitsData,"FOSC","fcksmFosc")).toBe("CSDCMD");
669
+ expect(utils.getConfigBitsSettingBit(configBitsData,"FOSCSEL","fnoscFoscsel")).toBe("BFRC");
670
+ expect(utils.getConfigBitsSettingBit(configBitsData,"FOSCSEL","iesoFoscsel")).toBe("OFF");
671
+ }
672
+ },MAX_TESTCASE_TIMEOUT);
673
+
674
+ });
675
+ if(device.match("dsPIC33C[A-Z]+[0-9]+M[^C]+[0-9]+")){
676
+ describe("TID_3 Auxiliary Clock", () => {
677
+ test("TID_3-1 For the Auxiliary clock source Primary Oscillator with PLL , Verify the Calculated AFPLLO, AFVCO, AFVCODIV and derived Registers settings", async () => {
678
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','auxClock.auxClockSource','Primary Oscillator with PLL');
679
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','auxClock.auxClockSource','Primary Oscillator with PLL')).toBeTruthy();
680
+
681
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','auxClock.afvcoDivider','2');
682
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','auxClock.afvcoDivider','2')).toBeTruthy();
683
+
684
+ const DriverData = await testAPI.getModuleData(driverModuleId);
685
+
686
+ expect(utils.getArgs(DriverData,"clock_16bit_config_interface","auxClockArg")?.auxClockSource).toBe("Primary Oscillator with PLL");
687
+ expect(utils.getArgs(DriverData,"clock_16bit_config_interface","auxClockArg")?.afvcoDivider).toBe(2);
688
+
689
+ expect(utils.getReadOnlyValue(DriverData,"auxClock","apllo")).toBe(true);
690
+ expect(utils.getReadOnlyValue(DriverData,"auxClock","afvco")).toBe(true);
691
+ expect(utils.getReadOnlyValue(DriverData,"auxClock","afvcoDiv")).toBe(true);
692
+ expect(utils.getReadOnlyValue(DriverData,"auxClock","afvcoDivider")).toBe(false);
693
+ if(device.match("dsPIC33C[A-Z]+[0-9]+M[^C]+[0-9]+$")){
694
+ const PLIBData = await testAPI.getModuleData(PLIBModuleId);
695
+ expect(utils.getSettingBit(PLIBData,"ACLKCON1","FRCSEL")).toBe("Primary Oscillator");
696
+ expect(utils.getSettingBit(PLIBData,"ACLKCON1","APLLEN")).toBe("enabled");
697
+ expect(utils.getSettingBit(PLIBData,"APLLFBD1","APLLFBDIV")).toBe("48");
698
+ expect(utils.getSettingBit(PLIBData,"APLLDIV1","AVCODIV")).toBe("FVCO/2");
699
+ expect(utils.getSettingBit(PLIBData,"APLLDIV1","APOST1DIV")).toBe("1:7");
700
+ expect(utils.getSettingBit(PLIBData,"APLLDIV1","APOST2DIV")).toBe("1:3");
701
+
702
+ expect(utils.getRegisterValue(PLIBData,"ACLKCON1")).toBe("ACLKCON1 : 0x8001");
703
+ expect(utils.getRegisterValue(PLIBData,"APLLFBD1")).toBe("APLLFBD1 : 0x30");
704
+ expect(utils.getRegisterValue(PLIBData,"APLLDIV1")).toBe("APLLDIV1 : 0x273");
705
+ }
706
+ },MAX_TESTCASE_TIMEOUT);
707
+ test("TID_3-2 For the Auxiliary clock source FRC Oscillator, Verify the Calculated AFPLLO, AFVCO, AFVCODIV and derived Registers settings", async () => {
708
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','auxClock.auxClockSource','FRC Oscillator');
709
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','auxClock.auxClockSource','FRC Oscillator')).toBeTruthy();
710
+ const DriverData = await testAPI.getModuleData(driverModuleId);
711
+ expect(utils.getHiddenProperty(DriverData,"auxClock","auxClockInputFrequency_Hz")).toBe("hidden");
712
+ expect(utils.getHiddenProperty(DriverData,"auxClock","requestedAuxClockOutputFrequency_Hz")).toBe("hidden");
713
+ expect(utils.getHiddenProperty(DriverData,"auxClock","afvcoDivider")).toBe("hidden");
714
+ expect(utils.getHiddenProperty(DriverData,"auxClock","afvco")).toBe("hidden");
715
+ expect(utils.getHiddenProperty(DriverData,"auxClock","afvcoDiv")).toBe("hidden");
716
+
717
+ if(device.match("dsPIC33C[A-Z]+[0-9]+M[^C]+[0-9]+$")){
718
+ const PLIBData = await testAPI.getModuleData(PLIBModuleId);
719
+ expect(utils.getSettingBit(PLIBData,"ACLKCON1","FRCSEL")).toBe("FRC Oscillator");
720
+ expect(utils.getSettingBit(PLIBData,"ACLKCON1","APLLEN")).toBe("disabled");
721
+
722
+ expect(utils.getRegisterValue(PLIBData,"ACLKCON1")).toBe("ACLKCON1 : 0x101");
723
+ expect(utils.getRegisterValue(PLIBData,"APLLFBD1")).toBe("APLLFBD1 : 0x96");
724
+ expect(utils.getRegisterValue(PLIBData,"APLLDIV1")).toBe("APLLDIV1 : 0x41");
725
+ }
726
+
727
+ },MAX_TESTCASE_TIMEOUT);
728
+ test("TID_3-3 For the Auxiliary clock source Primary Oscillator, Verify the Calculated AFPLLO, AFVCO, AFVCODIV and derived Registers settings", async () => {
729
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','auxClock.auxClockSource','Primary Oscillator');
730
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','auxClock.auxClockSource','Primary Oscillator')).toBeTruthy();
731
+ const DriverData = await testAPI.getModuleData(driverModuleId);
732
+
733
+ expect(utils.getArgs(DriverData,"clock_16bit_config_interface","auxClockArg")?.auxClockSource).toBe("Primary Oscillator");
734
+
735
+ expect(utils.getReadOnlyValue(DriverData,"auxClock","apllo")).toBe(true);
736
+ expect(utils.getReadOnlyValue(DriverData,"auxClock","auxClockInputFrequency_Hz")).toBe(false);
737
+ expect(utils.getHiddenProperty(DriverData,"auxClock","requestedAuxClockOutputFrequency_Hz")).toBe("hidden");
738
+ expect(utils.getHiddenProperty(DriverData,"auxClock","afvcoDivider")).toBe("hidden");
739
+ expect(utils.getHiddenProperty(DriverData,"auxClock","afvco")).toBe("hidden");
740
+ expect(utils.getHiddenProperty(DriverData,"auxClock","afvcoDiv")).toBe("hidden");
741
+
742
+ if(device.match("dsPIC33C[A-Z]+[0-9]+M[^C]+[0-9]+$")){
743
+ const PLIBData = await testAPI.getModuleData(PLIBModuleId);
744
+ expect(utils.getSettingBit(PLIBData,"ACLKCON1","FRCSEL")).toBe("Primary Oscillator");
745
+ expect(utils.getSettingBit(PLIBData,"ACLKCON1","APLLEN")).toBe("disabled");
746
+ expect(utils.getRegisterValue(PLIBData,"ACLKCON1")).toBe("ACLKCON1 : 0x1");
747
+ expect(utils.getRegisterValue(PLIBData,"APLLFBD1")).toBe("APLLFBD1 : 0x96");
748
+ expect(utils.getRegisterValue(PLIBData,"APLLDIV1")).toBe("APLLDIV1 : 0x241");
749
+ }
750
+
751
+ },MAX_TESTCASE_TIMEOUT);
752
+ test("TID_3-4 For the Auxiliary clock source FRC Oscillator with PLL, Verify the Calculated AFPLLO, AFVCO, AFVCODIV and derived Registers settings", async () => {
753
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','auxClock.auxClockSource','FRC Oscillator with PLL');
754
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','auxClock.auxClockSource','FRC Oscillator with PLL')).toBeTruthy();
755
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','auxClock.auxClockInputFrequency_Hz','18000000');
756
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','auxClock.auxClockInputFrequency_Hz','18000000')).toBeTruthy();
757
+
758
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','auxClock.afvcoDivider','4');
759
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','auxClock.afvcoDivider','4')).toBeTruthy();
760
+ const DriverData = await testAPI.getModuleData(driverModuleId);
761
+
762
+ expect(utils.getArgs(DriverData,"clock_16bit_config_interface","auxClockArg")?.auxClockSource).toBe("FRC Oscillator with PLL");
763
+ expect(utils.getArgs(DriverData,"clock_16bit_config_interface","auxClockArg")?.auxClockInputFrequency_Hz).toBe("18000000");
764
+ expect(utils.getArgs(DriverData,"clock_16bit_config_interface","auxClockArg")?.afvcoDivider).toBe(4);
765
+
766
+ expect(utils.getReadOnlyValue(DriverData,"auxClock","auxClockInputFrequency_Hz")).toBe(false);
767
+ expect(utils.getReadOnlyValue(DriverData,"auxClock","apllo")).toBe(true);
768
+ expect(utils.getReadOnlyValue(DriverData,"auxClock","afvco")).toBe(true);
769
+ expect(utils.getReadOnlyValue(DriverData,"auxClock","afvcoDiv")).toBe(true);
770
+ expect(utils.getReadOnlyValue(DriverData,"auxClock","afvcoDivider")).toBe(false);
771
+
772
+ if(device.match("dsPIC33C[A-Z]+[0-9]+M[^C]+[0-9]+$")){
773
+ const PLIBData = await testAPI.getModuleData(PLIBModuleId);
774
+ expect(utils.getSettingBit(PLIBData,"ACLKCON1","FRCSEL")).toBe("FRC Oscillator");
775
+ expect(utils.getSettingBit(PLIBData,"ACLKCON1","APLLEN")).toBe("enabled");
776
+
777
+ expect(utils.getRegisterValue(PLIBData,"ACLKCON1")).toBe("ACLKCON1 : 0x8101");
778
+ expect(utils.getRegisterValue(PLIBData,"APLLFBD1")).toBe("APLLFBD1 : 0x30");
779
+ expect(utils.getRegisterValue(PLIBData,"APLLDIV1")).toBe("APLLDIV1 : 0x73");
780
+ }
781
+
782
+ },MAX_TESTCASE_TIMEOUT);
783
+ });
784
+ }
785
+ // Reference Clock
786
+ describe("TID_4 Reference Clock", () => {
787
+ test("TID_4-1 Reference Clock with defailt setting", async () => {
788
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','refClock.refClockEnable',false)).toBeTruthy();
789
+ const DriverData = await testAPI.getModuleData(driverModuleId);
790
+ expect(utils.getReadOnlyValue(DriverData,"refClock","refClockSource")).toBe(true);
791
+ expect(utils.getReadOnlyValue(DriverData,"refClock","requestedRefClockOutputFrequency_Hz")).toBe(true);
792
+ expect(utils.getReadOnlyValue(DriverData,"refClock","calculatedRefOutputFrequency_Hz")).toBe(true);
793
+ const PLIBData = await testAPI.getModuleData(PLIBModuleId);
794
+ expect(utils.getSettingBit(PLIBData,"REFOCONL","ROOUT")).toBe("disabled");
795
+ expect(utils.getSettingBit(PLIBData,"REFOCONL","ROEN")).toBe("disabled");
796
+ expect(utils.getSettingBit(PLIBData,"REFOCONH","RODIV")).toBe(0);
797
+ },MAX_TESTCASE_TIMEOUT);
798
+ test("TID_4-2 Enable reference clock source and check the UI behavior", async () => {
799
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','refClock.refClockEnable',true);
800
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','refClock.refClockEnable',true)).toBeTruthy();
801
+ const DriverData = await testAPI.getModuleData(driverModuleId);
802
+ expect(utils.getReadOnlyValue(DriverData,"refClock","refClockSource")).toBe(false);
803
+ expect(utils.getReadOnlyValue(DriverData,"refClock","requestedRefClockOutputFrequency_Hz")).toBe(false);
804
+ expect(utils.getReadOnlyValue(DriverData,"refClock","calculatedRefOutputFrequency_Hz")).toBe(true);
805
+ },MAX_TESTCASE_TIMEOUT);
806
+ test("TID_4-3 For the Reference clock source Primary Oscillator, Verify the Calculated REFO Frequency", async () => {
807
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','refClock.refClockSource','Primary Oscillator');
808
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','refClock.refClockSource','Primary Oscillator')).toBeTruthy();
809
+
810
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','refClock.requestedRefClockOutputFrequency_Hz','1000000');
811
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','refClock.requestedRefClockOutputFrequency_Hz','1000000')).toBeTruthy();
812
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','refClock.calculatedRefOutputFrequency_Hz','1.00 MHz')).toBeTruthy();
813
+
814
+ const DriverData = await testAPI.getModuleData(driverModuleId);
815
+ expect(utils.getArgs(DriverData,"clock_16bit_config_interface","refClockArg")?.refClockSource).toBe("Primary Oscillator");
816
+ expect(utils.getArgs(DriverData,"clock_16bit_config_interface","refClockArg")?.requestedRefClockOutputFrequency_Hz).toBe("1000000");
817
+ expect(utils.getReadOnlyValue(DriverData,"refClock","calculatedRefOutputFrequency_Hz")).toBe(true);
818
+
819
+ const PLIBData = await testAPI.getModuleData(PLIBModuleId);
820
+ expect(utils.getSettingBit(PLIBData,"REFOCONL","ROSEL")).toBe("Primary Oscillator");
821
+ expect(utils.getSettingBit(PLIBData,"REFOCONL","ROOUT")).toBe("enabled");
822
+ expect(utils.getSettingBit(PLIBData,"REFOCONL","ROEN")).toBe("enabled");
823
+
824
+ },MAX_TESTCASE_TIMEOUT);
825
+ test("TID_4-4 For the Reference clock source REFCLKI, Verify the Calculated REFO Frequency", async () => {
826
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','refClock.refClockSource','REFCLKI');
827
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','refClock.refClockSource','REFCLKI')).toBeTruthy();
828
+
829
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','refClock.requestedRefClockOutputFrequency_Hz','8000000');
830
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','refClock.requestedRefClockOutputFrequency_Hz','8000000')).toBeTruthy();
831
+
832
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','refClock.calculatedRefOutputFrequency_Hz','0.00 kHz')).toBeTruthy();
833
+
834
+ const DriverData = await testAPI.getModuleData(driverModuleId);
835
+ expect(utils.getArgs(DriverData,"clock_16bit_config_interface","refClockArg")?.refClockSource).toBe("REFCLKI");
836
+ expect(utils.getArgs(DriverData,"clock_16bit_config_interface","refClockArg")?.requestedRefClockOutputFrequency_Hz).toBe("8000000");
837
+ expect(utils.getReadOnlyValue(DriverData,"refClock","calculatedRefOutputFrequency_Hz")).toBe(true);
838
+
839
+ const PLIBData = await testAPI.getModuleData(PLIBModuleId);
840
+ expect(utils.getSettingBit(PLIBData,"REFOCONL","ROSEL")).toBe("REFCLKI")
841
+ expect(utils.getRegisterValue(PLIBData,"REFOCONL")).toBe("REFOCONL : 0x9007");
842
+ },MAX_TESTCASE_TIMEOUT);
843
+ test("TID_4-5 For the Reference clock source FVCO/4, Verify the Calculated REFO Frequency", async () => {
844
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','refClock.refClockSource','FVCO/4');
845
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','refClock.refClockSource','FVCO/4')).toBeTruthy();
846
+
847
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','refClock.requestedRefClockOutputFrequency_Hz','1000000');
848
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','refClock.requestedRefClockOutputFrequency_Hz','1000000')).toBeTruthy();
849
+
850
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','refClock.calculatedRefOutputFrequency_Hz','1.00 MHz')).toBeTruthy();
851
+
852
+ const DriverData = await testAPI.getModuleData(driverModuleId);
853
+ expect(utils.getArgs(DriverData,"clock_16bit_config_interface","refClockArg")?.refClockSource).toBe("FVCO/4");
854
+ expect(utils.getArgs(DriverData,"clock_16bit_config_interface","refClockArg")?.requestedRefClockOutputFrequency_Hz).toBe("1000000");
855
+ expect(utils.getReadOnlyValue(DriverData,"refClock","calculatedRefOutputFrequency_Hz")).toBe(true);
856
+
857
+ const PLIBData = await testAPI.getModuleData(PLIBModuleId);
858
+ expect(utils.getSettingBit(PLIBData,"REFOCONL","ROSEL")).toBe("FVCO/4");
859
+ expect(utils.getSettingBit(PLIBData,"REFOCONH","RODIV")).toBe(150);
860
+ expect(utils.getRegisterValue(PLIBData,"REFOCONL")).toBe("REFOCONL : 0x9006");
861
+ expect(utils.getRegisterValue(PLIBData,"REFOCONH")).toBe("REFOCONH : 0x96");
862
+ },MAX_TESTCASE_TIMEOUT);
863
+ //
864
+ test("TID_4-6 For the Reference clock source BFRC Oscillator, Verify the Calculated REFO Frequency", async () => {
865
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','refClock.refClockSource','BFRC Oscillator');
866
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','refClock.refClockSource','BFRC Oscillator')).toBeTruthy();
867
+
868
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','refClock.requestedRefClockOutputFrequency_Hz','8000000');
869
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','refClock.requestedRefClockOutputFrequency_Hz','8000000')).toBeTruthy();
870
+
871
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','refClock.calculatedRefOutputFrequency_Hz','8.00 MHz')).toBeTruthy();
872
+
873
+ const DriverData = await testAPI.getModuleData(driverModuleId);
874
+ expect(utils.getArgs(DriverData,"clock_16bit_config_interface","refClockArg")?.refClockSource).toBe("BFRC Oscillator");
875
+ expect(utils.getArgs(DriverData,"clock_16bit_config_interface","refClockArg")?.requestedRefClockOutputFrequency_Hz).toBe("8000000");
876
+ expect(utils.getReadOnlyValue(DriverData,"refClock","calculatedRefOutputFrequency_Hz")).toBe(true);
877
+
878
+ const PLIBData = await testAPI.getModuleData(PLIBModuleId);
879
+ expect(utils.getSettingBit(PLIBData,"REFOCONL","ROSEL")).toBe("BFRC Oscillator");
880
+ expect(utils.getSettingBit(PLIBData,"REFOCONH","RODIV")).toBe(0);
881
+ expect(utils.getRegisterValue(PLIBData,"REFOCONL")).toBe("REFOCONL : 0x9005");
882
+ expect(utils.getRegisterValue(PLIBData,"REFOCONH")).toBe("REFOCONH : 0x0");
883
+ },MAX_TESTCASE_TIMEOUT);
884
+ test("TID_4-7 For the Reference clock source FRC Oscillator, Verify the Calculated REFO Frequency", async () => {
885
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','refClock.refClockSource','FRC Oscillator');
886
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','refClock.refClockSource','FRC Oscillator')).toBeTruthy();
887
+
888
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','refClock.requestedRefClockOutputFrequency_Hz','1000000');
889
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','refClock.requestedRefClockOutputFrequency_Hz','1000000')).toBeTruthy();
890
+
891
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','refClock.calculatedRefOutputFrequency_Hz','1.00 MHz')).toBeTruthy();
892
+
893
+ const DriverData = await testAPI.getModuleData(driverModuleId);
894
+ expect(utils.getArgs(DriverData,"clock_16bit_config_interface","refClockArg")?.refClockSource).toBe("FRC Oscillator");
895
+ expect(utils.getArgs(DriverData,"clock_16bit_config_interface","refClockArg")?.requestedRefClockOutputFrequency_Hz).toBe("1000000");
896
+ expect(utils.getReadOnlyValue(DriverData,"refClock","calculatedRefOutputFrequency_Hz")).toBe(true);
897
+
898
+ const PLIBData = await testAPI.getModuleData(PLIBModuleId);
899
+ expect(utils.getSettingBit(PLIBData,"REFOCONL","ROSEL")).toBe("FRC Oscillator");
900
+ expect(utils.getSettingBit(PLIBData,"REFOCONH","RODIV")).toBe(4);
901
+ expect(utils.getRegisterValue(PLIBData,"REFOCONL")).toBe("REFOCONL : 0x9003");
902
+ expect(utils.getRegisterValue(PLIBData,"REFOCONH")).toBe("REFOCONH : 0x4");
903
+ },MAX_TESTCASE_TIMEOUT);
904
+ test("TID_4-8 For the Reference clock source FOSC/2, Verify the Calculated REFO Frequency", async () => {
905
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','refClock.refClockSource','FOSC/2');
906
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','refClock.refClockSource','FOSC/2')).toBeTruthy();
907
+
908
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','refClock.requestedRefClockOutputFrequency_Hz','100000');
909
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','refClock.requestedRefClockOutputFrequency_Hz','100000')).toBeTruthy();
910
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','refClock.calculatedRefOutputFrequency_Hz','100.00 kHz')).toBeTruthy();
911
+
912
+ const DriverData = await testAPI.getModuleData(driverModuleId);
913
+ expect(utils.getArgs(DriverData,"clock_16bit_config_interface","refClockArg")?.refClockSource).toBe("FOSC/2");
914
+ expect(utils.getArgs(DriverData,"clock_16bit_config_interface","refClockArg")?.requestedRefClockOutputFrequency_Hz).toBe("100000");
915
+ expect(utils.getReadOnlyValue(DriverData,"refClock","calculatedRefOutputFrequency_Hz")).toBe(true);
916
+
917
+ const PLIBData = await testAPI.getModuleData(PLIBModuleId);
918
+ expect(utils.getSettingBit(PLIBData,"REFOCONL","ROSEL")).toBe("FOSC/2");
919
+ expect(utils.getRegisterValue(PLIBData,"REFOCONL")).toBe("REFOCONL : 0x9001");
920
+ expect(utils.getRegisterValue(PLIBData,"REFOCONH")).toBe("REFOCONH : 0x14");
921
+ },MAX_TESTCASE_TIMEOUT);
922
+ if(device.match("dsPIC33C[A-Z]+[0-9]+M[^C]+[0-9]+")){
923
+ test("TID_4-9 For the Reference clock source LPRC Oscillator, Verify the Calculated REFO Frequency", async () => {
924
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','refClock.refClockSource','LPRC Oscillator');
925
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','refClock.refClockSource','LPRC Oscillator')).toBeTruthy();
926
+
927
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','refClock.requestedRefClockOutputFrequency_Hz','13000000');
928
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','refClock.requestedRefClockOutputFrequency_Hz','13000000')).toBeTruthy();
929
+
930
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','refClock.calculatedRefOutputFrequency_Hz','32.00 kHz')).toBeTruthy();
931
+
932
+ const DriverData = await testAPI.getModuleData(driverModuleId);
933
+ expect(utils.getArgs(DriverData,"clock_16bit_config_interface","refClockArg")?.refClockSource).toBe("LPRC Oscillator");
934
+ expect(utils.getReadOnlyValue(DriverData,"refClock","calculatedRefOutputFrequency_Hz")).toBe(true);
935
+
936
+ const PLIBData = await testAPI.getModuleData(PLIBModuleId);
937
+ expect(utils.getSettingBit(PLIBData,"REFOCONL","ROSEL")).toBe("LPRC Oscillator");
938
+ expect(utils.getSettingBit(PLIBData,"REFOCONH","RODIV")).toBe(0);
939
+ expect(utils.getRegisterValue(PLIBData,"REFOCONL")).toBe("REFOCONL : 0x9004");
940
+ expect(utils.getRegisterValue(PLIBData,"REFOCONH")).toBe("REFOCONH : 0x0");
941
+ },MAX_TESTCASE_TIMEOUT);
942
+ }
943
+ test("TID_4-9 For the Reference clock source FOSC, Verify the Calculated REFO Frequency", async () => {
944
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','refClock.refClockSource','FOSC');
945
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','refClock.refClockSource','FOSC')).toBeTruthy();
946
+
947
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','refClock.requestedRefClockOutputFrequency_Hz','120000000');
948
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','refClock.requestedRefClockOutputFrequency_Hz','120000000')).toBeTruthy();
949
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','refClock.calculatedRefOutputFrequency_Hz','8.00 MHz')).toBeTruthy();
950
+
951
+ const DriverData = await testAPI.getModuleData(driverModuleId);
952
+ expect(utils.getArgs(DriverData,"clock_16bit_config_interface","refClockArg")?.refClockSource).toBe("FOSC");
953
+ expect(utils.getArgs(DriverData,"clock_16bit_config_interface","refClockArg")?.requestedRefClockOutputFrequency_Hz).toBe("120000000");
954
+ expect(utils.getReadOnlyValue(DriverData,"refClock","calculatedRefOutputFrequency_Hz")).toBe(true);
955
+
956
+ const PLIBData = await testAPI.getModuleData(PLIBModuleId);
957
+ expect(utils.getSettingBit(PLIBData,"REFOCONL","ROSEL")).toBe("FOSC");
958
+ expect(utils.getSettingBit(PLIBData,"REFOCONH","RODIV")).toBe(0);
959
+ expect(utils.getRegisterValue(PLIBData,"REFOCONL")).toBe("REFOCONL : 0x9000");
960
+ expect(utils.getRegisterValue(PLIBData,"REFOCONH")).toBe("REFOCONH : 0x0");
961
+ },MAX_TESTCASE_TIMEOUT);
962
+ });
963
+ describe("TID_5 CAN FD Clock for different clock input source", () => {
964
+ // dsPIC33CK64MP105,dsPIC33CDV256MP506,dsPIC33CK512MPT608,dsPIC33CDVC256MP506,dsPIC33CK256MP508,dsPIC33CK512MP608,dsPIC33CK1024MP710,dsPIC33CH512MP508,dsPIC33CH128MP508
965
+ if(device.match("dsPIC33C[A-Z]+[0-9]{3,4}M[^C]+[0-9]{3}$")){
966
+ test("TID_5-1 CAN FD Clock with default setting", async () => {
967
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','canfdClock.canfdClockSource',"No Clock Selected")).toBeTruthy();
968
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','canfdClock.canfdClkSrcFreq',"0.00 kHz")).toBeTruthy();
969
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','canfdClock.requestedCanfdClockOutputFrequency_Hz',"0.00 kHz")).toBeTruthy();
970
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','canfdClock.calculatedCanfdOutputFrequency_Hz',"0.00 kHz")).toBeTruthy();
971
+ const DriverData = await testAPI.getModuleData(driverModuleId);
972
+ expect(utils.getReadOnlyValue(DriverData,"canfdClock","canfdClkSrcFreq")).toBe(true);
973
+ expect(utils.getReadOnlyValue(DriverData,"canfdClock","requestedCanfdClockOutputFrequency_Hz")).toBe(true);
974
+ expect(utils.getReadOnlyValue(DriverData,"canfdClock","calculatedCanfdOutputFrequency_Hz")).toBe(true);
975
+ },MAX_TESTCASE_TIMEOUT);
976
+ test("TID_5-2 CAN FD Clock source FVCO, Verify the Clock Source Frequency, Requested FCAN Frequency and Calculated FCAN Frequency", async () => {
977
+ const driverInfo = {
978
+ name: "@mchp-mcc/can-fd-driver",
979
+ version: ">=1.0.0",
980
+ };
981
+
982
+ const interfaceInfo ={
983
+ name: "can-fd-interface",
984
+ version: "1.1.1"
985
+ };
986
+ let moduleIds = await testAPI.getModuleIdsforInterface(driverInfo);
987
+ expect(moduleIds.length).toBeGreaterThan(0);
988
+ let canmoduleId=moduleIds[0];
989
+ expect(await testAPI.loadModule(canmoduleId)).toBe(true);
990
+ const options = await testAPI.getOptionsForImportInterfaceId(canmoduleId, interfaceInfo);
991
+ if (options.length > 0) {
992
+ expect(options.length).toBeGreaterThan(0);
993
+ expect(await testAPI.setImportInterfaceIdByOption(canmoduleId, interfaceInfo, options[0])).toBeTruthy();
994
+ }
995
+ expect(await testAPI.loadModule(canmoduleId, MAX_CMD_TIMEOUT)).toBe(true);
996
+ await testAPI.setAutoModuleProperty(canmoduleId, 'main', 'clockSettings.requestedSpeed', '40.00 MHz');
997
+ expect (await testAPI.assertAutoModuleProperty(canmoduleId, 'main', 'clockSettings.requestedSpeed', '40.00 MHz')).toBeTruthy();
998
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','canfdClock.canfdClockSource',"FVCO");
999
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','canfdClock.canfdClockSource',"FVCO")).toBeTruthy();
1000
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','canfdClock.canfdClkSrcFreq',"1200.00 MHz")).toBeTruthy();
1001
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','canfdClock.requestedCanfdClockOutputFrequency_Hz',"40.00 MHz")).toBeTruthy();
1002
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','canfdClock.calculatedCanfdOutputFrequency_Hz',"40.00 MHz")).toBeTruthy();
1003
+ const DriverData = await testAPI.getModuleData(driverModuleId);
1004
+ expect(utils.getArgs(DriverData,"clock_16bit_config_interface","canfdClockArg")?.canfdClockSource).toBe("FVCO");
1005
+ const PLIBData = await testAPI.getModuleData(PLIBModuleId);
1006
+ expect(utils.getRegisterValue(PLIBData,"CANCLKCON")).toBe("CANCLKCON : 0x811d");
1007
+ expect(utils.getSettingBit(PLIBData,"CANCLKCON","CANCLKSEL")).toBe("FVCO");
1008
+ expect(utils.getReadOnlyValue(DriverData,"canfdClock","canfdClkSrcFreq")).toBe(true);
1009
+ expect(utils.getReadOnlyValue(DriverData,"canfdClock","requestedCanfdClockOutputFrequency_Hz")).toBe(true);
1010
+ expect(utils.getReadOnlyValue(DriverData,"canfdClock","calculatedCanfdOutputFrequency_Hz")).toBe(true);
1011
+ },MAX_TESTCASE_TIMEOUT);
1012
+ test("TID_5-3 CAN FD Clock source FPLLO, Verify the Clock Source Frequency, Requested FCAN Frequency and Calculated FCAN Frequency", async () => {
1013
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','canfdClock.canfdClockSource',"FPLLO");
1014
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','canfdClock.canfdClockSource',"FPLLO")).toBeTruthy();
1015
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','canfdClock.canfdClkSrcFreq',"1200.00 MHz")).toBeTruthy();
1016
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','canfdClock.requestedCanfdClockOutputFrequency_Hz',"40.00 MHz")).toBeTruthy();
1017
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','canfdClock.calculatedCanfdOutputFrequency_Hz',"40.00 MHz")).toBeTruthy();
1018
+ const DriverData = await testAPI.getModuleData(driverModuleId);
1019
+ expect(utils.getArgs(DriverData,"clock_16bit_config_interface","canfdClockArg")?.canfdClockSource).toBe("FPLLO");
1020
+ const PLIBData = await testAPI.getModuleData(PLIBModuleId);
1021
+ expect(utils.getRegisterValue(PLIBData,"CANCLKCON")).toBe("CANCLKCON : 0x821d");
1022
+ expect(utils.getSettingBit(PLIBData,"CANCLKCON","CANCLKSEL")).toBe("FPLLO");
1023
+ expect(utils.getReadOnlyValue(DriverData,"canfdClock","canfdClkSrcFreq")).toBe(true);
1024
+ expect(utils.getReadOnlyValue(DriverData,"canfdClock","requestedCanfdClockOutputFrequency_Hz")).toBe(true);
1025
+ expect(utils.getReadOnlyValue(DriverData,"canfdClock","calculatedCanfdOutputFrequency_Hz")).toBe(true);
1026
+ },MAX_TESTCASE_TIMEOUT);
1027
+ test("TID_5-4 CAN FD Clock source FVCO/2, Verify the Clock Source Frequency, Requested FCAN Frequency and Calculated FCAN Frequency", async () => {
1028
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','canfdClock.canfdClockSource',"FVCO/2");
1029
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','canfdClock.canfdClockSource',"FVCO/2")).toBeTruthy();
1030
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','canfdClock.canfdClkSrcFreq',"600.00 MHz")).toBeTruthy();
1031
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','canfdClock.requestedCanfdClockOutputFrequency_Hz',"40.00 MHz")).toBeTruthy();
1032
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','canfdClock.calculatedCanfdOutputFrequency_Hz',"40.00 MHz")).toBeTruthy();
1033
+ const DriverData = await testAPI.getModuleData(driverModuleId);
1034
+ expect(utils.getArgs(DriverData,"clock_16bit_config_interface","canfdClockArg")?.canfdClockSource).toBe("FVCO/2");
1035
+ const PLIBData = await testAPI.getModuleData(PLIBModuleId);
1036
+ expect(utils.getRegisterValue(PLIBData,"CANCLKCON")).toBe("CANCLKCON : 0x830e");
1037
+ expect(utils.getSettingBit(PLIBData,"CANCLKCON","CANCLKSEL")).toBe("FVCO/2");
1038
+ expect(utils.getReadOnlyValue(DriverData,"canfdClock","canfdClkSrcFreq")).toBe(true);
1039
+ expect(utils.getReadOnlyValue(DriverData,"canfdClock","requestedCanfdClockOutputFrequency_Hz")).toBe(true);
1040
+ expect(utils.getReadOnlyValue(DriverData,"canfdClock","calculatedCanfdOutputFrequency_Hz")).toBe(true);
1041
+ },MAX_TESTCASE_TIMEOUT);
1042
+ test("TID_5-5 the CAN FD Clock source FVCO/3, Verify the Clock Source Frequency, Requested FCAN Frequency and Calculated FCAN Frequency", async () => {
1043
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','canfdClock.canfdClockSource',"FVCO/3");
1044
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','canfdClock.canfdClockSource',"FVCO/3")).toBeTruthy();
1045
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','canfdClock.canfdClkSrcFreq',"400.00 MHz")).toBeTruthy();
1046
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','canfdClock.requestedCanfdClockOutputFrequency_Hz',"40.00 MHz")).toBeTruthy();
1047
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','canfdClock.calculatedCanfdOutputFrequency_Hz',"40.00 MHz")).toBeTruthy();
1048
+ const DriverData = await testAPI.getModuleData(driverModuleId);
1049
+ expect(utils.getArgs(DriverData,"clock_16bit_config_interface","canfdClockArg")?.canfdClockSource).toBe("FVCO/3");
1050
+ const PLIBData = await testAPI.getModuleData(PLIBModuleId);
1051
+ expect(utils.getRegisterValue(PLIBData,"CANCLKCON")).toBe("CANCLKCON : 0x8409");
1052
+ expect(utils.getSettingBit(PLIBData,"CANCLKCON","CANCLKSEL")).toBe("FVCO/3");
1053
+ expect(utils.getReadOnlyValue(DriverData,"canfdClock","canfdClkSrcFreq")).toBe(true);
1054
+ expect(utils.getReadOnlyValue(DriverData,"canfdClock","requestedCanfdClockOutputFrequency_Hz")).toBe(true);
1055
+ expect(utils.getReadOnlyValue(DriverData,"canfdClock","calculatedCanfdOutputFrequency_Hz")).toBe(true);
1056
+ },MAX_TESTCASE_TIMEOUT);
1057
+ test("TID_5-6 the CAN FD Clock source FVCO/4, Verify the Clock Source Frequency, Requested FCAN Frequency and Calculated FCAN Frequency", async () => {
1058
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','canfdClock.canfdClockSource',"FVCO/4");
1059
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','canfdClock.canfdClockSource',"FVCO/4")).toBeTruthy();
1060
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','canfdClock.canfdClkSrcFreq',"300.00 MHz")).toBeTruthy();
1061
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','canfdClock.requestedCanfdClockOutputFrequency_Hz',"40.00 MHz")).toBeTruthy();
1062
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','canfdClock.calculatedCanfdOutputFrequency_Hz',"37.50 MHz")).toBeTruthy();
1063
+ const DriverData = await testAPI.getModuleData(driverModuleId);
1064
+ expect(utils.getArgs(DriverData,"clock_16bit_config_interface","canfdClockArg")?.canfdClockSource).toBe("FVCO/4");
1065
+ const PLIBData = await testAPI.getModuleData(PLIBModuleId);
1066
+ expect(utils.getRegisterValue(PLIBData,"CANCLKCON")).toBe("CANCLKCON : 0x8507");
1067
+ expect(utils.getSettingBit(PLIBData,"CANCLKCON","CANCLKSEL")).toBe("FVCO/4");
1068
+ expect(utils.getReadOnlyValue(DriverData,"canfdClock","canfdClkSrcFreq")).toBe(true);
1069
+ expect(utils.getReadOnlyValue(DriverData,"canfdClock","requestedCanfdClockOutputFrequency_Hz")).toBe(true);
1070
+ expect(utils.getReadOnlyValue(DriverData,"canfdClock","calculatedCanfdOutputFrequency_Hz")).toBe(true);
1071
+ },MAX_TESTCASE_TIMEOUT);
1072
+ }
1073
+ // dsPIC33CK64MP105,dsPIC33CDV256MP506,dsPIC33CK512MPT608,dsPIC33CDVC256MP506,dsPIC33CK256MP508,dsPIC33CK512MP608,dsPIC33CK1024MP710
1074
+ if(device.match("dsPIC33C[^H]+[0-9]{3,4}M[^C]+[0-9]+$")){
1075
+ test("TID_5-7 CAN FD Clock source AFPLLO, Verify the Clock Source Frequency, Requested FCAN Frequency and Calculated FCAN Frequency", async () => {
1076
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','canfdClock.canfdClockSource',"AFPLLO");
1077
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','canfdClock.canfdClockSource',"AFPLLO")).toBeTruthy();
1078
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','canfdClock.canfdClkSrcFreq',"18.29 MHz")).toBeTruthy();
1079
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','canfdClock.requestedCanfdClockOutputFrequency_Hz',"40.00 MHz")).toBeTruthy();
1080
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','canfdClock.calculatedCanfdOutputFrequency_Hz',"18.29 MHz")).toBeTruthy();
1081
+ const DriverData = await testAPI.getModuleData(driverModuleId);
1082
+ expect(utils.getArgs(DriverData,"clock_16bit_config_interface","canfdClockArg")?.canfdClockSource).toBe("AFPLLO");
1083
+ const PLIBData = await testAPI.getModuleData(PLIBModuleId);
1084
+ expect(utils.getRegisterValue(PLIBData,"CANCLKCON")).toBe("CANCLKCON : 0x8600");
1085
+ expect(utils.getSettingBit(PLIBData,"CANCLKCON","CANCLKSEL")).toBe("AFPLLO");
1086
+ expect(utils.getReadOnlyValue(DriverData,"canfdClock","canfdClkSrcFreq")).toBe(true);
1087
+ expect(utils.getReadOnlyValue(DriverData,"canfdClock","requestedCanfdClockOutputFrequency_Hz")).toBe(true);
1088
+ expect(utils.getReadOnlyValue(DriverData,"canfdClock","calculatedCanfdOutputFrequency_Hz")).toBe(true);
1089
+ },MAX_TESTCASE_TIMEOUT);
1090
+
1091
+ test("TID_5-8 CAN FD Clock source AFVCO, Verify the Clock Source Frequency, Requested FCAN Frequency and Calculated FCAN Frequency", async () => {
1092
+
1093
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','canfdClock.canfdClockSource',"AFVCO");
1094
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','canfdClock.canfdClockSource',"AFVCO")).toBeTruthy();
1095
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','canfdClock.canfdClkSrcFreq',"384.00 MHz")).toBeTruthy();
1096
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','canfdClock.requestedCanfdClockOutputFrequency_Hz',"40.00 MHz")).toBeTruthy();
1097
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','canfdClock.calculatedCanfdOutputFrequency_Hz',"38.40 MHz")).toBeTruthy();
1098
+ const DriverData = await testAPI.getModuleData(driverModuleId);
1099
+ expect(utils.getArgs(DriverData,"clock_16bit_config_interface","canfdClockArg")?.canfdClockSource).toBe("AFVCO");
1100
+ const PLIBData = await testAPI.getModuleData(PLIBModuleId);
1101
+ expect(utils.getRegisterValue(PLIBData,"CANCLKCON")).toBe("CANCLKCON : 0x8709");
1102
+ expect(utils.getSettingBit(PLIBData,"CANCLKCON","CANCLKSEL")).toBe("AFVCO");
1103
+ expect(utils.getReadOnlyValue(DriverData,"canfdClock","canfdClkSrcFreq")).toBe(true);
1104
+ expect(utils.getReadOnlyValue(DriverData,"canfdClock","requestedCanfdClockOutputFrequency_Hz")).toBe(true);
1105
+ expect(utils.getReadOnlyValue(DriverData,"canfdClock","calculatedCanfdOutputFrequency_Hz")).toBe(true);
1106
+ },MAX_TESTCASE_TIMEOUT);
1107
+
1108
+ test("TID_5-9 CAN FD Clock source AFVCO/2, Verify the Clock Source Frequency, Requested FCAN Frequency and Calculated FCAN Frequency", async () => {
1109
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','canfdClock.canfdClockSource',"AFVCO/2");
1110
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','canfdClock.canfdClockSource',"AFVCO/2")).toBeTruthy();
1111
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','canfdClock.canfdClkSrcFreq',"192.00 MHz")).toBeTruthy();
1112
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','canfdClock.requestedCanfdClockOutputFrequency_Hz',"40.00 MHz")).toBeTruthy();
1113
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','canfdClock.calculatedCanfdOutputFrequency_Hz',"38.40 MHz")).toBeTruthy();
1114
+ const DriverData = await testAPI.getModuleData(driverModuleId);
1115
+ expect(utils.getArgs(DriverData,"clock_16bit_config_interface","canfdClockArg")?.canfdClockSource).toBe("AFVCO/2");
1116
+ const PLIBData = await testAPI.getModuleData(PLIBModuleId);
1117
+ expect(utils.getRegisterValue(PLIBData,"CANCLKCON")).toBe("CANCLKCON : 0x8804");
1118
+ expect(utils.getSettingBit(PLIBData,"CANCLKCON","CANCLKSEL")).toBe("AFVCO/2");
1119
+ expect(utils.getReadOnlyValue(DriverData,"canfdClock","canfdClkSrcFreq")).toBe(true);
1120
+ expect(utils.getReadOnlyValue(DriverData,"canfdClock","requestedCanfdClockOutputFrequency_Hz")).toBe(true);
1121
+ expect(utils.getReadOnlyValue(DriverData,"canfdClock","calculatedCanfdOutputFrequency_Hz")).toBe(true);
1122
+ },MAX_TESTCASE_TIMEOUT);
1123
+
1124
+ test("TID_5-10 CAN FD Clock source AFVCO/3, Verify the Clock Source Frequency, Requested FCAN Frequency and Calculated FCAN Frequency", async () => {
1125
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','canfdClock.canfdClockSource',"AFVCO/3");
1126
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','canfdClock.canfdClockSource',"AFVCO/3")).toBeTruthy();
1127
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','canfdClock.canfdClkSrcFreq',"128.00 MHz")).toBeTruthy();
1128
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','canfdClock.requestedCanfdClockOutputFrequency_Hz',"40.00 MHz")).toBeTruthy();
1129
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','canfdClock.calculatedCanfdOutputFrequency_Hz',"42.67 MHz")).toBeTruthy();
1130
+ const DriverData = await testAPI.getModuleData(driverModuleId);
1131
+ expect(utils.getArgs(DriverData,"clock_16bit_config_interface","canfdClockArg")?.canfdClockSource).toBe("AFVCO/3");
1132
+ const PLIBData = await testAPI.getModuleData(PLIBModuleId);
1133
+ expect(utils.getRegisterValue(PLIBData,"CANCLKCON")).toBe("CANCLKCON : 0x8902");
1134
+ expect(utils.getSettingBit(PLIBData,"CANCLKCON","CANCLKSEL")).toBe("AFVCO/3");
1135
+ expect(utils.getReadOnlyValue(DriverData,"canfdClock","canfdClkSrcFreq")).toBe(true);
1136
+ expect(utils.getReadOnlyValue(DriverData,"canfdClock","requestedCanfdClockOutputFrequency_Hz")).toBe(true);
1137
+ expect(utils.getReadOnlyValue(DriverData,"canfdClock","calculatedCanfdOutputFrequency_Hz")).toBe(true);
1138
+ },MAX_TESTCASE_TIMEOUT);
1139
+
1140
+ test("TID_5-11 CAN FD Clock source AFVCO/4, Verify the Clock Source Frequency, Requested FCAN Frequency and Calculated FCAN Frequency", async () => {
1141
+ await testAPI.setAutoModuleProperty(driverModuleId, 'main','canfdClock.canfdClockSource',"AFVCO/4");
1142
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','canfdClock.canfdClockSource',"AFVCO/4")).toBeTruthy();
1143
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','canfdClock.canfdClkSrcFreq',"96.00 MHz")).toBeTruthy();
1144
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','canfdClock.requestedCanfdClockOutputFrequency_Hz',"40.00 MHz")).toBeTruthy();
1145
+ expect(await testAPI.assertAutoModuleProperty(driverModuleId, 'main','canfdClock.calculatedCanfdOutputFrequency_Hz',"48.00 MHz")).toBeTruthy();
1146
+ const DriverData = await testAPI.getModuleData(driverModuleId);
1147
+ expect(utils.getArgs(DriverData,"clock_16bit_config_interface","canfdClockArg")?.canfdClockSource).toBe("AFVCO/4");
1148
+ const PLIBData = await testAPI.getModuleData(PLIBModuleId);
1149
+ expect(utils.getRegisterValue(PLIBData,"CANCLKCON")).toBe("CANCLKCON : 0x8a01");
1150
+ expect(utils.getSettingBit(PLIBData,"CANCLKCON","CANCLKSEL")).toBe("AFVCO/4");
1151
+ expect(utils.getReadOnlyValue(DriverData,"canfdClock","canfdClkSrcFreq")).toBe(true);
1152
+ expect(utils.getReadOnlyValue(DriverData,"canfdClock","requestedCanfdClockOutputFrequency_Hz")).toBe(true);
1153
+ expect(utils.getReadOnlyValue(DriverData,"canfdClock","calculatedCanfdOutputFrequency_Hz")).toBe(true);
1154
+ },MAX_TESTCASE_TIMEOUT);
1155
+ }
1156
+ });
1157
+ describe("TID_6 Generate code and save project", () => {
1158
+ test("TID_6-1 to Generate code and save project with configurations", async () => {
1159
+ expect(await testAPI.generateCode()).toBe(true);
1160
+ const projectName = `${device}.clock.X`;
1161
+ expect(await testAPI.saveProjectAs(projectName, true)).toBe(true);
1162
+ },MAX_TESTCASE_TIMEOUT);
1163
+ });
1164
+ });
1165
+ });