/src/leptonica/prog/fuzzing/compare_fuzzer.cc
Line | Count | Source |
1 | | #include "leptfuzz.h" |
2 | | |
3 | | extern "C" int |
4 | | LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) |
5 | 1.28k | { |
6 | 1.28k | if(size<3) return 0; |
7 | | |
8 | 1.28k | leptSetStdNullHandler(); |
9 | | |
10 | 1.28k | l_float32 fract; |
11 | 1.28k | l_int32 psame, comptype; |
12 | 1.28k | PIX *pixs1, *pixs2, *pixs3, *pixs4, *pixs5, *pixs6, *pixs7, *pixs8; |
13 | 1.28k | PIX *pixd1, *pixd2; |
14 | | |
15 | 1.28k | pixs1 = pixReadMemSpix(data, size); |
16 | 1.28k | if(pixs1==NULL) return 0; |
17 | | |
18 | 661 | pixs2 = pixCopy(NULL, pixs1); |
19 | 661 | if(pixs2==NULL) { |
20 | 0 | pixDestroy(&pixs1); |
21 | 0 | return 0; |
22 | 0 | } |
23 | | |
24 | 661 | pixs3 = pixConvertTo8(pixs1, 0); |
25 | 661 | pixs4 = pixConvertTo8(pixs2, 0); |
26 | | |
27 | 661 | pixGetPerceptualDiff(pixs1, pixs2, 1, 3, 20, &fract, &pixs5, &pixs6); |
28 | 661 | pixGetPerceptualDiff(pixs3, pixs4, 1, 3, 20, &fract, &pixs7, &pixs8); |
29 | | |
30 | 661 | pixEqualWithAlpha(pixs1, pixs2, 1, &psame); |
31 | 661 | pixEqualWithAlpha(pixs3, pixs4, 1, &psame); |
32 | | |
33 | 661 | pixd1 = NULL; |
34 | 661 | pixCompareBinary(pixs1, pixs2, L_COMPARE_XOR, &fract, &pixd1); |
35 | 661 | pixDestroy(&pixd1); |
36 | 661 | pixd2 = NULL; |
37 | 661 | pixCompareBinary(pixs1, pixs2, L_COMPARE_SUBTRACT, &fract, &pixd2); |
38 | 661 | pixDestroy(&pixd2); |
39 | | |
40 | 661 | pixDestroy(&pixs1); |
41 | 661 | pixDestroy(&pixs2); |
42 | 661 | pixDestroy(&pixs3); |
43 | 661 | pixDestroy(&pixs4); |
44 | 661 | pixDestroy(&pixs5); |
45 | 661 | pixDestroy(&pixs6); |
46 | 661 | pixDestroy(&pixs7); |
47 | 661 | pixDestroy(&pixs8); |
48 | 661 | return 0; |
49 | 661 | } |