@@ -381,14 +381,13 @@ pub fn verify_piece_inclusion_proof(
381381
382382/// Takes a piece file at `unpadded_piece_path` and the size of the piece and returns the comm_p.
383383///
384- pub fn generate_piece_commitment < T : Into < PathBuf > + AsRef < Path > > (
385- unpadded_piece_path : T ,
384+ pub fn generate_piece_commitment < T : std :: io :: Read > (
385+ unpadded_piece_file : T ,
386386 unpadded_piece_size : UnpaddedBytesAmount ,
387387) -> error:: Result < Commitment > {
388- let mut unpadded_piece_file = File :: open ( unpadded_piece_path) ?;
389388 let mut padded_piece_file = tempfile ( ) ?;
390389
391- let ( _, mut source) = get_aligned_source ( & mut unpadded_piece_file, & [ ] , unpadded_piece_size) ;
390+ let ( _, mut source) = get_aligned_source ( unpadded_piece_file, & [ ] , unpadded_piece_size) ;
392391 write_padded ( & mut source, & mut padded_piece_file) ?;
393392
394393 let _ = padded_piece_file. seek ( SeekFrom :: Start ( 0 ) ) ?;
@@ -455,6 +454,7 @@ fn pad_safe_fr(unpadded: &FrSafe) -> Fr32Ary {
455454#[ cfg( test) ]
456455mod tests {
457456 use std:: collections:: BTreeMap ;
457+ use std:: io:: { Seek , SeekFrom } ;
458458
459459 use crate :: constants:: SECTOR_SIZE_ONE_KIB ;
460460 use crate :: error:: ExpectWithBacktrace ;
@@ -470,8 +470,10 @@ mod tests {
470470 fn generate_comm_p ( data : & [ u8 ] ) -> Result < Commitment , failure:: Error > {
471471 let mut file = NamedTempFile :: new ( ) . expects ( "could not create named temp file" ) ;
472472 file. write_all ( data) ?;
473+ file. seek ( SeekFrom :: Start ( 0 ) ) ?;
474+
473475 let comm_p =
474- generate_piece_commitment ( file. path ( ) , UnpaddedBytesAmount ( data. len ( ) as u64 ) ) ?;
476+ generate_piece_commitment ( file. as_file_mut ( ) , UnpaddedBytesAmount ( data. len ( ) as u64 ) ) ?;
475477 Ok ( comm_p)
476478 }
477479
@@ -704,9 +706,11 @@ mod tests {
704706
705707 let mut piece_file = NamedTempFile :: new ( ) ?;
706708 piece_file. write_all ( & piece_bytes) ?;
707- piece_file. seek ( SeekFrom :: Start ( 0 ) ) ?;
709+ piece_file. as_file_mut ( ) . sync_all ( ) ?;
710+ piece_file. as_file_mut ( ) . seek ( SeekFrom :: Start ( 0 ) ) ?;
708711
709- let comm_p = generate_piece_commitment ( & piece_file. path ( ) , number_of_bytes_in_piece) ?;
712+ let comm_p = generate_piece_commitment ( piece_file. as_file_mut ( ) , number_of_bytes_in_piece) ?;
713+ piece_file. as_file_mut ( ) . seek ( SeekFrom :: Start ( 0 ) ) ?;
710714
711715 let mut staged_sector_file = NamedTempFile :: new ( ) ?;
712716 add_piece (
0 commit comments