From 9a289b3cd6072055b2705b951456276df2f0794a Mon Sep 17 00:00:00 2001 From: Sasha Smundak Date: Tue, 26 Jul 2016 07:56:44 +0000 Subject: Add the method to set zip64 extension attribute. Eliminate useless test case class in zip_headers_test. -- MOS_MIGRATED_REVID=128444529 --- src/tools/singlejar/zip_headers.h | 1 + src/tools/singlejar/zip_headers_test.cc | 33 +++++++++++++++++++++------------ 2 files changed, 22 insertions(+), 12 deletions(-) (limited to 'src/tools/singlejar') diff --git a/src/tools/singlejar/zip_headers.h b/src/tools/singlejar/zip_headers.h index f85e24f011..cf259fe7a6 100644 --- a/src/tools/singlejar/zip_headers.h +++ b/src/tools/singlejar/zip_headers.h @@ -104,6 +104,7 @@ class Zip64ExtraField { // The value of i-th attribute uint64_t attr64(int index) const { return le64toh(attr_[index]); } + void attr64(int index, uint64_t v) { attr_[index] = htole64(v); } private: uint16_t tag_; diff --git a/src/tools/singlejar/zip_headers_test.cc b/src/tools/singlejar/zip_headers_test.cc index 7a181c7c46..7ec18dc22d 100644 --- a/src/tools/singlejar/zip_headers_test.cc +++ b/src/tools/singlejar/zip_headers_test.cc @@ -18,12 +18,10 @@ namespace { -class ZipHeadersTest : public ::testing::Test { -}; +const uint8_t kPoison = 0xFB; -TEST_F(ZipHeadersTest, LocalHeader) { +TEST(ZipHeadersTest, LocalHeader) { uint8_t bytes[256]; - const uint8_t kPoison = 0xFB; memset(bytes, kPoison, sizeof(bytes)); LH *lh = reinterpret_cast(bytes); @@ -93,9 +91,8 @@ TEST_F(ZipHeadersTest, LocalHeader) { EXPECT_EQ(kPoison, *lh->data()); } -TEST_F(ZipHeadersTest, CentralDirectoryHeader) { +TEST(ZipHeadersTest, CentralDirectoryHeader) { uint8_t bytes[256]; - const uint8_t kPoison = 0xFB; memset(bytes, kPoison, sizeof(bytes)); CDH *cdh = reinterpret_cast(bytes); @@ -207,9 +204,8 @@ TEST_F(ZipHeadersTest, CentralDirectoryHeader) { EXPECT_EQ(42, cdh->local_header_offset()); } -TEST_F(ZipHeadersTest, ECD64Locator) { +TEST(ZipHeadersTest, ECD64Locator) { uint8_t bytes[256]; - const uint8_t kPoison = 0xFB; memset(bytes, kPoison, sizeof(bytes)); ECD64Locator *ecd64loc = reinterpret_cast(bytes); @@ -223,9 +219,8 @@ TEST_F(ZipHeadersTest, ECD64Locator) { EXPECT_EQ(213456, ecd64loc->total_disks()); } -TEST_F(ZipHeadersTest, Zip64EndOfCentralDirectory) { +TEST(ZipHeadersTest, Zip64EndOfCentralDirectory) { uint8_t bytes[256]; - const uint8_t kPoison = 0xFB; memset(bytes, kPoison, sizeof(bytes)); ECD64 *ecd64 = reinterpret_cast(bytes); @@ -251,9 +246,8 @@ TEST_F(ZipHeadersTest, Zip64EndOfCentralDirectory) { EXPECT_EQ(11000000000, ecd64->cen_offset()); } -TEST_F(ZipHeadersTest, EndOfCentralDirectory) { +TEST(ZipHeadersTest, EndOfCentralDirectory) { uint8_t bytes[256]; - const uint8_t kPoison = 0xFB; memset(bytes, kPoison, sizeof(bytes)); ECD64Locator *ecd64loc = reinterpret_cast(bytes); ECD *ecd = reinterpret_cast(bytes + sizeof(ECD64Locator)); @@ -287,5 +281,20 @@ TEST_F(ZipHeadersTest, EndOfCentralDirectory) { EXPECT_EQ(9876543210, ecd->ecd64_offset()); } +TEST(ZipHeadersTest, Zip64ExtraFieldTest) { + uint8_t bytes[256]; + memset(bytes, kPoison, sizeof(bytes)); + Zip64ExtraField *z64 = reinterpret_cast(bytes); + + z64->signature(); + EXPECT_TRUE(z64->is()); + z64->payload_size(16); + z64->attr64(0, 9876543210); + EXPECT_EQ(9876543210, z64->attr64(0)); + z64->attr64(1, 8976543210); + EXPECT_EQ(8976543210, z64->attr64(1)); + EXPECT_EQ(kPoison, bytes[z64->size()]); +} + } // namespace -- cgit v1.2.3