Index: import/cross/tar_generator_test.cc |
=================================================================== |
--- import/cross/tar_generator_test.cc (revision 21085) |
+++ import/cross/tar_generator_test.cc (working copy) |
@@ -63,15 +63,19 @@ |
const int kUserNameOffset = 265; |
const int kGroupNameOffset = 297; |
+const char *kLongLink = "././@LongLink"; |
const char *kDirName1 = "test/apples/"; |
const char *kDirName2 = "test/oranges/"; |
const char *kFileName1 = "test/apples/file1"; |
const char *kFileName2 = "test/apples/file2"; |
const char *kFileName3 = "test/oranges/file3"; |
+const char *kFileName4 = |
+ "ThisIsAFilenameLongerThen100CharsThisIsAFilenameLongerThen100Chars" |
+ "ThisIsAFilenameLongerThen100CharsThisIsAFilenameLongerThen100Chars"; |
// The first file is less than one block in size |
const char *kFileContents1 = |
- "The cellphone is the world’s most ubiquitous computer.\n" |
+ "The cellphone is the world most ubiquitous computer.\n" |
"The four billion cellphones in use around the globe carry personal\n" |
"information, provide access to the Web and are being used more and more\n" |
"to navigate the real world. And as cellphones change how we live,\n" |
@@ -87,11 +91,11 @@ |
"levels since the credit crisis erupted. Financial shares were battered.\n" |
"And rattled investors clamored to buy rainy-day investments like gold\n" |
"and Treasury debt. It was a global wave of selling spurred by rising\n" |
- "worries about how banks, automakers — entire countries — would fare\n" |
+ "worries about how banks, automakers entire countries would fare\n" |
"in a deepening global downturn.\n" |
- "'Nobody believes it’s going get better yet,' said Howard Silverblatt,\n" |
- "senior index analyst at Standard & Poor’s. 'Do you see that light at\n" |
- "the end of the tunnel? Any kind of light? Right now, it’s not there'\n" |
+ "'Nobody believes it&'s going get better yet,' said Howard Silverblatt,\n" |
+ "senior index analyst at Standard & Poors. 'Do you see that light at\n" |
+ "the end of the tunnel? Any kind of light? Right now, it's not there'\n" |
"yet.\n"; |
// The 3rd file takes one block |
@@ -117,6 +121,10 @@ |
VALIDATE_DIRECTORY_HEADER2, // 3rd file is in another directory |
VALIDATE_FILE_HEADER3, |
VALIDATE_FILE_DATA3, |
+ VALIDATE_FILE_LONGNAME_HEADER4, // 4th file has a long name. |
+ VALIDATE_FILE_LONGNAME_DATA4, |
+ VALIDATE_FILE_HEADER4, |
+ VALIDATE_FILE_DATA4, |
FINISHED |
}; |
@@ -213,6 +221,25 @@ |
ValidateData(memory_block_, kFileContents3); |
break; |
+ case VALIDATE_FILE_LONGNAME_HEADER4: |
+ ValidateHeader(memory_block_, kLongLink, strlen(kFileName4)); |
+ break; |
+ |
+ case VALIDATE_FILE_LONGNAME_DATA4: |
+ ValidateData(memory_block_, kFileName4); |
+ break; |
+ |
+ case VALIDATE_FILE_HEADER4: { |
+ String first_99_chars(kFileName4, 99); |
+ ValidateHeader(memory_block_, first_99_chars.c_str(), |
+ strlen(kFileContents3)); |
+ break; |
+ } |
+ |
+ case VALIDATE_FILE_DATA4: |
+ ValidateData(memory_block_, kFileContents3); |
+ break; |
+ |
case FINISHED: |
break; |
} |
@@ -316,7 +343,7 @@ |
// For now we only have directories '5' or normal files '0' |
int link_flag = header[kLinkFlagOffset]; |
- EXPECT_TRUE(link_flag == '0' || link_flag == '5'); |
+ EXPECT_TRUE(link_flag == '0' || link_flag == '5' || link_flag == 'L'); |
EXPECT_EQ(0, strcmp((const char*)header + kMagicOffset, "ustar ")); |
@@ -357,20 +384,24 @@ |
const int kFileLength2 = strlen(kFileContents2); |
const int kFileLength3 = strlen(kFileContents3); |
- generator.AddFile(kFileName1, kFileLength1); |
+ EXPECT_TRUE(generator.AddFile(kFileName1, kFileLength1)); |
MemoryReadStream file1_stream(reinterpret_cast<const uint8*>(kFileContents1), |
kFileLength1); |
generator.AddFileBytes(&file1_stream, kFileLength1); |
- generator.AddFile(kFileName2, kFileLength2); |
+ EXPECT_TRUE(generator.AddFile(kFileName2, kFileLength2)); |
MemoryReadStream file2_stream(reinterpret_cast<const uint8*>(kFileContents2), |
kFileLength2); |
generator.AddFileBytes(&file2_stream, kFileLength2); |
- generator.AddFile(kFileName3, kFileLength3); |
+ EXPECT_TRUE(generator.AddFile(kFileName3, kFileLength3)); |
MemoryReadStream file3_stream(reinterpret_cast<const uint8*>(kFileContents3), |
kFileLength3); |
generator.AddFileBytes(&file3_stream, kFileLength3); |
+ EXPECT_TRUE(generator.AddFile(kFileName4, kFileLength3)); |
+ MemoryReadStream file4_stream(reinterpret_cast<const uint8*>(kFileContents3), |
+ kFileLength3); |
+ generator.AddFileBytes(&file4_stream, kFileLength3); |
generator.Finalize(); |