@@ -67,6 +67,7 @@ fn invalid_offset_fallocate() {
6767) ) ) ]
6868#[ test]
6969fn invalid_offset_fadvise ( ) {
70+ use core:: num:: NonZeroU64 ;
7071 use rustix:: fs:: { fadvise, openat, Advice , Mode , OFlags , CWD } ;
7172 let tmp = tempfile:: tempdir ( ) . unwrap ( ) ;
7273 let dir = openat ( CWD , tmp. path ( ) , OFlags :: RDONLY , Mode :: empty ( ) ) . unwrap ( ) ;
@@ -79,21 +80,63 @@ fn invalid_offset_fadvise() {
7980 . unwrap ( ) ;
8081
8182 // `fadvise` never fails on invalid offsets.
82- fadvise ( & file, i64:: MAX as u64 , i64:: MAX as u64 , Advice :: Normal ) . unwrap ( ) ;
83- fadvise ( & file, u64:: MAX , 0 , Advice :: Normal ) . unwrap ( ) ;
84- fadvise ( & file, i64:: MAX as u64 , 1 , Advice :: Normal ) . unwrap ( ) ;
85- fadvise ( & file, 1 , i64:: MAX as u64 , Advice :: Normal ) . unwrap ( ) ;
86- fadvise ( & file, i64:: MAX as u64 + 1 , 0 , Advice :: Normal ) . unwrap ( ) ;
87- fadvise ( & file, u64:: MAX , i64:: MAX as u64 , Advice :: Normal ) . unwrap ( ) ;
83+ fadvise (
84+ & file,
85+ i64:: MAX as u64 ,
86+ NonZeroU64 :: new ( i64:: MAX as u64 ) ,
87+ Advice :: Normal ,
88+ )
89+ . unwrap ( ) ;
90+ fadvise ( & file, u64:: MAX , None , Advice :: Normal ) . unwrap ( ) ;
91+ fadvise ( & file, i64:: MAX as u64 , NonZeroU64 :: new ( 1 ) , Advice :: Normal ) . unwrap ( ) ;
92+ fadvise ( & file, 1 , NonZeroU64 :: new ( i64:: MAX as u64 ) , Advice :: Normal ) . unwrap ( ) ;
93+ fadvise ( & file, i64:: MAX as u64 + 1 , None , Advice :: Normal ) . unwrap ( ) ;
94+ fadvise (
95+ & file,
96+ u64:: MAX ,
97+ NonZeroU64 :: new ( i64:: MAX as u64 ) ,
98+ Advice :: Normal ,
99+ )
100+ . unwrap ( ) ;
88101
89102 // `fadvise` fails on invalid lengths.
90- fadvise ( & file, u64:: MAX , u64:: MAX , Advice :: Normal ) . unwrap_err ( ) ;
91- fadvise ( & file, i64:: MAX as u64 , u64:: MAX , Advice :: Normal ) . unwrap_err ( ) ;
92- fadvise ( & file, 0 , u64:: MAX , Advice :: Normal ) . unwrap_err ( ) ;
93- fadvise ( & file, u64:: MAX , i64:: MAX as u64 + 1 , Advice :: Normal ) . unwrap_err ( ) ;
94- fadvise ( & file, i64:: MAX as u64 + 1 , u64:: MAX , Advice :: Normal ) . unwrap_err ( ) ;
95- fadvise ( & file, i64:: MAX as u64 , i64:: MAX as u64 + 1 , Advice :: Normal ) . unwrap_err ( ) ;
96- fadvise ( & file, 0 , i64:: MAX as u64 + 1 , Advice :: Normal ) . unwrap_err ( ) ;
103+ fadvise ( & file, u64:: MAX , NonZeroU64 :: new ( u64:: MAX ) , Advice :: Normal ) . unwrap_err ( ) ;
104+ fadvise (
105+ & file,
106+ i64:: MAX as u64 ,
107+ NonZeroU64 :: new ( u64:: MAX ) ,
108+ Advice :: Normal ,
109+ )
110+ . unwrap_err ( ) ;
111+ fadvise ( & file, 0 , NonZeroU64 :: new ( u64:: MAX ) , Advice :: Normal ) . unwrap_err ( ) ;
112+ fadvise (
113+ & file,
114+ u64:: MAX ,
115+ NonZeroU64 :: new ( i64:: MAX as u64 + 1 ) ,
116+ Advice :: Normal ,
117+ )
118+ . unwrap_err ( ) ;
119+ fadvise (
120+ & file,
121+ i64:: MAX as u64 + 1 ,
122+ NonZeroU64 :: new ( u64:: MAX ) ,
123+ Advice :: Normal ,
124+ )
125+ . unwrap_err ( ) ;
126+ fadvise (
127+ & file,
128+ i64:: MAX as u64 ,
129+ NonZeroU64 :: new ( i64:: MAX as u64 + 1 ) ,
130+ Advice :: Normal ,
131+ )
132+ . unwrap_err ( ) ;
133+ fadvise (
134+ & file,
135+ 0 ,
136+ NonZeroU64 :: new ( i64:: MAX as u64 + 1 ) ,
137+ Advice :: Normal ,
138+ )
139+ . unwrap_err ( ) ;
97140}
98141
99142#[ test]
0 commit comments