• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2022 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #include <cstring>
17 #include <sys/utsname.h>
18 
19 #include "gtest/gtest.h"
20 
21 #include "qos_interface.h"
22 
23 namespace OHOS {
24 namespace FFRT_TEST {
25 using namespace testing;
26 using namespace testing::ext;
27 using namespace OHOS::FFRT_TEST;
28 using namespace std;
29 
30 class QosInterfaceTest : public testing::Test {
31 public:
32     static void SetUpTestCase();
33     static void TearDownTestCase();
34     void SetUp();
35     void TearDown();
36     bool IsLinuxOs();
37 };
38 
IsLinuxOs()39 bool QosInterfaceTest::IsLinuxOs()
40 {
41     struct utsname nameData;
42     uname(&nameData);
43     int cmpNum = 5;
44     return strncmp(nameData.sysname, "Linux", cmpNum) == 0 ? true : false;
45 }
46 
SetUpTestCase()47 void QosInterfaceTest::SetUpTestCase()
48 {
49 }
50 
TearDownTestCase()51 void QosInterfaceTest::TearDownTestCase()
52 {
53 }
54 
SetUp()55 void QosInterfaceTest::SetUp()
56 {
57 }
58 
TearDown()59 void QosInterfaceTest::TearDown()
60 {
61 }
62 
63 extern "C" {
64 /**
65  * @tc.name: EnableRtgTest
66  * @tc.desc: Test whether the OnRemoteRequest interface are normal.
67  * @tc.type: FUNC
68  */
69 HWTEST_F(QosInterfaceTest, EnableRtgTest, TestSize.Level1)
70 {
71     bool flag = true;
72     int val = EnableRtg(flag);
73     EXPECT_EQ(val, 0);
74 }
75 
76 /**
77  * @tc.name: QosApplyTest
78  * @tc.desc: Test whether the QosApply interface are normal.
79  * @tc.type: FUNC
80  */
81 HWTEST_F(QosInterfaceTest, QosApplyTest1, TestSize.Level1)
82 {
83     unsigned int level = 1;
84     int val = -1;
85     val = QosApply(level);
86 #if defined(ARM64_TEST) && ARM64_TEST
87     EXPECT_EQ(val, 0);
88 #else
89     (void)val;
90 #endif
91 }
92 
93 /**
94  * @tc.name: QosApplyFuncTest
95  * @tc.desc: Test whether the QosApply interface are normal.
96  * @tc.type: FUNC
97  */
98 HWTEST_F(QosInterfaceTest, QosApplyFuncTest0, TestSize.Level0)
99 {
100     unsigned int level = 0;
101     int val = QosApply(level);
102     EXPECT_EQ(val, 0);
103 }
104 
105 HWTEST_F(QosInterfaceTest, QosApplyFuncTest1, TestSize.Level0)
106 {
107     unsigned int level = 1;
108     int val = QosApply(level);
109     EXPECT_EQ(val, 0);
110 }
111 
112 HWTEST_F(QosInterfaceTest, QosApplyFuncTest2, TestSize.Level0)
113 {
114     unsigned int level = 2;
115     int val = QosApply(level);
116     EXPECT_EQ(val, 0);
117 }
118 
119 HWTEST_F(QosInterfaceTest, QosApplyFuncTest3, TestSize.Level0)
120 {
121     unsigned int level = 3;
122     int val = QosApply(level);
123     EXPECT_EQ(val, 0);
124 }
125 
126 HWTEST_F(QosInterfaceTest, QosApplyFuncTest4, TestSize.Level0)
127 {
128     unsigned int level = 4;
129     int val = QosApply(level);
130     EXPECT_EQ(val, 0);
131 }
132 
133 HWTEST_F(QosInterfaceTest, QosApplyFuncTest5, TestSize.Level0)
134 {
135     unsigned int level = 5;
136     int val = QosApply(level);
137     EXPECT_EQ(val, 0);
138 }
139 
140 HWTEST_F(QosInterfaceTest, QosApplyFuncTest6, TestSize.Level1)
141 {
142     unsigned int level = 6;
143     int val = QosApply(level);
144     EXPECT_EQ(val, 0);
145 }
146 
147 
148 HWTEST_F(QosInterfaceTest, QosApplyFuncTestExt, TestSize.Level1)
149 {
150     unsigned int level = 7;
151     int val = QosApply(level);
152     EXPECT_EQ(val, -1);
153 
154     level = 1024;
155     val = QosApply(level);
156     EXPECT_EQ(val, -1);
157 
158     level = -1;
159     val = QosApply(level);
160     EXPECT_EQ(val, -1);
161 }
162 
163 /**
164  * @tc.name: QosApplyForOtherTest
165  * @tc.desc: Test whether the QosApplyForOther interface are normal.
166  * @tc.type: FUNC
167  */
168 HWTEST_F(QosInterfaceTest, QosApplyForOtherTest1, TestSize.Level1)
169 {
170     unsigned int level = 1;
171     int tid = gettid();
172     int val = -1;
173     val = QosApplyForOther(level, tid);
174 #if defined(ARM64_TEST) && ARM64_TEST
175     EXPECT_EQ(val, 0);
176 #else
177     (void)val;
178 #endif
179 }
180 
181 /**
182  * @tc.name: QosApplyForOtherFuncTest
183  * @tc.desc: Test whether the QosApplyForOther interface are normal.
184  * @tc.type: FUNC
185  */
186 HWTEST_F(QosInterfaceTest, QosApplyForOtherFuncTest0, TestSize.Level0)
187 {
188     unsigned int level = 0;
189     int tid = gettid();
190     int val = QosApplyForOther(level, tid);
191     EXPECT_EQ(val, 0);
192 }
193 
194 HWTEST_F(QosInterfaceTest, QosApplyForOtherFuncTest1, TestSize.Level0)
195 {
196     unsigned int level = 1;
197     int tid = gettid();
198     int val = QosApplyForOther(level, tid);
199     EXPECT_EQ(val, 0);
200 }
201 
202 HWTEST_F(QosInterfaceTest, QosApplyForOtherFuncTest2, TestSize.Level0)
203 {
204     unsigned int level = 2;
205     int tid = gettid();
206     int val = QosApplyForOther(level, tid);
207     EXPECT_EQ(val, 0);
208 }
209 
210 HWTEST_F(QosInterfaceTest, QosApplyForOtherFuncTest3, TestSize.Level0)
211 {
212     unsigned int level = 3;
213     int tid = gettid();
214     int val = QosApplyForOther(level, tid);
215     EXPECT_EQ(val, 0);
216 }
217 
218 HWTEST_F(QosInterfaceTest, QosApplyForOtherFuncTest4, TestSize.Level0)
219 {
220     unsigned int level = 4;
221     int tid = gettid();
222     int val = QosApplyForOther(level, tid);
223     EXPECT_EQ(val, 0);
224 }
225 
226 HWTEST_F(QosInterfaceTest, QosApplyForOtherFuncTest5, TestSize.Level0)
227 {
228     unsigned int level = 5;
229     int tid = gettid();
230     int val = QosApplyForOther(level, tid);
231     EXPECT_EQ(val, 0);
232 }
233 
234 HWTEST_F(QosInterfaceTest, QosApplyForOtherFuncTest6, TestSize.Level1)
235 {
236     unsigned int level = 6;
237     int tid = gettid();
238     int val = QosApplyForOther(level, tid);
239     EXPECT_EQ(val, 0);
240 }
241 
242 HWTEST_F(QosInterfaceTest, QosApplyForOtherFuncTestExt, TestSize.Level1)
243 {
244     unsigned int level = 7;
245     int tid = gettid();
246     int val = QosApplyForOther(level, tid);
247     EXPECT_EQ(val, -1);
248 
249     level = 1024;
250     val = QosApplyForOther(level, tid);
251     EXPECT_EQ(val, -1);
252 
253     level = -1;
254     val = QosApplyForOther(level, tid);
255     EXPECT_EQ(val, -1);
256 }
257 
258 /**
259  * @tc.name: QosLeaveTest
260  * @tc.desc: Test whether the QosLeave interface are normal.
261  * @tc.type: FUNC
262  */
263 HWTEST_F(QosInterfaceTest, QosLeaveTest, TestSize.Level1)
264 {
265     int val = -1;
266     val = QosLeave();
267 #if defined(ARM64_TEST) && ARM64_TEST
268     EXPECT_EQ(val, 0);
269 #else
270     (void)val;
271 #endif
272 }
273 
274 /**
275  * @tc.name: QosLeaveFuncTest
276  * @tc.desc: Test whether the QosLeave interface are normal.
277  * @tc.type: FUNC
278  */
279 HWTEST_F(QosInterfaceTest, QosLeaveFuncTestExt0, TestSize.Level0)
280 {
281     int level = 0;
282     int val = QosApply(level);
283     EXPECT_EQ(val, 0);
284     val = QosLeave();
285     EXPECT_EQ(val, 0);
286 }
287 
288 HWTEST_F(QosInterfaceTest, QosLeaveFuncTestExt1, TestSize.Level0)
289 {
290     int level = 1;
291     int val = QosApply(level);
292     EXPECT_EQ(val, 0);
293     val = QosLeave();
294     EXPECT_EQ(val, 0);
295 }
296 
297 HWTEST_F(QosInterfaceTest, QosLeaveFuncTestExt2, TestSize.Level0)
298 {
299     int level = 2;
300     int val = QosApply(level);
301     EXPECT_EQ(val, 0);
302     val = QosLeave();
303     EXPECT_EQ(val, 0);
304 }
305 
306 HWTEST_F(QosInterfaceTest, QosLeaveFuncTestExt3, TestSize.Level0)
307 {
308     int level = 3;
309     int val = QosApply(level);
310     EXPECT_EQ(val, 0);
311     val = QosLeave();
312     EXPECT_EQ(val, 0);
313 }
314 
315 HWTEST_F(QosInterfaceTest, QosLeaveFuncTestExt4, TestSize.Level0)
316 {
317     int level = 4;
318     int val = QosApply(level);
319     EXPECT_EQ(val, 0);
320     val = QosLeave();
321     EXPECT_EQ(val, 0);
322 }
323 
324 HWTEST_F(QosInterfaceTest, QosLeaveFuncTestExt5, TestSize.Level0)
325 {
326     int level = 5;
327     int val = QosApply(level);
328     EXPECT_EQ(val, 0);
329     val = QosLeave();
330     EXPECT_EQ(val, 0);
331 }
332 
333 HWTEST_F(QosInterfaceTest, QosLeaveFuncTestExt6, TestSize.Level1)
334 {
335     int level = 6;
336     int val = QosApply(level);
337     EXPECT_EQ(val, 0);
338     val = QosLeave();
339     EXPECT_EQ(val, 0);
340 }
341 
342 HWTEST_F(QosInterfaceTest, QosLeaveFuncTestExt, TestSize.Level1)
343 {
344     int val = -1;
345     val = QosApply(7);
346     EXPECT_EQ(val, -1);
347     val = QosLeave();
348     EXPECT_EQ(val, -1);
349 
350     val = QosApply(1024);
351     EXPECT_EQ(val, -1);
352     val = QosLeave();
353     EXPECT_EQ(val, -1);
354 
355     val = QosApply(-1);
356     EXPECT_EQ(val, -1);
357     val = QosLeave();
358     EXPECT_EQ(val, -1);
359 }
360 
361 /**
362  * @tc.name: QosLeaveForOtherTest
363  * @tc.desc: Test whether the QosLeaveForOther interface are normal.
364  * @tc.type: FUNC
365  */
366 HWTEST_F(QosInterfaceTest, QosLeaveForOtherTest, TestSize.Level1)
367 {
368     int val = -1;
369     int tid = gettid();
370     int level = 1;
371     val = QosApplyForOther(level, tid);
372     val = QosLeaveForOther(tid);
373 #if defined(ARM64_TEST) && ARM64_TEST
374     EXPECT_EQ(val, 0);
375 #else
376     (void)val;
377 #endif
378 }
379 
380 /**
381  * @tc.name: QosLeaveForOtherFuncTest
382  * @tc.desc: Test whether the QosLeaveForOther interface are normal.
383  * @tc.type: FUNC
384  */
385 HWTEST_F(QosInterfaceTest, QosLeaveForOtherFuncTest0, TestSize.Level0)
386 {
387     int level = 0;
388     int tid = gettid();
389     int val = QosApplyForOther(level, tid);
390     EXPECT_EQ(val, 0);
391     val = QosLeaveForOther(tid);
392     EXPECT_EQ(val, 0);
393 }
394 
395 HWTEST_F(QosInterfaceTest, QosLeaveForOtherFuncTest1, TestSize.Level0)
396 {
397     int level = 1;
398     int tid = gettid();
399     int val = QosApplyForOther(level, tid);
400     EXPECT_EQ(val, 0);
401     val = QosLeaveForOther(tid);
402     EXPECT_EQ(val, 0);
403 }
404 
405 HWTEST_F(QosInterfaceTest, QosLeaveForOtherFuncTest2, TestSize.Level0)
406 {
407     int level = 2;
408     int tid = gettid();
409     int val = QosApplyForOther(level, tid);
410     EXPECT_EQ(val, 0);
411     val = QosLeaveForOther(tid);
412     EXPECT_EQ(val, 0);
413 }
414 
415 HWTEST_F(QosInterfaceTest, QosLeaveForOtherFuncTest3, TestSize.Level0)
416 {
417     int level = 3;
418     int tid = gettid();
419     int val = QosApplyForOther(level, tid);
420     EXPECT_EQ(val, 0);
421     val = QosLeaveForOther(tid);
422     EXPECT_EQ(val, 0);
423 }
424 
425 HWTEST_F(QosInterfaceTest, QosLeaveForOtherFuncTest4, TestSize.Level0)
426 {
427     int level = 4;
428     int tid = gettid();
429     int val = QosApplyForOther(level, tid);
430     EXPECT_EQ(val, 0);
431     val = QosLeaveForOther(tid);
432     EXPECT_EQ(val, 0);
433 }
434 
435 HWTEST_F(QosInterfaceTest, QosLeaveForOtherFuncTest5, TestSize.Level0)
436 {
437     int level = 5;
438     int tid = gettid();
439     int val = QosApplyForOther(level, tid);
440     EXPECT_EQ(val, 0);
441     val = QosLeaveForOther(tid);
442     EXPECT_EQ(val, 0);
443 }
444 
445 HWTEST_F(QosInterfaceTest, QosLeaveForOtherFuncTest6, TestSize.Level1)
446 {
447     int level = 6;
448     int tid = gettid();
449     int val = QosApplyForOther(level, tid);
450     EXPECT_EQ(val, 0);
451     val = QosLeaveForOther(tid);
452     EXPECT_EQ(val, 0);
453 }
454 
455 HWTEST_F(QosInterfaceTest, QosLeaveForOtherFuncTest, TestSize.Level1)
456 {
457     int level = 7;
458     int tid = gettid();
459     int val = QosApplyForOther(level, tid);
460     EXPECT_EQ(val, -1);
461     val = QosLeaveForOther(tid);
462     EXPECT_EQ(val, -1);
463 
464     level = 1024;
465     tid = gettid();
466     val = QosApplyForOther(level, tid);
467     EXPECT_EQ(val, -1);
468     val = QosLeaveForOther(tid);
469     EXPECT_EQ(val, -1);
470 
471     level = -1;
472     tid = gettid();
473     val = QosApplyForOther(level, tid);
474     EXPECT_EQ(val, -1);
475     val = QosLeaveForOther(tid);
476     EXPECT_EQ(val, -1);
477 }
478 
479 /**
480  * @tc.name: QosPolicyTest
481  * @tc.desc: Test whether the QosPolicy interface are normal.
482  * @tc.type: FUNC
483  */
484 
485 static struct QosPolicyDatas g_defaultQosPolicy = {
486     .policyType = QOS_POLICY_DEFAULT,
487     .policyFlag = QOS_FLAG_ALL,
488     .policys = {
489         {0, 0, 0, 1024, 0},
490         {0, 0, 0, 1024, 0},
491         {0, 0, 0, 1024, 0},
492         {0, 0, 0, 1024, 0},
493         {0, 0, 0, 1024, 0},
494         {0, 0, 0, 1024, 0},
495         {0, 0, 0, 1024, 0},
496     }
497 };
498 
499 HWTEST_F(QosInterfaceTest, QosPolicyTest, TestSize.Level1)
500 {
501     int val = -1;
502     struct QosPolicyDatas *policyDatas = nullptr;
503     val = QosPolicySet(policyDatas);
504     EXPECT_EQ(val, -1);
505 }
506 
507 /**
508  * @tc.name: QosGetTest1
509  * @tc.desc: Test whether the QosGet interface are normal.
510  * @tc.type: FUNC
511  */
512 HWTEST_F(QosInterfaceTest, QosGetTest1, TestSize.Level1)
513 {
514     int qos;
515     unsigned int level = 4;
516     int val = QosApply(level);
517     EXPECT_EQ(val, 0);
518     val = QosGet(qos);
519     sleep(5);
520     EXPECT_EQ(val, 0);
521     EXPECT_EQ(qos, level);
522 }
523 
524 /**
525  * @tc.name: QosGetFuncTest
526  * @tc.desc: Test whether the QosGet interface are normal.
527  * @tc.type: FUNC
528  */
529 HWTEST_F(QosInterfaceTest, QosGetFuncTest0, TestSize.Level0)
530 {
531     int qos = -1;
532     unsigned int level = 0;
533     int val = QosApply(level);
534     EXPECT_EQ(val, 0);
535     val = QosGet(qos);
536     sleep(1);
537     EXPECT_EQ(val, 0);
538     EXPECT_EQ(qos, level);
539 }
540 
541 HWTEST_F(QosInterfaceTest, QosGetFuncTest1, TestSize.Level0)
542 {
543     int qos = -1;
544     unsigned int level = 1;
545     int val = QosApply(level);
546     EXPECT_EQ(val, 0);
547     val = QosGet(qos);
548     sleep(1);
549     EXPECT_EQ(val, 0);
550     EXPECT_EQ(qos, level);
551 }
552 
553 HWTEST_F(QosInterfaceTest, QosGetFuncTest2, TestSize.Level0)
554 {
555     int qos = -1;
556     unsigned int level = 2;
557     int val = QosApply(level);
558     EXPECT_EQ(val, 0);
559     val = QosGet(qos);
560     sleep(1);
561     EXPECT_EQ(val, 0);
562     EXPECT_EQ(qos, level);
563 }
564 
565 HWTEST_F(QosInterfaceTest, QosGetFuncTest3, TestSize.Level0)
566 {
567     int qos = -1;
568     unsigned int level = 3;
569     int val = QosApply(level);
570     EXPECT_EQ(val, 0);
571     val = QosGet(qos);
572     sleep(1);
573     EXPECT_EQ(val, 0);
574     EXPECT_EQ(qos, level);
575 }
576 
577 HWTEST_F(QosInterfaceTest, QosGetFuncTest4, TestSize.Level0)
578 {
579     int qos = -1;
580     unsigned int level = 4;
581     int val = QosApply(level);
582     EXPECT_EQ(val, 0);
583     val = QosGet(qos);
584     sleep(1);
585     EXPECT_EQ(val, 0);
586     EXPECT_EQ(qos, level);
587 }
588 
589 HWTEST_F(QosInterfaceTest, QosGetFuncTest5, TestSize.Level0)
590 {
591     int qos = -1;
592     unsigned int level = 5;
593     int val = QosApply(level);
594     EXPECT_EQ(val, 0);
595     val = QosGet(qos);
596     sleep(1);
597     EXPECT_EQ(val, 0);
598     EXPECT_EQ(qos, level);
599 }
600 
601 HWTEST_F(QosInterfaceTest, QosGetFuncTest6, TestSize.Level1)
602 {
603     int qos = -1;
604     unsigned int level = 6;
605     int val = QosApply(level);
606     EXPECT_EQ(val, 0);
607     val = QosGet(qos);
608     sleep(1);
609     EXPECT_EQ(val, 0);
610     EXPECT_EQ(qos, level);
611 }
612 
613 /**
614  * @tc.name: QosGetForOtherFuncTest
615  * @tc.desc: Test whether the QosGetForOther interface are normal.
616  * @tc.type: FUNC
617  */
618 HWTEST_F(QosInterfaceTest, QosGetForOtherTest0, TestSize.Level0)
619 {
620     int qos = -1;
621     unsigned int level = 0;
622     int tid = gettid();
623     int val = QosApplyForOther(level, tid);
624     EXPECT_EQ(val, 0);
625     sleep(1);
626     val = QosGetForOther(tid, qos);
627     EXPECT_EQ(val, 0);
628     EXPECT_EQ(qos, level);
629 }
630 
631 HWTEST_F(QosInterfaceTest, QosGetForOtherTest1, TestSize.Level0)
632 {
633     int qos = -1;
634     unsigned int level = 1;
635     int tid = gettid();
636     int val = QosApplyForOther(level, tid);
637     EXPECT_EQ(val, 0);
638     sleep(1);
639     val = QosGetForOther(tid, qos);
640     EXPECT_EQ(val, 0);
641     EXPECT_EQ(qos, level);
642 }
643 
644 HWTEST_F(QosInterfaceTest, QosGetForOtherTest2, TestSize.Level0)
645 {
646     int qos = -1;
647     unsigned int level = 2;
648     int tid = gettid();
649     int val = QosApplyForOther(level, tid);
650     EXPECT_EQ(val, 0);
651     sleep(1);
652     val = QosGetForOther(tid, qos);
653     EXPECT_EQ(val, 0);
654     EXPECT_EQ(qos, level);
655 }
656 
657 HWTEST_F(QosInterfaceTest, QosGetForOtherTest3, TestSize.Level0)
658 {
659     int qos = -1;
660     unsigned int level = 3;
661     int tid = gettid();
662     int val = QosApplyForOther(level, tid);
663     EXPECT_EQ(val, 0);
664     sleep(1);
665     val = QosGetForOther(tid, qos);
666     EXPECT_EQ(val, 0);
667     EXPECT_EQ(qos, level);
668 }
669 
670 HWTEST_F(QosInterfaceTest, QosGetForOtherTest4, TestSize.Level0)
671 {
672     int qos = -1;
673     unsigned int level = 4;
674     int tid = gettid();
675     int val = QosApplyForOther(level, tid);
676     EXPECT_EQ(val, 0);
677     sleep(1);
678     val = QosGetForOther(tid, qos);
679     EXPECT_EQ(val, 0);
680     EXPECT_EQ(qos, level);
681 }
682 
683 HWTEST_F(QosInterfaceTest, QosGetForOtherTest5, TestSize.Level0)
684 {
685     int qos = -1;
686     unsigned int level = 5;
687     int tid = gettid();
688     int val = QosApplyForOther(level, tid);
689     EXPECT_EQ(val, 0);
690     sleep(1);
691     val = QosGetForOther(tid, qos);
692     EXPECT_EQ(val, 0);
693     EXPECT_EQ(qos, level);
694 }
695 
696 HWTEST_F(QosInterfaceTest, QosGetForOtherTest6, TestSize.Level0)
697 {
698     int qos = -1;
699     unsigned int level = 6;
700     int tid = gettid();
701     int val = QosApplyForOther(level, tid);
702     EXPECT_EQ(val, 0);
703     sleep(1);
704     val = QosGetForOther(tid, qos);
705     EXPECT_EQ(val, 0);
706     EXPECT_EQ(qos, level);
707 }
708 }
709 }
710 }
711