• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2022 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package android.car.os;
18 
19 import static com.google.common.truth.Truth.assertThat;
20 import static com.google.common.truth.Truth.assertWithMessage;
21 
22 import static org.junit.Assert.assertThrows;
23 
24 import org.junit.Test;
25 import org.junit.runner.RunWith;
26 import org.mockito.junit.MockitoJUnitRunner;
27 
28 @RunWith(MockitoJUnitRunner.class)
29 public final class ThreadPolicyWithPriorityUnitTest {
30 
31     @Test
testThreadPolicyWithPriorityMinPriority()32     public void testThreadPolicyWithPriorityMinPriority() {
33         int expectedPolicy = ThreadPolicyWithPriority.SCHED_FIFO;
34         int expectedPriority = ThreadPolicyWithPriority.PRIORITY_MIN;
35 
36         ThreadPolicyWithPriority gotPolicyPriority = new ThreadPolicyWithPriority(
37                 expectedPolicy, expectedPriority);
38 
39         assertThat(gotPolicyPriority.getPolicy()).isEqualTo(expectedPolicy);
40         assertThat(gotPolicyPriority.getPriority()).isEqualTo(expectedPriority);
41     }
42 
43     @Test
testThreadPolicyWithPriorityMaxPriority()44     public void testThreadPolicyWithPriorityMaxPriority() {
45         int expectedPolicy = ThreadPolicyWithPriority.SCHED_FIFO;
46         int expectedPriority = ThreadPolicyWithPriority.PRIORITY_MAX;
47 
48         ThreadPolicyWithPriority gotPolicyPriority = new ThreadPolicyWithPriority(
49                 expectedPolicy, expectedPriority);
50 
51         assertThat(gotPolicyPriority.getPolicy()).isEqualTo(expectedPolicy);
52         assertThat(gotPolicyPriority.getPriority()).isEqualTo(expectedPriority);
53     }
54 
55     @Test
testThreadPolicyWithPriorityInvalidPolicy()56     public void testThreadPolicyWithPriorityInvalidPolicy() {
57         int policy = -1;
58         int priority = ThreadPolicyWithPriority.PRIORITY_MIN;
59 
60         IllegalArgumentException thrown = assertThrows(IllegalArgumentException.class,
61                 () -> new ThreadPolicyWithPriority(policy, priority));
62 
63         assertWithMessage("thrown exception has expected message").that(thrown).hasMessageThat()
64                 .contains("invalid policy");
65     }
66 
67     @Test
testThreadPolicyWithPriorityPriorityTooSmall()68     public void testThreadPolicyWithPriorityPriorityTooSmall() {
69         int policy = ThreadPolicyWithPriority.SCHED_FIFO;
70         int priority = ThreadPolicyWithPriority.PRIORITY_MIN - 1;
71 
72         IllegalArgumentException thrown = assertThrows(IllegalArgumentException.class,
73                 () -> new ThreadPolicyWithPriority(policy, priority));
74 
75         assertWithMessage("thrown exception has expected message").that(thrown).hasMessageThat()
76                 .contains("invalid priority");
77     }
78 
79     @Test
testThreadPolicyWithPriorityPriorityTooLarge()80     public void testThreadPolicyWithPriorityPriorityTooLarge() {
81         int policy = ThreadPolicyWithPriority.SCHED_FIFO;
82         int priority = ThreadPolicyWithPriority.PRIORITY_MAX + 1;
83 
84         IllegalArgumentException thrown = assertThrows(IllegalArgumentException.class,
85                 () -> new ThreadPolicyWithPriority(policy, priority));
86 
87         assertWithMessage("thrown exception has expected message").that(thrown).hasMessageThat()
88                 .contains("invalid priority");
89     }
90 
91     @Test
testDefaultThreadPolicy()92     public void testDefaultThreadPolicy() {
93         ThreadPolicyWithPriority gotPolicyPriority = new ThreadPolicyWithPriority(
94                 ThreadPolicyWithPriority.SCHED_DEFAULT, /* priority= */ 1);
95 
96         assertThat(gotPolicyPriority.getPolicy()).isEqualTo(ThreadPolicyWithPriority.SCHED_DEFAULT);
97         assertThat(gotPolicyPriority.getPriority()).isEqualTo(0);
98     }
99 }
100