@@ -179,6 +179,105 @@ fn test_du_with_posixly_correct() {
179179 assert_eq ! ( expected, result) ;
180180}
181181
182+ #[ test]
183+ fn test_du_zero_env_block_size ( ) {
184+ let ts = TestScenario :: new ( util_name ! ( ) ) ;
185+ let at = & ts. fixtures ;
186+ let dir = "a" ;
187+
188+ at. mkdir ( dir) ;
189+ at. write ( & format ! ( "{dir}/file" ) , "some content" ) ;
190+
191+ let expected = ts
192+ . ucmd ( )
193+ . arg ( dir)
194+ . arg ( "--block-size=1024" )
195+ . succeeds ( )
196+ . stdout_move_str ( ) ;
197+
198+ let result = ts
199+ . ucmd ( )
200+ . arg ( dir)
201+ . env ( "DU_BLOCK_SIZE" , "0" )
202+ . succeeds ( )
203+ . stdout_move_str ( ) ;
204+
205+ assert_eq ! ( expected, result) ;
206+ }
207+
208+ #[ test]
209+ fn test_du_zero_env_block_size_hierarchy ( ) {
210+ let ts = TestScenario :: new ( util_name ! ( ) ) ;
211+ let at = & ts. fixtures ;
212+ let dir = "a" ;
213+
214+ at. mkdir ( dir) ;
215+ at. write ( & format ! ( "{dir}/file" ) , "some content" ) ;
216+
217+ let expected = ts
218+ . ucmd ( )
219+ . arg ( dir)
220+ . arg ( "--block-size=1024" )
221+ . succeeds ( )
222+ . stdout_move_str ( ) ;
223+
224+ let result1 = ts
225+ . ucmd ( )
226+ . arg ( dir)
227+ . env ( "BLOCK_SIZE" , "1" )
228+ . env ( "DU_BLOCK_SIZE" , "0" )
229+ . succeeds ( )
230+ . stdout_move_str ( ) ;
231+
232+ let result2 = ts
233+ . ucmd ( )
234+ . arg ( dir)
235+ . env ( "BLOCK_SIZE" , "1" )
236+ . env ( "BLOCKSIZE" , "1" )
237+ . env ( "DU_BLOCK_SIZE" , "0" )
238+ . succeeds ( )
239+ . stdout_move_str ( ) ;
240+
241+ assert_eq ! ( expected, result1) ;
242+ assert_eq ! ( expected, result2) ;
243+ }
244+
245+ #[ test]
246+ fn test_du_env_block_size_hierarchy ( ) {
247+ let ts = TestScenario :: new ( util_name ! ( ) ) ;
248+ let at = & ts. fixtures ;
249+ let dir = "a" ;
250+
251+ at. mkdir ( dir) ;
252+ at. write ( & format ! ( "{dir}/file" ) , "some content" ) ;
253+
254+ let expected = ts
255+ . ucmd ( )
256+ . arg ( dir)
257+ . arg ( "--block-size=1" )
258+ . succeeds ( )
259+ . stdout_move_str ( ) ;
260+
261+ let result1 = ts
262+ . ucmd ( )
263+ . arg ( dir)
264+ . env ( "BLOCK_SIZE" , "0" )
265+ . env ( "DU_BLOCK_SIZE" , "1" )
266+ . succeeds ( )
267+ . stdout_move_str ( ) ;
268+
269+ let result2 = ts
270+ . ucmd ( )
271+ . arg ( dir)
272+ . env ( "BLOCK_SIZE" , "1" )
273+ . env ( "BLOCKSIZE" , "0" )
274+ . succeeds ( )
275+ . stdout_move_str ( ) ;
276+
277+ assert_eq ! ( expected, result1) ;
278+ assert_eq ! ( expected, result2) ;
279+ }
280+
182281#[ test]
183282fn test_du_non_existing_files ( ) {
184283 new_ucmd ! ( )
0 commit comments