1/*
2 * Copyright (c) 2023 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 *     http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16import { beforeEach, describe, expect, it } from '@ohos/hypium'
17import Utils from './Utils'
18import sched from 'libschedndk.so'
19
20export default function schedNdkTest() {
21  describe('MuslSchedTest', () => {
22
23    beforeEach(async () => {
24      await Utils.sleep(50)
25    })
26
27    /**
28     * @tc.number     : SUB_THIRDPARTY_MUSL_SCHED_SCHEDCPUALLOC_0100
29     * @tc.name       : testMuslSchedShedCpualloc001
30     * @tc.desc       : test __sched_cpualloc
31     * @tc.size       : MediumTest
32     * @tc.type       : Function
33     * @tc.level      : Level 1
34     */
35    it('testMuslSchedShedCpualloc001', 0, async (done: Function) => {
36      let result:number = sched.schedCpualloc();
37      expect(result).assertEqual(0);
38      done()
39    });
40    /**
41     * @tc.number     : SUB_THIRDPARTY_MUSL_SCHED_SCHEDGETPRIORITYMAX_0100
42     * @tc.name       : testMuslSchedSchedGetPriorityMax001
43     * @tc.desc       : test sched_get_priority_max
44     * @tc.size       : MediumTest
45     * @tc.type       : Function
46     * @tc.level      : Level 1
47     */
48    it('testMuslSchedSchedGetPriorityMax001', 0, async (done: Function) => {
49      let testParam = 1
50      let result:number = sched.schedGetPriorityMax(testParam);
51      expect(result).assertEqual(99);
52      done()
53    });
54
55    /**
56     * @tc.number     : SUB_THIRDPARTY_MUSL_SCHED_SCHEDGETPRIORITYMAX_0200
57     * @tc.name       : testMuslSchedSchedGetPriorityMax002
58     * @tc.desc       : test sched_get_priority_max
59     * @tc.size       : MediumTest
60     * @tc.type       : Function
61     * @tc.level      : Level 1
62     */
63    it('testMuslSchedSchedGetPriorityMax002', 0, async (done: Function) => {
64      let testParam = 100
65      let result:number = sched.schedGetPriorityMax(testParam);
66      expect(result).assertEqual(-1);
67      done()
68    });
69
70    /**
71     * @tc.number     : SUB_THIRDPARTY_MUSL_SCHED_SCHEDGETPRIORITYMIX_0100
72     * @tc.name       : testMuslSchedSchedGetPriorityMin001
73     * @tc.desc       : test sched_get_priority_min
74     * @tc.size       : MediumTest
75     * @tc.type       : Function
76     * @tc.level      : Level 1
77     */
78    it('testMuslSchedSchedGetPriorityMin001', 0, async (done: Function) => {
79      let testParam = 1
80      let result:number = sched.schedGetPriorityMin(testParam);
81      expect(result).assertEqual(1);
82      done()
83    });
84
85    /**
86     * @tc.number     : SUB_THIRDPARTY_MUSL_SCHED_SCHEDGETPRIORITYMIN_0200
87     * @tc.name       : testMuslSchedSchedGetPriorityMin002
88     * @tc.desc       : test sched_get_priority_min
89     * @tc.size       : MediumTest
90     * @tc.type       : Function
91     * @tc.level      : Level 1
92     */
93    it('testMuslSchedSchedGetPriorityMin002', 0, async (done: Function) => {
94      let testParam = 100
95      let result:number = sched.schedGetPriorityMin(testParam);
96      expect(result).assertEqual(-1);
97      done()
98    });
99
100    /**
101     * @tc.number     : SUB_THIRDPARTY_MUSL_SCHED_SCHEDYIELD_0100
102     * @tc.name       : testMuslSchedSchedYield001
103     * @tc.desc       : test sched_yield
104     * @tc.size       : MediumTest
105     * @tc.type       : Function
106     * @tc.level      : Level 1
107     */
108    it('testMuslSchedSchedYield001', 0, async (done: Function) => {
109      let result:number = sched.sched_yield();
110      expect(result).assertEqual(0);
111      done()
112    });
113
114    /**
115     * @tc.number     : SUB_THIRDPARTY_MUSL_SCHED_SCHEDGETSCHEDULER_0100
116     * @tc.name       : testMuslSchedSchedGetscheduler001
117     * @tc.desc       : MuslSchedTest
118     * @tc.size       : MediumTest
119     * @tc.type       : Function
120     * @tc.level      : Level 1
121     */
122    it('testMuslSchedSchedGetscheduler001', 0, async (done: Function) => {
123      let result:number = sched.sched_getscheduler(-1);
124      expect(result).assertEqual(-1);
125      done()
126    });
127
128    /**
129     * @tc.number     : SUB_THIRDPARTY_MUSL_SCHED_SCHEDSETPARAM_0100
130     * @tc.name       : testMuslSchedSchedSetparam001
131     * @tc.desc       : test sched_setparam
132     * @tc.size       : MediumTest
133     * @tc.type       : Function
134     * @tc.level      : Level 1
135     */
136
137    it('testMuslSchedSchedSetparam001', 0, async (done: Function) => {
138      let result:number = sched.sched_setparam(-1);
139      expect(result).assertEqual(-1);
140      done()
141    });
142
143    /**
144     * @tc.number     : SUB_THIRDPARTY_MUSL_SCHED_SCHEDSETPARAM_0200
145     * @tc.name       : testMuslSchedSchedSetparam002
146     * @tc.desc       : test sched_setparam
147     * @tc.size       : MediumTest
148     * @tc.type       : Function
149     * @tc.level      : Level 1
150     */
151    it('testMuslSchedSchedSetparam002', 0, async (done: Function) => {
152      let result:number = sched.sched_setparam(0);
153      expect(result).assertEqual(0);
154      done()
155    });
156
157    /**
158     * @tc.number     : SUB_THIRDPARTY_MUSL_SCHED_SCHEDSETSCHEDULER_0100
159     * @tc.name       : testMuslSchedSchedSetscheduler001
160     * @tc.desc       : test sched_setscheduler
161     * @tc.size       : MediumTest
162     * @tc.type       : Function
163     * @tc.level      : Level 1
164     */
165    it('testMuslSchedSchedSetscheduler001', 0, async (done: Function) => {
166      let result:number = sched.sched_setscheduler(-1);
167      expect(result).assertEqual(-1);
168      done()
169    });
170
171    /**
172     * @tc.number     : SUB_THIRDPARTY_MUSL_SCHED_SCHEDSETSCHEDULER_0200
173     * @tc.name       : testMuslSchedSchedSetscheduler002
174     * @tc.desc       : test sched_setscheduler
175     * @tc.size       : MediumTest
176     * @tc.type       : Function
177     * @tc.level      : Level 1
178     */
179    it('testMuslSchedSchedSetscheduler002', 0, async (done: Function) => {
180      let result:number = sched.sched_setscheduler(0);
181      expect(result).assertEqual(-1);
182      done()
183    });
184
185    /**
186     * @tc.number     : SUB_THIRDPARTY_MUSL_SCHED_SCHEDGETAFFINITY_0100
187     * @tc.name       : testMuslSchedSchedGetaffinity001
188     * @tc.desc       : test sched_getaffinity
189     * @tc.size       : MediumTest
190     * @tc.type       : Function
191     * @tc.level      : Level 0
192     */
193    it('testMuslSchedSchedGetaffinity001', 0, async (done: Function) => {
194      let result:number = sched.sched_getaffinity();
195      expect(result).assertEqual(0);
196      done()
197    });
198
199    /**
200     * @tc.number     : SUB_THIRDPARTY_MUSL_SCHED_SCHEDGETCPU_0100
201     * @tc.name       : testMuslSchedSchedGetcpu001
202     * @tc.desc       : test sched_getcpu
203     * @tc.size       : MediumTest
204     * @tc.type       : Function
205     * @tc.level      : Level 0
206     */
207    it('testMuslSchedSchedGetcpu001', 0, async (done: Function) => {
208      let result:number = sched.sched_getcpu();
209      expect(result).assertEqual(0);
210      done()
211    });
212
213    /**
214     * @tc.number     : SUB_THIRDPARTY_MUSL_SCHED_SCHEDSETAFFINITY_0100
215     * @tc.name       : testMuslSchedSchedSetaffinity001
216     * @tc.desc       : test sched_setaffinity
217     * @tc.size       : MediumTest
218     * @tc.type       : Function
219     * @tc.level      : Level 0
220     */
221    it('testMuslSchedSchedSetaffinity001', 0, async (done: Function) => {
222      let result:number = sched.sched_setaffinity();
223      expect(result).assertEqual(0);
224      done()
225    });
226
227    /**
228     * @tc.number     : SUB_THIRDPARTY_MUSL_SCHED_SCHEDRRGETINTERVAL_0100
229     * @tc.name       : testMuslSchedSchedRrGetInterval001
230     * @tc.desc       : test sched_rr_get_interval
231     * @tc.size       : MediumTest
232     * @tc.type       : Function
233     * @tc.level      : Level 0
234     */
235    it('testMuslSchedSchedRrGetInterval001', 0, async (done: Function) => {
236      let result:number = sched.sched_rr_get_interval(0);
237      expect(result).assertEqual(0);
238      done()
239    });
240
241    /**
242     * @tc.number     : SUB_THIRDPARTY_MUSL_SCHED_SCHEDEEGETINTERVAL_0200
243     * @tc.name       : testMuslSchedSchedRrGetInterval002
244     * @tc.desc       : test sched_rr_get_interval
245     * @tc.size       : MediumTest
246     * @tc.type       : Function
247     * @tc.level      : Level 0
248     */
249    it('testMuslSchedSchedRrGetInterval002', 0, async (done: Function) => {
250      let result:number = sched.sched_rr_get_interval(-1);
251      expect(result).assertEqual(-1);
252      done()
253    });
254
255    /**
256     * @tc.number     : SUB_THIRDPARTY_MUSL_SCHED_SCHEDCPUCOUNT_0100
257     * @tc.name       : testMuslSchedSchedCpuCount001
258     * @tc.desc       : test schedCpuCount
259     * @tc.size       : MediumTest
260     * @tc.type       : Function
261     * @tc.level      : Level 0
262     */
263    it('testMuslSchedSchedCpuCount001', 0, async (done: Function) => {
264      let result:number = sched.schedCpuCount();
265      expect(result).assertEqual(0);
266      done()
267    });
268
269    /**
270     * @tc.number     : SUB_THIRDPARTY_MUSL_SCHED_SCHEDGETPARAM_0100
271     * @tc.name       : testMuslSchedSchedGetparam001
272     * @tc.desc       : test sched_getparam
273     * @tc.size       : MediumTest
274     * @tc.type       : Function
275     * @tc.level      : Level 1
276     */
277    it('testMuslSchedSchedGetparam001', 0, async (done: Function) => {
278      let data: number = sched.schedGetparam();
279      expect(data).assertEqual(0);
280      done()
281    });
282  })
283}