@@ -16,6 +16,7 @@ import (
1616 "log"
1717 "os"
1818 "sync"
19+ "sync/atomic"
1920 "testing"
2021 "time"
2122)
@@ -629,10 +630,17 @@ func TestRetryGetObjectsWhenSomeObjectsDoNotExist(t *testing.T) {
629630
630631 helper := helpers .NewHelpers (client )
631632
633+ perObjectErrCount := int64 (0 )
634+ errListener := helpers.ListenerStrategy {
635+ ErrorCallback : func (objectName string , err error ) {
636+ atomic .AddInt64 (& perObjectErrCount , 1 )
637+ },
638+ }
639+
632640 strategy := helpers.ReadTransferStrategy {
633641 Options : helpers.ReadBulkJobOptions {}, // use default job options
634642 BlobStrategy : newTestBlobStrategy (),
635- Listeners : newErrorOnErrorListenerStrategy ( t ) ,
643+ Listeners : errListener ,
636644 }
637645
638646 file0 , err := ioutil .TempFile (os .TempDir (), "goTest" )
@@ -687,10 +695,16 @@ func TestRetryGetObjectsWhenSomeObjectsDoNotExist(t *testing.T) {
687695 utils .VerifyBookContent (testutils .BookTitles [2 ], file2 )
688696 utils .VerifyBookContent (testutils .BookTitles [3 ], file3 )
689697
698+ ds3Testing .AssertInt64 (t , "per-object error count" , 2 , perObjectErrCount )
699+
690700 doesNotExistStat , err := os .Stat (doesNotExist1 .Name ())
691701 ds3Testing .AssertNilError (t , err )
692702 ds3Testing .AssertInt64 (t , "size of file" , 0 , doesNotExistStat .Size ())
693703
704+ doesNotExistStat , err = os .Stat (doesNotExist2 .Name ())
705+ ds3Testing .AssertNilError (t , err )
706+ ds3Testing .AssertInt64 (t , "size of file" , 0 , doesNotExistStat .Size ())
707+
694708 ds3Testing .AssertBool (t , "has fatal error" , true , doesNotExistChannelBuilder1 .HasFatalError ())
695709 ds3Testing .AssertBool (t , "has fatal error" , true , doesNotExistChannelBuilder2 .HasFatalError ())
696710}
0 commit comments