123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171 |
- #include "ChunkChecksumValidator.h"
- #include "DefaultDiskWriter.h"
- #include <cppunit/extensions/HelperMacros.h>
- using namespace std;
- class ChunkChecksumValidatorTest:public CppUnit::TestFixture {
- CPPUNIT_TEST_SUITE(ChunkChecksumValidatorTest);
- CPPUNIT_TEST(testValidate);
- CPPUNIT_TEST(testValidate2);
- CPPUNIT_TEST(testValidate3);
- CPPUNIT_TEST(testValidate4);
- CPPUNIT_TEST_SUITE_END();
- private:
- static const char* csArray[];// = { "29b0e7878271645fffb7eec7db4a7473a1c00bc1",
- // "4df75a661cb7eb2733d9cdaa7f772eae3a4e2976",
- // "0a4ea2f7dd7c52ddf2099a444ab2184b4d341bdb" };
- public:
- void setUp() {
- }
- ChunkChecksumValidatorHandle
- createChunkChecksumValidator(const string& filename, BitfieldMan* bitfield, const ChunkChecksumHandle& chunkChecksum)
- {
- IteratableChunkChecksumValidatorHandle iv = new IteratableChunkChecksumValidator();
- DefaultDiskWriterHandle dw = new DefaultDiskWriter();
- dw->openExistingFile(filename);
- iv->setDiskWriter(dw);
- iv->setBitfield(bitfield);
- iv->setChunkChecksum(chunkChecksum);
- return new ChunkChecksumValidator(iv);
- }
- void testValidate();
- void testValidate2();
- void testValidate3();
- void testValidate4();
- };
- CPPUNIT_TEST_SUITE_REGISTRATION( ChunkChecksumValidatorTest );
- const char* ChunkChecksumValidatorTest::csArray[] =
- { "29b0e7878271645fffb7eec7db4a7473a1c00bc1",
- "4df75a661cb7eb2733d9cdaa7f772eae3a4e2976",
- "0a4ea2f7dd7c52ddf2099a444ab2184b4d341bdb" };
- void ChunkChecksumValidatorTest::testValidate() {
- BitfieldMan bitfieldMan(100, 250);
- bitfieldMan.setAllBit();
- Strings checksums(&csArray[0], &csArray[3]);
- ChunkChecksumValidatorHandle validator =
- createChunkChecksumValidator("chunkChecksumTestFile250.txt",
- &bitfieldMan, new ChunkChecksum("sha1",
- checksums,
- 100));
- validator->validate();
- CPPUNIT_ASSERT(bitfieldMan.isAllBitSet());
- checksums[1] = "ffffffffffffffffffffffffffffffffffffffff";
- validator =
- createChunkChecksumValidator("chunkChecksumTestFile250.txt",
- &bitfieldMan, new ChunkChecksum("sha1",
- checksums,
- 100));
- validator->validate();
- CPPUNIT_ASSERT(bitfieldMan.isBitSet(0));
- CPPUNIT_ASSERT(!bitfieldMan.isBitSet(1));
- CPPUNIT_ASSERT(bitfieldMan.isBitSet(2));
- }
- void ChunkChecksumValidatorTest::testValidate2() {
- BitfieldMan bitfieldMan(50, 250);
- bitfieldMan.setAllBit();
- Strings checksums(&csArray[0], &csArray[3]);
- ChunkChecksumValidatorHandle validator =
- createChunkChecksumValidator("chunkChecksumTestFile250.txt",
- &bitfieldMan, new ChunkChecksum("sha1",
- checksums,
- 100));
- validator->validate();
- CPPUNIT_ASSERT(bitfieldMan.isAllBitSet());
- checksums[1] = "ffffffffffffffffffffffffffffffffffffffff";
- validator =
- createChunkChecksumValidator("chunkChecksumTestFile250.txt",
- &bitfieldMan, new ChunkChecksum("sha1",
- checksums,
- 100));
- validator->validate();
- CPPUNIT_ASSERT(bitfieldMan.isBitSet(0));
- CPPUNIT_ASSERT(bitfieldMan.isBitSet(1));
- CPPUNIT_ASSERT(!bitfieldMan.isBitSet(2));
- CPPUNIT_ASSERT(!bitfieldMan.isBitSet(3));
- CPPUNIT_ASSERT(bitfieldMan.isBitSet(4));
- }
- void ChunkChecksumValidatorTest::testValidate3() {
- BitfieldMan bitfieldMan(50, 250);
- bitfieldMan.setAllBit();
- Strings checksums;
- checksums.push_back("898a81b8e0181280ae2ee1b81e269196d91e869a");
- ChunkChecksumValidatorHandle validator =
- createChunkChecksumValidator("chunkChecksumTestFile250.txt",
- &bitfieldMan, new ChunkChecksum("sha1",
- checksums,
- 250));
- validator->validate();
- CPPUNIT_ASSERT(bitfieldMan.isAllBitSet());
- checksums[0] = "ffffffffffffffffffffffffffffffffffffffff";
- validator =
- createChunkChecksumValidator("chunkChecksumTestFile250.txt",
- &bitfieldMan, new ChunkChecksum("sha1",
- checksums,
- 250));
- validator->validate();
- CPPUNIT_ASSERT(!bitfieldMan.isBitSet(0));
- CPPUNIT_ASSERT(!bitfieldMan.isBitSet(1));
- CPPUNIT_ASSERT(!bitfieldMan.isBitSet(2));
- CPPUNIT_ASSERT(!bitfieldMan.isBitSet(3));
- CPPUNIT_ASSERT(!bitfieldMan.isBitSet(4));
- }
- void ChunkChecksumValidatorTest::testValidate4() {
- BitfieldMan bitfieldMan(70, 250);
- bitfieldMan.setAllBit();
- Strings checksums(&csArray[0], &csArray[3]);
- ChunkChecksumValidatorHandle validator =
- createChunkChecksumValidator("chunkChecksumTestFile250.txt",
- &bitfieldMan, new ChunkChecksum("sha1",
- checksums,
- 100));
- validator->validate();
- CPPUNIT_ASSERT(bitfieldMan.isAllBitSet());
- checksums[1] = "ffffffffffffffffffffffffffffffffffffffff";
- validator =
- createChunkChecksumValidator("chunkChecksumTestFile250.txt",
- &bitfieldMan, new ChunkChecksum("sha1",
- checksums,
- 100));
- validator->validate();
- CPPUNIT_ASSERT(bitfieldMan.isBitSet(0));
- CPPUNIT_ASSERT(!bitfieldMan.isBitSet(1));
- CPPUNIT_ASSERT(!bitfieldMan.isBitSet(2));
- CPPUNIT_ASSERT(bitfieldMan.isBitSet(3));
- }
|