IteratableChecksumValidatorTest.cc 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  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("sha1",
  22. "898a81b8e0181280ae2ee1b81e269196d91e869a");
  23. DefaultDiskWriterHandle diskWriter = new DefaultDiskWriter();
  24. diskWriter->openExistingFile("chunkChecksumTestFile250.txt");
  25. IteratableChecksumValidator validator;
  26. validator.setDiskWriter(diskWriter);
  27. validator.setBitfield(&bitfieldMan);
  28. validator.setChecksum(checksum);
  29. validator.init();
  30. while(!validator.finished()) {
  31. validator.validateChunk();
  32. }
  33. CPPUNIT_ASSERT(bitfieldMan.isAllBitSet());
  34. }
  35. void IteratableChecksumValidatorTest::testValidate2() {
  36. BitfieldMan bitfieldMan(100, 250);
  37. bitfieldMan.setAllBit();
  38. ChecksumHandle checksum = new Checksum("sha1", "ffffffffffffffffffffffffffffffffffffffff");
  39. DefaultDiskWriterHandle diskWriter = new DefaultDiskWriter();
  40. diskWriter->openExistingFile("chunkChecksumTestFile250.txt");
  41. IteratableChecksumValidator validator;
  42. validator.setDiskWriter(diskWriter);
  43. validator.setBitfield(&bitfieldMan);
  44. validator.setChecksum(checksum);
  45. validator.init();
  46. while(!validator.finished()) {
  47. validator.validateChunk();
  48. }
  49. CPPUNIT_ASSERT(!bitfieldMan.isAllBitSet());
  50. }
  51. /*
  52. void IteratableChecksumValidatorTest::testValidate3() {
  53. BitfieldMan bitfieldMan(50, 250);
  54. bitfieldMan.setAllBit();
  55. Strings checksums;
  56. checksums.push_back("898a81b8e0181280ae2ee1b81e269196d91e869a");
  57. DefaultDiskWriterHandle diskWriter = new DefaultDiskWriter();
  58. diskWriter->openExistingFile("chunkChecksumTestFile250.txt");
  59. IteratableChecksumValidator validator;
  60. validator.setDiskWriter(diskWriter);
  61. validator.validate(&bitfieldMan, checksums, 250);
  62. CPPUNIT_ASSERT(bitfieldMan.isAllBitSet());
  63. checksums[0] = "ffffffffffffffffffffffffffffffffffffffff";
  64. validator.validate(&bitfieldMan, checksums, 250);
  65. CPPUNIT_ASSERT(!bitfieldMan.isBitSet(0));
  66. CPPUNIT_ASSERT(!bitfieldMan.isBitSet(1));
  67. CPPUNIT_ASSERT(!bitfieldMan.isBitSet(2));
  68. CPPUNIT_ASSERT(!bitfieldMan.isBitSet(3));
  69. CPPUNIT_ASSERT(!bitfieldMan.isBitSet(4));
  70. }
  71. void IteratableChecksumValidatorTest::testValidate4() {
  72. BitfieldMan bitfieldMan(70, 250);
  73. bitfieldMan.setAllBit();
  74. Strings checksums(&csArray[0], &csArray[3]);
  75. DefaultDiskWriterHandle diskWriter = new DefaultDiskWriter();
  76. diskWriter->openExistingFile("chunkChecksumTestFile250.txt");
  77. IteratableChecksumValidator validator;
  78. validator.setDiskWriter(diskWriter);
  79. validator.validate(&bitfieldMan, checksums, 100);
  80. CPPUNIT_ASSERT(bitfieldMan.isAllBitSet());
  81. checksums[1] = "ffffffffffffffffffffffffffffffffffffffff";
  82. validator.validate(&bitfieldMan, checksums, 100);
  83. CPPUNIT_ASSERT(bitfieldMan.isBitSet(0));
  84. CPPUNIT_ASSERT(!bitfieldMan.isBitSet(1));
  85. CPPUNIT_ASSERT(!bitfieldMan.isBitSet(2));
  86. CPPUNIT_ASSERT(bitfieldMan.isBitSet(3));
  87. }
  88. */