@@ -92,9 +92,20 @@ fn get_resolution_width_height() {
9292 let kernel = fake:: Kernel :: new ( ) ;
9393 let driver = fake:: Screen :: new ( ) ;
9494 kernel. add_driver ( & driver) ;
95- assert_eq ! ( Screen :: get_resolution_width_height( 1 ) , Ok ( ( 1920 , 1080 ) ) ) ;
95+ assert_eq ! ( Screen :: get_resolution_width_height( 0 ) , Ok ( ( 1920 , 1080 ) ) ) ;
96+ assert_eq ! ( Screen :: get_resolution_width_height( 1 ) , Ok ( ( 2560 , 1440 ) ) ) ;
97+ assert_eq ! ( Screen :: get_resolution_width_height( 2 ) , Ok ( ( 1280 , 720 ) ) ) ;
98+ }
99+ #[ test]
100+ fn get_resolution_width_height_fail ( ) {
101+ let kernel = fake:: Kernel :: new ( ) ;
102+ let driver = fake:: Screen :: new ( ) ;
103+ kernel. add_driver ( & driver) ;
104+ assert_eq ! (
105+ Screen :: get_resolution_width_height( 3 ) ,
106+ Err ( ErrorCode :: Invalid )
107+ ) ;
96108}
97-
98109#[ test]
99110fn pixel_modes_count ( ) {
100111 let kernel = fake:: Kernel :: new ( ) ;
@@ -104,15 +115,24 @@ fn pixel_modes_count() {
104115}
105116
106117#[ test]
107- fn pixel_format ( ) {
118+ fn get_screen_pixel_format_success ( ) {
108119 let kernel = fake:: Kernel :: new ( ) ;
109120 let driver = fake:: Screen :: new ( ) ;
110121 kernel. add_driver ( & driver) ;
111- assert_eq ! ( Screen :: pixel_format( 1 ) , Ok ( 1 ) ) ;
122+ assert_eq ! ( Screen :: pixel_format( 0 ) , Ok ( 332 ) ) ;
123+ assert_eq ! ( Screen :: pixel_format( 1 ) , Ok ( 565 ) ) ;
112124}
113125
114126#[ test]
115- fn set_rotation ( ) {
127+ fn get_screen_pixel_format_fail ( ) {
128+ let kernel = fake:: Kernel :: new ( ) ;
129+ let driver = fake:: Screen :: new ( ) ;
130+ kernel. add_driver ( & driver) ;
131+ assert_eq ! ( Screen :: pixel_format( 8 ) , Err ( ErrorCode :: Invalid ) ) ;
132+ }
133+
134+ #[ test]
135+ fn set_rotation_success ( ) {
116136 let kernel = fake:: Kernel :: new ( ) ;
117137 let driver = fake:: Screen :: new ( ) ;
118138 kernel. add_driver ( & driver) ;
@@ -125,7 +145,15 @@ fn set_rotation() {
125145}
126146
127147#[ test]
128- fn get_rotation ( ) {
148+ fn set_rotation_fail ( ) {
149+ let kernel = fake:: Kernel :: new ( ) ;
150+ let driver = fake:: Screen :: new ( ) ;
151+ kernel. add_driver ( & driver) ;
152+ assert_eq ! ( Screen :: set_rotation( 360 ) , Err ( ErrorCode :: Invalid ) ) ;
153+ }
154+
155+ #[ test]
156+ fn get_rotation_success ( ) {
129157 let kernel = fake:: Kernel :: new ( ) ;
130158 let driver = fake:: Screen :: new ( ) ;
131159 kernel. add_driver ( & driver) ;
@@ -143,6 +171,19 @@ fn get_rotation() {
143171 assert_eq ! ( Screen :: get_rotation( ) , Ok ( 30 ) ) ;
144172}
145173
174+ #[ test]
175+ fn get_rotation_fail ( ) {
176+ let kernel = fake:: Kernel :: new ( ) ;
177+ let driver = fake:: Screen :: new ( ) ;
178+ kernel. add_driver ( & driver) ;
179+ kernel. add_expected_syscall ( ExpectedSyscall :: Subscribe {
180+ driver_num : 0x90001 ,
181+ subscribe_num : 0 ,
182+ skip_with_error : None ,
183+ } ) ;
184+ assert_eq ! ( Screen :: get_rotation( ) , Ok ( 0 ) ) ;
185+ }
186+
146187#[ test]
147188fn set_resolution ( ) {
148189 let kernel = fake:: Kernel :: new ( ) ;
@@ -157,7 +198,7 @@ fn set_resolution() {
157198}
158199
159200#[ test]
160- fn get_resolution ( ) {
201+ fn get_resolution_sucess ( ) {
161202 let kernel = fake:: Kernel :: new ( ) ;
162203 let driver = fake:: Screen :: new ( ) ;
163204 kernel. add_driver ( & driver) ;
@@ -170,6 +211,14 @@ fn get_resolution() {
170211 assert_eq ! ( Screen :: get_resolution( ) , Ok ( ( 360 , 720 ) ) ) ;
171212}
172213
214+ #[ test]
215+ fn get_resolution_fail ( ) {
216+ let kernel = fake:: Kernel :: new ( ) ;
217+ let driver = fake:: Screen :: new ( ) ;
218+ kernel. add_driver ( & driver) ;
219+ assert_eq ! ( Screen :: get_resolution( ) , Ok ( ( 0 , 0 ) ) ) ;
220+ }
221+
173222#[ test]
174223fn set_pixel_format ( ) {
175224 let kernel = fake:: Kernel :: new ( ) ;
@@ -184,7 +233,7 @@ fn set_pixel_format() {
184233}
185234
186235#[ test]
187- fn get_pixel_format ( ) {
236+ fn get_pixel_format_success ( ) {
188237 let kernel = fake:: Kernel :: new ( ) ;
189238 let driver = fake:: Screen :: new ( ) ;
190239 kernel. add_driver ( & driver) ;
@@ -197,12 +246,20 @@ fn get_pixel_format() {
197246 assert_eq ! ( Screen :: get_pixel_format( ) , Ok ( 2 ) ) ;
198247}
199248
249+ #[ test]
250+ fn get_pixel_format_fail ( ) {
251+ let kernel = fake:: Kernel :: new ( ) ;
252+ let driver = fake:: Screen :: new ( ) ;
253+ kernel. add_driver ( & driver) ;
254+ assert_eq ! ( Screen :: get_pixel_format( ) , Ok ( 0 ) ) ;
255+ }
256+
200257#[ test]
201258fn set_write_frame ( ) {
202259 let kernel = fake:: Kernel :: new ( ) ;
203260 let driver = fake:: Screen :: new ( ) ;
204261 kernel. add_driver ( & driver) ;
205- assert_eq ! ( Screen :: set_write_frame( 4660 , 22136 , 39612 , 57072 ) , Ok ( ( ) ) ) ;
262+ assert_eq ! ( Screen :: set_write_frame( 10 , 20 , 30 , 30 ) , Ok ( ( ) ) ) ;
206263}
207264
208265#[ test]
@@ -213,15 +270,63 @@ fn write_buffer() {
213270 let _ = Screen :: set_pixel_format ( 2 ) ;
214271 let buffer = [ 0u8 ; 4 ] ;
215272
273+ kernel. add_expected_syscall ( ExpectedSyscall :: AllowRo {
274+ driver_num : 0x90001 ,
275+ buffer_num : 0 ,
276+ return_error : None ,
277+ } ) ;
278+
216279 kernel. add_expected_syscall ( ExpectedSyscall :: Subscribe {
217280 driver_num : 0x90001 ,
218281 subscribe_num : 0 ,
219282 skip_with_error : None ,
220283 } ) ;
284+
285+ assert_eq ! ( Screen :: write( & buffer) , Ok ( ( ) ) ) ;
286+ }
287+
288+ #[ test]
289+ fn fill_success ( ) {
290+ let kernel = fake:: Kernel :: new ( ) ;
291+ let driver = fake:: Screen :: new ( ) ;
292+ kernel. add_driver ( & driver) ;
293+ let _ = Screen :: set_pixel_format ( 2 ) ;
294+ let mut buffer = [ 0u8 ; 2 ] ;
295+ let color = 0xF800 ;
221296 kernel. add_expected_syscall ( ExpectedSyscall :: AllowRo {
222297 driver_num : 0x90001 ,
223298 buffer_num : 0 ,
224299 return_error : None ,
225300 } ) ;
226- assert_eq ! ( Screen :: write( & buffer) , Ok ( ( ) ) ) ;
301+
302+ kernel. add_expected_syscall ( ExpectedSyscall :: Subscribe {
303+ driver_num : 0x90001 ,
304+ subscribe_num : 0 ,
305+ skip_with_error : None ,
306+ } ) ;
307+
308+ assert_eq ! ( Screen :: fill( & mut buffer, color) , Ok ( ( ) ) ) ;
309+ }
310+
311+ #[ test]
312+ fn fill_fail ( ) {
313+ let kernel = fake:: Kernel :: new ( ) ;
314+ let driver = fake:: Screen :: new ( ) ;
315+ kernel. add_driver ( & driver) ;
316+ let _ = Screen :: set_pixel_format ( 2 ) ;
317+ let mut buffer = [ 0u8 ; 1 ] ;
318+ let color = 0xF800 ;
319+ kernel. add_expected_syscall ( ExpectedSyscall :: AllowRo {
320+ driver_num : 0x90001 ,
321+ buffer_num : 0 ,
322+ return_error : None ,
323+ } ) ;
324+
325+ kernel. add_expected_syscall ( ExpectedSyscall :: Subscribe {
326+ driver_num : 0x90001 ,
327+ subscribe_num : 0 ,
328+ skip_with_error : None ,
329+ } ) ;
330+
331+ assert_eq ! ( Screen :: fill( & mut buffer, color) , Err ( ErrorCode :: Fail ) ) ;
227332}
0 commit comments