Lower the size allocated in the "corrupted input" unit test from 256 MB

to 2 MB. This fixes issues with running the unit test on platforms with
little RAM (e.g. some ARM boards).

Also, reactivate the 2 MB test for 64-bit platforms; there's no good
reason why it shouldn't be.

R=sanjay


git-svn-id: https://snappy.googlecode.com/svn/trunk@58 03e5f5b5-db94-4691-08a0-1a8bf15f6143
This commit is contained in:
snappy.mirrorbot@gmail.com
2012-02-11 22:11:22 +00:00
parent e750dc0f05
commit f2e184f638

View File

@@ -591,22 +591,24 @@ TYPED_TEST(CorruptedTest, VerifyCorrupted) {
// Another security check; check a crazy big length can't DoS us with an // Another security check; check a crazy big length can't DoS us with an
// over-allocation. // over-allocation.
// Currently this is done only for 32-bit builds. On 64-bit builds, // Currently this is done only for 32-bit builds. On 64-bit builds,
// where 3GBytes might be an acceptable allocation size, Uncompress() // where 3 GB might be an acceptable allocation size, Uncompress()
// attempts to decompress, and sometimes causes the test to run out of // attempts to decompress, and sometimes causes the test to run out of
// memory. // memory.
dest[0] = dest[1] = dest[2] = dest[3] = 0xff; dest[0] = dest[1] = dest[2] = dest[3] = 0xff;
// This decodes to a really large size, i.e., 3221225471 bytes // This decodes to a really large size, i.e., about 3 GB.
dest[4] = 'k'; dest[4] = 'k';
CHECK(!IsValidCompressedBuffer(TypeParam(dest))); CHECK(!IsValidCompressedBuffer(TypeParam(dest)));
CHECK(!Uncompress(TypeParam(dest), &uncmp)); CHECK(!Uncompress(TypeParam(dest), &uncmp));
dest[0] = dest[1] = dest[2] = 0xff;
dest[3] = 0x7f;
CHECK(!IsValidCompressedBuffer(TypeParam(dest)));
CHECK(!Uncompress(TypeParam(dest), &uncmp));
} else { } else {
LOG(WARNING) << "Crazy decompression lengths not checked on 64-bit build"; LOG(WARNING) << "Crazy decompression lengths not checked on 64-bit build";
} }
// This decodes to about 2 MB; much smaller, but should still fail.
dest[0] = dest[1] = dest[2] = 0xff;
dest[3] = 0x00;
CHECK(!IsValidCompressedBuffer(TypeParam(dest)));
CHECK(!Uncompress(TypeParam(dest), &uncmp));
// try reading stuff in from a bad file. // try reading stuff in from a bad file.
for (int i = 1; i <= 3; ++i) { for (int i = 1; i <= 3; ++i) {
string data = ReadTestDataFile(StringPrintf("baddata%d.snappy", i).c_str()); string data = ReadTestDataFile(StringPrintf("baddata%d.snappy", i).c_str());