compare_fuzzer.cc 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #include "leptfuzz.h"
  2. extern "C" int
  3. LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  4. {
  5. if(size<3) return 0;
  6. leptSetStdNullHandler();
  7. l_float32 fract;
  8. l_int32 psame, comptype;
  9. PIX *pixs1, *pixs2, *pixs3, *pixs4, *pixs5, *pixs6, *pixs7, *pixs8;
  10. PIX *pixd1, *pixd2;
  11. pixs1 = pixReadMemSpix(data, size);
  12. if(pixs1==NULL) return 0;
  13. pixs2 = pixCopy(NULL, pixs1);
  14. if(pixs2==NULL) {
  15. pixDestroy(&pixs1);
  16. return 0;
  17. }
  18. pixs3 = pixConvertTo8(pixs1, 0);
  19. pixs4 = pixConvertTo8(pixs2, 0);
  20. pixGetPerceptualDiff(pixs1, pixs2, 1, 3, 20, &fract, &pixs5, &pixs6);
  21. pixGetPerceptualDiff(pixs3, pixs4, 1, 3, 20, &fract, &pixs7, &pixs8);
  22. pixEqualWithAlpha(pixs1, pixs2, 1, &psame);
  23. pixEqualWithAlpha(pixs3, pixs4, 1, &psame);
  24. pixd1 = NULL;
  25. pixCompareBinary(pixs1, pixs2, L_COMPARE_XOR, &fract, &pixd1);
  26. pixDestroy(&pixd1);
  27. pixd2 = NULL;
  28. pixCompareBinary(pixs1, pixs2, L_COMPARE_SUBTRACT, &fract, &pixd2);
  29. pixDestroy(&pixd2);
  30. pixDestroy(&pixs1);
  31. pixDestroy(&pixs2);
  32. pixDestroy(&pixs3);
  33. pixDestroy(&pixs4);
  34. pixDestroy(&pixs5);
  35. pixDestroy(&pixs6);
  36. pixDestroy(&pixs7);
  37. pixDestroy(&pixs8);
  38. return 0;
  39. }