@@ -10,73 +10,95 @@ fn test_validate_buffer_size() {
1010
1111 // Too small to fit header
1212 let small_len = 4 ;
13- assert ! ( raw:: validate_buffer_size ( small_len, 0 ) . is_err( ) ) ;
13+ assert ! ( raw:: validate_and_get_buffer_capacity ( small_len, 0 ) . is_err( ) ) ;
1414
1515 // Misaligned: header + partial entry
1616 let misaligned_len = NUM_ENTRIES_SIZE + 39 ;
17- assert ! ( raw:: validate_buffer_size ( misaligned_len, 0 ) . is_err( ) ) ;
17+ assert ! ( raw:: validate_and_get_buffer_capacity ( misaligned_len, 0 ) . is_err( ) ) ;
1818
1919 // Valid cases with offset = 0
2020 let valid_empty_len = NUM_ENTRIES_SIZE ;
21- assert_eq ! ( raw:: validate_buffer_size( valid_empty_len, 0 ) . unwrap( ) , 0 ) ;
21+ assert_eq ! (
22+ raw:: validate_and_get_buffer_capacity( valid_empty_len, 0 ) . unwrap( ) ,
23+ 0
24+ ) ;
2225
2326 let valid_one_len = NUM_ENTRIES_SIZE + ENTRY_SIZE ;
24- assert_eq ! ( raw:: validate_buffer_size( valid_one_len, 0 ) . unwrap( ) , 1 ) ;
27+ assert_eq ! (
28+ raw:: validate_and_get_buffer_capacity( valid_one_len, 0 ) . unwrap( ) ,
29+ 1
30+ ) ;
2531
2632 let valid_max_len = NUM_ENTRIES_SIZE + MAX_ENTRIES * ENTRY_SIZE ;
2733 assert_eq ! (
28- raw:: validate_buffer_size ( valid_max_len, 0 ) . unwrap( ) ,
34+ raw:: validate_and_get_buffer_capacity ( valid_max_len, 0 ) . unwrap( ) ,
2935 MAX_ENTRIES
3036 ) ;
3137
3238 // Edge case: exactly at the boundary (MAX_SIZE)
33- assert_eq ! ( raw:: validate_buffer_size( MAX_SIZE , 0 ) . unwrap( ) , MAX_ENTRIES ) ;
39+ assert_eq ! (
40+ raw:: validate_and_get_buffer_capacity( MAX_SIZE , 0 ) . unwrap( ) ,
41+ MAX_ENTRIES
42+ ) ;
3443
3544 // ===== Tests with offset != 0 (buffer doesn't include header) =====
3645
3746 // Valid cases with non-zero offset - buffer contains only entry data
3847
3948 // Buffer for exactly 1 entry
40- assert_eq ! ( raw:: validate_buffer_size( ENTRY_SIZE , 8 ) . unwrap( ) , 1 ) ;
49+ assert_eq ! (
50+ raw:: validate_and_get_buffer_capacity( ENTRY_SIZE , 8 ) . unwrap( ) ,
51+ 1
52+ ) ;
4153
4254 // Buffer for exactly 2 entries
43- assert_eq ! ( raw:: validate_buffer_size( 2 * ENTRY_SIZE , 8 ) . unwrap( ) , 2 ) ;
55+ assert_eq ! (
56+ raw:: validate_and_get_buffer_capacity( 2 * ENTRY_SIZE , 8 ) . unwrap( ) ,
57+ 2
58+ ) ;
4459
4560 // Buffer for maximum entries (without header space)
4661 assert_eq ! (
47- raw:: validate_buffer_size ( MAX_ENTRIES * ENTRY_SIZE , 8 ) . unwrap( ) ,
62+ raw:: validate_and_get_buffer_capacity ( MAX_ENTRIES * ENTRY_SIZE , 8 ) . unwrap( ) ,
4863 MAX_ENTRIES
4964 ) ;
5065
5166 // Buffer for 10 entries
52- assert_eq ! ( raw:: validate_buffer_size( 10 * ENTRY_SIZE , 48 ) . unwrap( ) , 10 ) ;
67+ assert_eq ! (
68+ raw:: validate_and_get_buffer_capacity( 10 * ENTRY_SIZE , 48 ) . unwrap( ) ,
69+ 10
70+ ) ;
5371
5472 // Error cases with non-zero offset
5573
5674 // Misaligned buffer - not a multiple of ENTRY_SIZE
57- assert ! ( raw:: validate_buffer_size ( ENTRY_SIZE + 1 , 8 ) . is_err( ) ) ;
58- assert ! ( raw:: validate_buffer_size ( ENTRY_SIZE - 1 , 8 ) . is_err( ) ) ;
59- assert ! ( raw:: validate_buffer_size ( 39 , 8 ) . is_err( ) ) ; // 39 is not divisible by 40
75+ assert ! ( raw:: validate_and_get_buffer_capacity ( ENTRY_SIZE + 1 , 8 ) . is_err( ) ) ;
76+ assert ! ( raw:: validate_and_get_buffer_capacity ( ENTRY_SIZE - 1 , 8 ) . is_err( ) ) ;
77+ assert ! ( raw:: validate_and_get_buffer_capacity ( 39 , 8 ) . is_err( ) ) ; // 39 is not divisible by 40
6078
6179 // Large buffers that would exceed MAX_SIZE - these now pass validate_buffer_size
6280 // (the syscall will fail later, but that's acceptable)
6381 assert_eq ! (
64- raw:: validate_buffer_size ( ( MAX_ENTRIES + 1 ) * ENTRY_SIZE , 8 ) . unwrap( ) ,
82+ raw:: validate_and_get_buffer_capacity ( ( MAX_ENTRIES + 1 ) * ENTRY_SIZE , 8 ) . unwrap( ) ,
6583 MAX_ENTRIES + 1
6684 ) ;
6785 assert_eq ! (
68- raw:: validate_buffer_size ( ( MAX_ENTRIES + 10 ) * ENTRY_SIZE , 48 ) . unwrap( ) ,
86+ raw:: validate_and_get_buffer_capacity ( ( MAX_ENTRIES + 10 ) * ENTRY_SIZE , 48 ) . unwrap( ) ,
6987 MAX_ENTRIES + 10
7088 ) ;
7189
7290 // Empty buffer with offset (valid - 0 entries)
73- assert_eq ! ( raw:: validate_buffer_size ( 0 , 8 ) . unwrap( ) , 0 ) ;
91+ assert_eq ! ( raw:: validate_and_get_buffer_capacity ( 0 , 8 ) . unwrap( ) , 0 ) ;
7492
7593 // ===== Additional edge cases =====
7694
7795 // Large offset values (should still work for buffer size validation)
78- assert_eq ! ( raw:: validate_buffer_size( 5 * ENTRY_SIZE , 1000 ) . unwrap( ) , 5 ) ;
79- assert ! ( raw:: validate_buffer_size( 5 * ENTRY_SIZE + 1 , 2000 ) . is_err( ) ) ; // misaligned
96+ assert_eq ! (
97+ raw:: validate_and_get_buffer_capacity( 5 * ENTRY_SIZE , 1000 ) . unwrap( ) ,
98+ 5
99+ ) ;
100+ assert ! ( raw:: validate_and_get_buffer_capacity( 5 * ENTRY_SIZE + 1 , 2000 ) . is_err( ) ) ;
101+ // misaligned
80102}
81103
82104#[ test]
0 commit comments