@@ -61,6 +61,9 @@ static const char* SMALL_FILE_KEY = "SmallFileKey";
61
61
static const char * MEDIUM_TEST_FILE_NAME = " MedTransferTestFile.txt" ;
62
62
static const char * MEDIUM_FILE_KEY = " MediumFileKey" ;
63
63
64
+ static const char * EMPTY_TEST_FILE_NAME = " EmptyTransferTestFile.txt" ;
65
+ static const char * EMPTY_FILE_KEY = " EmptyFileKey" ;
66
+
64
67
static const char * MULTI_PART_CONTENT_FILE = " MultiContentTransferTestFile.txt" ;
65
68
static const char * MULTI_PART_CONTENT_KEY = " MultiContentKey" ;
66
69
static const char * MULTI_PART_CONTENT_TEXT = " This is a test..##" ;
@@ -294,7 +297,7 @@ class TransferTests : public ::testing::Test
294
297
auto copyMetadata = metadata;
295
298
// ETag will be added to Metadata when finished uploading/downloading
296
299
copyMetadata[" ETag" ] = downloadPtr->GetMetadata ().find (" ETag" )->second ;
297
- ASSERT_TRUE (copyMetadata == downloadPtr->GetMetadata ());
300
+ ASSERT_EQ (copyMetadata, downloadPtr->GetMetadata ());
298
301
}
299
302
300
303
Aws::FileSystem::RemoveFileIfExists (downloadFileName.c_str ());
@@ -515,8 +518,8 @@ TEST_F(TransferTests, TransferManager_SinglePartUploadTest)
515
518
ASSERT_STREQ (" text/plain" , requestPtr->GetContentType ().c_str ());
516
519
517
520
uint64_t fileSize = requestPtr->GetBytesTotalSize ();
518
- ASSERT_TRUE (fileSize == (MB5 / testStrLen * testStrLen));
519
- ASSERT_TRUE (fileSize == requestPtr->GetBytesTransferred ());
521
+ ASSERT_EQ (fileSize, (MB5 / testStrLen * testStrLen));
522
+ ASSERT_EQ (fileSize, requestPtr->GetBytesTransferred ());
520
523
521
524
HeadObjectRequest headObjectRequest;
522
525
headObjectRequest.WithBucket (GetTestBucketName ())
@@ -532,6 +535,68 @@ TEST_F(TransferTests, TransferManager_SinglePartUploadTest)
532
535
Aws::Map<Aws::String, Aws::String>());
533
536
}
534
537
538
+ TEST_F (TransferTests, TransferManager_EmptyFileTest)
539
+ {
540
+ Aws::String emptyTestFileName = MakeFilePath (EMPTY_TEST_FILE_NAME);
541
+ ScopedTestFile testFile (emptyTestFileName, 0 , testString);
542
+
543
+ if (EmptyBucket (GetTestBucketName ()))
544
+ {
545
+ WaitForBucketToEmpty (GetTestBucketName ());
546
+ }
547
+
548
+ GetObjectRequest getObjectRequest;
549
+ getObjectRequest.SetBucket (GetTestBucketName ());
550
+ getObjectRequest.SetKey (EMPTY_FILE_KEY);
551
+
552
+ GetObjectOutcome getObjectOutcome = m_s3Client->GetObject (getObjectRequest);
553
+ EXPECT_FALSE (getObjectOutcome.IsSuccess ());
554
+
555
+ ListMultipartUploadsRequest listMultipartRequest;
556
+ listMultipartRequest.SetBucket (GetTestBucketName ());
557
+
558
+ AWS_LOGSTREAM_DEBUG (" TransferTests" , " *******************************" )
559
+
560
+
561
+ TransferManagerConfiguration transferManagerConfig (m_executor.get ());
562
+ transferManagerConfig.s3Client = m_s3Client;
563
+ auto transferManager = TransferManager::Create (transferManagerConfig);
564
+
565
+ std::shared_ptr<TransferHandle> requestPtr = transferManager->UploadFile (emptyTestFileName, GetTestBucketName (), EMPTY_FILE_KEY, " text/plain" , Aws::Map<Aws::String, Aws::String>());
566
+
567
+ ASSERT_EQ (true , requestPtr->ShouldContinue ());
568
+ ASSERT_EQ (TransferDirection::UPLOAD, requestPtr->GetTransferDirection ());
569
+ ASSERT_STREQ (emptyTestFileName.c_str (), requestPtr->GetTargetFilePath ().c_str ());
570
+ requestPtr->WaitUntilFinished ();
571
+
572
+ ASSERT_EQ (TransferStatus::COMPLETED, requestPtr->GetStatus ());
573
+ ASSERT_EQ (1u , requestPtr->GetCompletedParts ().size ());
574
+ ASSERT_EQ (0u , requestPtr->GetFailedParts ().size ());
575
+ ASSERT_EQ (0u , requestPtr->GetPendingParts ().size ());
576
+ ASSERT_EQ (0u , requestPtr->GetQueuedParts ().size ());
577
+
578
+ ASSERT_STREQ (" text/plain" , requestPtr->GetContentType ().c_str ());
579
+
580
+ uint64_t fileSize = requestPtr->GetBytesTotalSize ();
581
+ ASSERT_EQ (0u , fileSize);
582
+ ASSERT_EQ (fileSize, requestPtr->GetBytesTransferred ());
583
+
584
+ HeadObjectRequest headObjectRequest;
585
+ headObjectRequest.WithBucket (GetTestBucketName ())
586
+ .WithKey (EMPTY_FILE_KEY);
587
+
588
+ auto outcome = m_s3Client->HeadObject (headObjectRequest);
589
+
590
+ ASSERT_TRUE (outcome.IsSuccess ());
591
+ ASSERT_STREQ (requestPtr->GetContentType ().c_str (), outcome.GetResult ().GetContentType ().c_str ());
592
+
593
+ VerifyUploadedFile (*transferManager,
594
+ emptyTestFileName,
595
+ GetTestBucketName (),
596
+ EMPTY_FILE_KEY,
597
+ " text/plain" ,
598
+ Aws::Map<Aws::String, Aws::String>());
599
+ }
535
600
536
601
TEST_F (TransferTests, TransferManager_SmallTest)
537
602
{
@@ -576,8 +641,8 @@ TEST_F(TransferTests, TransferManager_SmallTest)
576
641
ASSERT_STREQ (" text/plain" , requestPtr->GetContentType ().c_str ());
577
642
578
643
uint64_t fileSize = requestPtr->GetBytesTotalSize ();
579
- ASSERT_TRUE (fileSize == (SMALL_TEST_SIZE / testStrLen * testStrLen));
580
- ASSERT_TRUE (fileSize == requestPtr->GetBytesTransferred ());
644
+ ASSERT_EQ (fileSize, (SMALL_TEST_SIZE / testStrLen * testStrLen));
645
+ ASSERT_EQ (fileSize, requestPtr->GetBytesTransferred ());
581
646
582
647
HeadObjectRequest headObjectRequest;
583
648
headObjectRequest.WithBucket (GetTestBucketName ())
@@ -637,8 +702,8 @@ TEST_F(TransferTests, TransferManager_ContentTest)
637
702
ASSERT_STREQ (" text/plain" , requestPtr->GetContentType ().c_str ());
638
703
639
704
uint64_t fileSize = requestPtr->GetBytesTotalSize ();
640
- ASSERT_TRUE (fileSize == strlen (CONTENT_TEST_FILE_TEXT));
641
- ASSERT_TRUE (fileSize == requestPtr->GetBytesTransferred ());
705
+ ASSERT_EQ (fileSize, strlen (CONTENT_TEST_FILE_TEXT));
706
+ ASSERT_EQ (fileSize, requestPtr->GetBytesTransferred ());
642
707
643
708
HeadObjectRequest headObjectRequest;
644
709
headObjectRequest.WithBucket (GetTestBucketName ())
@@ -821,8 +886,8 @@ TEST_F(TransferTests, TransferManager_MediumTest)
821
886
ASSERT_STREQ (" text/plain" , requestPtr->GetContentType ().c_str ());
822
887
823
888
uint64_t fileSize = requestPtr->GetBytesTotalSize ();
824
- ASSERT_TRUE (fileSize == MEDIUM_TEST_SIZE / testStrLen * testStrLen);
825
- ASSERT_TRUE (fileSize == requestPtr->GetBytesTransferred ());
889
+ ASSERT_EQ (fileSize, MEDIUM_TEST_SIZE / testStrLen * testStrLen);
890
+ ASSERT_EQ (fileSize, requestPtr->GetBytesTransferred ());
826
891
827
892
HeadObjectRequest headObjectRequest;
828
893
headObjectRequest.WithBucket (GetTestBucketName ())
@@ -886,8 +951,8 @@ TEST_F(TransferTests, TransferManager_BigTest)
886
951
ASSERT_STREQ (" text/plain" , requestPtr->GetContentType ().c_str ());
887
952
888
953
uint64_t fileSize = requestPtr->GetBytesTotalSize ();
889
- ASSERT_TRUE (fileSize == BIG_TEST_SIZE / testStrLen * testStrLen);
890
- ASSERT_TRUE (fileSize == requestPtr->GetBytesTransferred ());
954
+ ASSERT_EQ (fileSize, BIG_TEST_SIZE / testStrLen * testStrLen);
955
+ ASSERT_EQ (fileSize, requestPtr->GetBytesTransferred ());
891
956
892
957
HeadObjectRequest headObjectRequest;
893
958
headObjectRequest.WithBucket (GetTestBucketName ())
@@ -950,8 +1015,8 @@ TEST_F(TransferTests, TransferManager_UnicodeFileNameTest)
950
1015
ASSERT_STREQ (" text/plain" , requestPtr->GetContentType ().c_str ());
951
1016
952
1017
uint64_t fileSize = requestPtr->GetBytesTotalSize ();
953
- ASSERT_TRUE (fileSize == MEDIUM_TEST_SIZE / testStrLen * testStrLen);
954
- ASSERT_TRUE (fileSize == requestPtr->GetBytesTransferred ());
1018
+ ASSERT_EQ (fileSize, MEDIUM_TEST_SIZE / testStrLen * testStrLen);
1019
+ ASSERT_EQ (fileSize, requestPtr->GetBytesTransferred ());
955
1020
956
1021
HeadObjectRequest headObjectRequest;
957
1022
headObjectRequest.WithBucket (GetTestBucketName ())
@@ -1066,7 +1131,7 @@ TEST_F(TransferTests, TransferManager_CancelAndRetryUploadTest)
1066
1131
ASSERT_TRUE (completedPartsStayedCompletedDuringRetry);
1067
1132
ASSERT_STREQ (" text/plain" , requestPtr->GetContentType ().c_str ());
1068
1133
1069
- ASSERT_TRUE (fileSize == requestPtr->GetBytesTransferred ());
1134
+ ASSERT_EQ (fileSize, requestPtr->GetBytesTransferred ());
1070
1135
1071
1136
listMultipartOutcome = m_s3Client->ListMultipartUploads (listMultipartRequest);
1072
1137
@@ -1176,7 +1241,7 @@ TEST_F(TransferTests, TransferManager_AbortAndRetryUploadTest)
1176
1241
ASSERT_EQ (30u , requestPtr->GetCompletedParts ().size ());
1177
1242
ASSERT_TRUE (completionCheckDone);
1178
1243
ASSERT_FALSE (completedPartsStayedCompletedDuringRetry);
1179
- ASSERT_TRUE (fileSize == requestPtr->GetBytesTransferred ());
1244
+ ASSERT_EQ (fileSize, requestPtr->GetBytesTransferred ());
1180
1245
1181
1246
headObjectRequest.WithBucket (GetTestBucketName ())
1182
1247
.WithKey (CANCEL_FILE_KEY);
@@ -1227,7 +1292,7 @@ TEST_F(TransferTests, TransferManager_MultiPartContentTest)
1227
1292
1228
1293
ASSERT_EQ (TransferStatus::COMPLETED, requestPtr->GetStatus ());
1229
1294
ASSERT_EQ (PARTS_IN_MEDIUM_TEST, requestPtr->GetCompletedParts ().size ()); // > 1 part
1230
- ASSERT_TRUE (requestPtr->GetBytesTotalSize () == requestPtr->GetBytesTransferred ());
1295
+ ASSERT_EQ (requestPtr->GetBytesTotalSize (), requestPtr->GetBytesTransferred ());
1231
1296
1232
1297
VerifyUploadedFile (*transferManager,
1233
1298
multiPartContentFileName,
@@ -1267,7 +1332,7 @@ TEST_F(TransferTests, TransferManager_SinglePartUploadWithMetadataTest)
1267
1332
1268
1333
requestPtr->WaitUntilFinished ();
1269
1334
ASSERT_EQ (TransferStatus::COMPLETED, requestPtr->GetStatus ());
1270
- ASSERT_TRUE (requestPtr->GetBytesTotalSize () == requestPtr->GetBytesTransferred ());
1335
+ ASSERT_EQ (requestPtr->GetBytesTotalSize (), requestPtr->GetBytesTransferred ());
1271
1336
1272
1337
// Check the metadata matches
1273
1338
HeadObjectRequest headObjectRequest;
@@ -1332,7 +1397,7 @@ TEST_F(TransferTests, MultipartUploadWithMetadataTest)
1332
1397
requestPtr->WaitUntilFinished ();
1333
1398
}
1334
1399
ASSERT_EQ (TransferStatus::COMPLETED, requestPtr->GetStatus ());
1335
- ASSERT_TRUE (requestPtr->GetBytesTotalSize () == requestPtr->GetBytesTransferred ());
1400
+ ASSERT_EQ (requestPtr->GetBytesTotalSize (), requestPtr->GetBytesTransferred ());
1336
1401
1337
1402
// Check the metadata matches
1338
1403
HeadObjectRequest headObjectRequest;
@@ -1468,7 +1533,7 @@ TEST_F(TransferTests, TransferManager_CancelAndRetryDownloadTest)
1468
1533
ASSERT_TRUE (completedPartsStayedCompletedDuringRetry);
1469
1534
ASSERT_STREQ (" text/plain" , requestPtr->GetContentType ().c_str ());
1470
1535
1471
- ASSERT_TRUE (requestPtr->GetBytesTotalSize () == requestPtr->GetBytesTransferred ());
1536
+ ASSERT_EQ (requestPtr->GetBytesTotalSize (), requestPtr->GetBytesTransferred ());
1472
1537
1473
1538
ASSERT_TRUE (AreFilesSame (downloadFileName, cancelTestFileName));
1474
1539
}
@@ -1536,8 +1601,8 @@ TEST_F(TransferTests, TransferManager_MediumVersionedTest)
1536
1601
ASSERT_STREQ("text/plain", requestPtr->GetContentType().c_str());
1537
1602
1538
1603
uint64_t fileSize = requestPtr->GetBytesTotalSize();
1539
- ASSERT_TRUE (fileSize == MEDIUM_TEST_SIZE / testStrLen * testStrLen);
1540
- ASSERT_TRUE (fileSize == requestPtr->GetBytesTransferred());
1604
+ ASSERT_EQ (fileSize, MEDIUM_TEST_SIZE / testStrLen * testStrLen);
1605
+ ASSERT_EQ (fileSize, requestPtr->GetBytesTransferred());
1541
1606
1542
1607
HeadObjectRequest headObjectRequest;
1543
1608
headObjectRequest.WithBucket(GetTestBucketName())
0 commit comments