Skip to content

Commit d1e9f43

Browse files
Add tests for toggle with nullptr
1 parent 65ca481 commit d1e9f43

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

cminesweeper/src/lib.rs

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -533,6 +533,23 @@ mod test {
533533
destroy_game(&mut game_ptr);
534534
}
535535

536+
#[test]
537+
fn open_with_zero_buffer() {
538+
let mut game_ptr = create_game(GameLevel::Beginner);
539+
let mut buffered_open_info = create_open_info_with_size(5);
540+
buffered_open_info.data.newly_opened_fields_max_length = 0;
541+
let mut error_info = create_empty_error_info();
542+
minesweeper_game_open(
543+
game_ptr,
544+
0,
545+
0,
546+
&mut buffered_open_info.data,
547+
&mut error_info,
548+
);
549+
assert_eq!(CError::InsufficientBuffer, error_info.error_code);
550+
destroy_game(&mut game_ptr);
551+
}
552+
536553
#[test]
537554
fn open_with_insufficient_buffer() {
538555
let mut game_ptr = create_game(GameLevel::Beginner);
@@ -607,6 +624,29 @@ mod test {
607624
destroy_game(&mut game_ptr);
608625
}
609626

627+
#[test]
628+
fn toggle_with_nullptr_as_game() {
629+
let mut flag_result = FlagResult::AlreadyOpened;
630+
let mut error_info = create_empty_error_info();
631+
minesweeper_game_toggle_flag(
632+
std::ptr::null_mut(),
633+
0,
634+
0,
635+
&mut flag_result,
636+
&mut error_info,
637+
);
638+
assert_eq!(CError::NullPointerAsInput, error_info.error_code);
639+
}
640+
641+
#[test]
642+
fn toggle_with_nullptr_as_flag_result() {
643+
let mut game_ptr = create_game(GameLevel::Beginner);
644+
let mut error_info = create_empty_error_info();
645+
minesweeper_game_toggle_flag(game_ptr, 0, 0, std::ptr::null_mut(), &mut error_info);
646+
assert_eq!(CError::NullPointerAsInput, error_info.error_code);
647+
destroy_game(&mut game_ptr);
648+
}
649+
610650
#[test]
611651
fn flag_opened() {
612652
let mut game_ptr = create_game(GameLevel::Beginner);

0 commit comments

Comments
 (0)