IteratableChecksumValidatorTest.cc 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. #include "IteratableChecksumValidator.h"
  2. #include "DefaultDiskWriter.h"
  3. #include <cppunit/extensions/HelperMacros.h>
  4. using namespace std;
  5. class IteratableChecksumValidatorTest:public CppUnit::TestFixture {
  6. CPPUNIT_TEST_SUITE(IteratableChecksumValidatorTest);
  7. CPPUNIT_TEST(testValidate);
  8. CPPUNIT_TEST(testValidate2);
  9. CPPUNIT_TEST_SUITE_END();
  10. private:
  11. public:
  12. void setUp() {
  13. }
  14. void testValidate();
  15. void testValidate2();
  16. };
  17. CPPUNIT_TEST_SUITE_REGISTRATION( IteratableChecksumValidatorTest );
  18. void IteratableChecksumValidatorTest::testValidate() {
  19. BitfieldMan bitfieldMan(100, 250);
  20. bitfieldMan.setAllBit();
  21. ChecksumHandle checksum = new Checksum("898a81b8e0181280ae2ee1b81e269196d91e869a", DIGEST_ALGO_SHA1);
  22. DefaultDiskWriterHandle diskWriter = new DefaultDiskWriter();
  23. diskWriter->openExistingFile("chunkChecksumTestFile250.txt");
  24. IteratableChecksumValidator validator;
  25. validator.setDiskWriter(diskWriter);
  26. validator.setBitfield(&bitfieldMan);
  27. validator.setChecksum(checksum);
  28. validator.init();
  29. while(!validator.finished()) {
  30. validator.validateChunk();
  31. }
  32. CPPUNIT_ASSERT(bitfieldMan.isAllBitSet());
  33. }
  34. void IteratableChecksumValidatorTest::testValidate2() {
  35. BitfieldMan bitfieldMan(100, 250);
  36. bitfieldMan.setAllBit();
  37. ChecksumHandle checksum = new Checksum("ffffffffffffffffffffffffffffffffffffffff", DIGEST_ALGO_SHA1);
  38. DefaultDiskWriterHandle diskWriter = new DefaultDiskWriter();
  39. diskWriter->openExistingFile("chunkChecksumTestFile250.txt");
  40. IteratableChecksumValidator validator;
  41. validator.setDiskWriter(diskWriter);
  42. validator.setBitfield(&bitfieldMan);
  43. validator.setChecksum(checksum);
  44. validator.init();
  45. while(!validator.finished()) {
  46. validator.validateChunk();
  47. }
  48. CPPUNIT_ASSERT(!bitfieldMan.isAllBitSet());
  49. }
  50. /*
  51. void IteratableChecksumValidatorTest::testValidate3() {
  52. BitfieldMan bitfieldMan(50, 250);
  53. bitfieldMan.setAllBit();
  54. Strings checksums;
  55. checksums.push_back("898a81b8e0181280ae2ee1b81e269196d91e869a");
  56. DefaultDiskWriterHandle diskWriter = new DefaultDiskWriter();
  57. diskWriter->openExistingFile("chunkChecksumTestFile250.txt");
  58. IteratableChecksumValidator validator;
  59. validator.setDiskWriter(diskWriter);
  60. validator.validate(&bitfieldMan, checksums, 250);
  61. CPPUNIT_ASSERT(bitfieldMan.isAllBitSet());
  62. checksums[0] = "ffffffffffffffffffffffffffffffffffffffff";
  63. validator.validate(&bitfieldMan, checksums, 250);
  64. CPPUNIT_ASSERT(!bitfieldMan.isBitSet(0));
  65. CPPUNIT_ASSERT(!bitfieldMan.isBitSet(1));
  66. CPPUNIT_ASSERT(!bitfieldMan.isBitSet(2));
  67. CPPUNIT_ASSERT(!bitfieldMan.isBitSet(3));
  68. CPPUNIT_ASSERT(!bitfieldMan.isBitSet(4));
  69. }
  70. void IteratableChecksumValidatorTest::testValidate4() {
  71. BitfieldMan bitfieldMan(70, 250);
  72. bitfieldMan.setAllBit();
  73. Strings checksums(&csArray[0], &csArray[3]);
  74. DefaultDiskWriterHandle diskWriter = new DefaultDiskWriter();
  75. diskWriter->openExistingFile("chunkChecksumTestFile250.txt");
  76. IteratableChecksumValidator validator;
  77. validator.setDiskWriter(diskWriter);
  78. validator.validate(&bitfieldMan, checksums, 100);
  79. CPPUNIT_ASSERT(bitfieldMan.isAllBitSet());
  80. checksums[1] = "ffffffffffffffffffffffffffffffffffffffff";
  81. validator.validate(&bitfieldMan, checksums, 100);
  82. CPPUNIT_ASSERT(bitfieldMan.isBitSet(0));
  83. CPPUNIT_ASSERT(!bitfieldMan.isBitSet(1));
  84. CPPUNIT_ASSERT(!bitfieldMan.isBitSet(2));
  85. CPPUNIT_ASSERT(bitfieldMan.isBitSet(3));
  86. }
  87. */