NAME=rz-find -X -s
TOOL=rz-find
ARGS=-X -s 250382 bins/elf/ioli/crackme0x00
EXPECT=<<EOF
0x58f
[35m- offset -   0 1  2 3  4 5  6 7  8 9  A B  C D  E F  0123456789ABCDEF
[0m[32m0x0000058f[0m  [35m32[0m[35m35[0m [35m30[0m[35m33[0m [35m38[0m[35m32[0m [32m00[0m[35m49[0m [35m6e[0m[35m76[0m [35m61[0m[35m6c[0m [35m69[0m[35m64[0m [35m20[0m[35m50[0m  [35m2[0m[35m5[0m[35m0[0m[35m3[0m[35m8[0m[35m2[0m[32m.[0m[35mI[0m[35mn[0m[35mv[0m[35ma[0m[35ml[0m[35mi[0m[35md[0m[35m [0m[35mP[0m
[32m0x0000059f[0m  [35m61[0m[35m73[0m [35m73[0m[35m77[0m [35m6f[0m[35m72[0m [35m64[0m[35m21[0m [37m0a[0m[32m00[0m [35m50[0m[35m61[0m [35m73[0m[35m73[0m [35m77[0m[35m6f[0m  [35ma[0m[35ms[0m[35ms[0m[35mw[0m[35mo[0m[35mr[0m[35md[0m[35m![0m[37m.[0m[32m.[0m[35mP[0m[35ma[0m[35ms[0m[35ms[0m[35mw[0m[35mo[0m
[32m0x000005af[0m  [35m72[0m[35m64[0m [35m20[0m[35m4f[0m [35m4b[0m[35m20[0m [35m3a[0m[35m29[0m [37m0a[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m  [35mr[0m[35md[0m[35m [0m[35mO[0m[35mK[0m[35m [0m[35m:[0m[35m)[0m[37m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m
[32m0x000005bf[0m  [32m00[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m  [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m
[32m0x000005cf[0m  [32m00[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m       [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m
EOF
RUN

NAME=rz-find -X -s
TOOL=rz-find
ARGS=-X -s 250382 bins/elf/ioli/crackme0x00
EXPECT=<<EOF
0x58f
[35m- offset -   0 1  2 3  4 5  6 7  8 9  A B  C D  E F  0123456789ABCDEF
[0m[32m0x0000058f[0m  [35m32[0m[35m35[0m [35m30[0m[35m33[0m [35m38[0m[35m32[0m [32m00[0m[35m49[0m [35m6e[0m[35m76[0m [35m61[0m[35m6c[0m [35m69[0m[35m64[0m [35m20[0m[35m50[0m  [35m2[0m[35m5[0m[35m0[0m[35m3[0m[35m8[0m[35m2[0m[32m.[0m[35mI[0m[35mn[0m[35mv[0m[35ma[0m[35ml[0m[35mi[0m[35md[0m[35m [0m[35mP[0m
[32m0x0000059f[0m  [35m61[0m[35m73[0m [35m73[0m[35m77[0m [35m6f[0m[35m72[0m [35m64[0m[35m21[0m [37m0a[0m[32m00[0m [35m50[0m[35m61[0m [35m73[0m[35m73[0m [35m77[0m[35m6f[0m  [35ma[0m[35ms[0m[35ms[0m[35mw[0m[35mo[0m[35mr[0m[35md[0m[35m![0m[37m.[0m[32m.[0m[35mP[0m[35ma[0m[35ms[0m[35ms[0m[35mw[0m[35mo[0m
[32m0x000005af[0m  [35m72[0m[35m64[0m [35m20[0m[35m4f[0m [35m4b[0m[35m20[0m [35m3a[0m[35m29[0m [37m0a[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m  [35mr[0m[35md[0m[35m [0m[35mO[0m[35mK[0m[35m [0m[35m:[0m[35m)[0m[37m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m
[32m0x000005bf[0m  [32m00[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m  [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m
[32m0x000005cf[0m  [32m00[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m       [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m
EOF
RUN

NAME=rz-find -f 0x00000000 -t 0x00000590 -X -s
TOOL=rz-find
ARGS=-f 0x00000000 -t 0x00001000 -X -s 250382 bins/elf/ioli/crackme0x00
EXPECT=<<EOF
0x58f
[35m- offset -   0 1  2 3  4 5  6 7  8 9  A B  C D  E F  0123456789ABCDEF
[0m[32m0x0000058f[0m  [35m32[0m[35m35[0m [35m30[0m[35m33[0m [35m38[0m[35m32[0m [32m00[0m[35m49[0m [35m6e[0m[35m76[0m [35m61[0m[35m6c[0m [35m69[0m[35m64[0m [35m20[0m[35m50[0m  [35m2[0m[35m5[0m[35m0[0m[35m3[0m[35m8[0m[35m2[0m[32m.[0m[35mI[0m[35mn[0m[35mv[0m[35ma[0m[35ml[0m[35mi[0m[35md[0m[35m [0m[35mP[0m
[32m0x0000059f[0m  [35m61[0m[35m73[0m [35m73[0m[35m77[0m [35m6f[0m[35m72[0m [35m64[0m[35m21[0m [37m0a[0m[32m00[0m [35m50[0m[35m61[0m [35m73[0m[35m73[0m [35m77[0m[35m6f[0m  [35ma[0m[35ms[0m[35ms[0m[35mw[0m[35mo[0m[35mr[0m[35md[0m[35m![0m[37m.[0m[32m.[0m[35mP[0m[35ma[0m[35ms[0m[35ms[0m[35mw[0m[35mo[0m
[32m0x000005af[0m  [35m72[0m[35m64[0m [35m20[0m[35m4f[0m [35m4b[0m[35m20[0m [35m3a[0m[35m29[0m [37m0a[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m  [35mr[0m[35md[0m[35m [0m[35mO[0m[35mK[0m[35m [0m[35m:[0m[35m)[0m[37m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m
[32m0x000005bf[0m  [32m00[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m  [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m
[32m0x000005cf[0m  [32m00[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m       [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m
EOF
RUN

NAME=rz-find -f 0x00010000 -t 0x00020000 -X -s
TOOL=rz-find
ARGS=-f 0x00010000 -t 0x00020000 -X -s 250382 bins/elf/ioli/crackme0x00
EXIT_STATUS=1
EXPECT=
RUN

NAME=rz-find -X -x
TOOL=rz-find
ARGS=-X -x 323530333832 bins/elf/ioli/crackme0x00
EXPECT=<<EOF
0x58f
[35m- offset -   0 1  2 3  4 5  6 7  8 9  A B  C D  E F  0123456789ABCDEF
[0m[32m0x0000058f[0m  [35m32[0m[35m35[0m [35m30[0m[35m33[0m [35m38[0m[35m32[0m [32m00[0m[35m49[0m [35m6e[0m[35m76[0m [35m61[0m[35m6c[0m [35m69[0m[35m64[0m [35m20[0m[35m50[0m  [35m2[0m[35m5[0m[35m0[0m[35m3[0m[35m8[0m[35m2[0m[32m.[0m[35mI[0m[35mn[0m[35mv[0m[35ma[0m[35ml[0m[35mi[0m[35md[0m[35m [0m[35mP[0m
[32m0x0000059f[0m  [35m61[0m[35m73[0m [35m73[0m[35m77[0m [35m6f[0m[35m72[0m [35m64[0m[35m21[0m [37m0a[0m[32m00[0m [35m50[0m[35m61[0m [35m73[0m[35m73[0m [35m77[0m[35m6f[0m  [35ma[0m[35ms[0m[35ms[0m[35mw[0m[35mo[0m[35mr[0m[35md[0m[35m![0m[37m.[0m[32m.[0m[35mP[0m[35ma[0m[35ms[0m[35ms[0m[35mw[0m[35mo[0m
[32m0x000005af[0m  [35m72[0m[35m64[0m [35m20[0m[35m4f[0m [35m4b[0m[35m20[0m [35m3a[0m[35m29[0m [37m0a[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m  [35mr[0m[35md[0m[35m [0m[35mO[0m[35mK[0m[35m [0m[35m:[0m[35m)[0m[37m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m
[32m0x000005bf[0m  [32m00[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m  [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m
[32m0x000005cf[0m  [32m00[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m       [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m
EOF
RUN

NAME=rz-find -X -x with nibbles masked
TOOL=rz-find
ARGS=-X -x caf.bab. bins/java/Hello.class
EXPECT=<<EOF
0x0
[35m- offset -   0 1  2 3  4 5  6 7  8 9  A B  C D  E F  0123456789ABCDEF
[0m[32m0x00000000[0m  [37mca[0m[37mfe[0m [37mba[0m[37mbe[0m [32m00[0m[32m00[0m [32m00[0m[35m32[0m [32m00[0m[35m33[0m [37m0a[0m[32m00[0m [37m0e[0m[32m00[0m [37m1b[0m[37m09[0m  [37m.[0m[37m.[0m[37m.[0m[37m.[0m[32m.[0m[32m.[0m[32m.[0m[35m2[0m[32m.[0m[35m3[0m[37m.[0m[32m.[0m[37m.[0m[32m.[0m[37m.[0m[37m.[0m
[32m0x00000010[0m  [32m00[0m[37m0a[0m [32m00[0m[37m1c[0m [37m09[0m[32m00[0m [37m1d[0m[32m00[0m [37m1e[0m[37m07[0m [32m00[0m[37m1f[0m [37m0a[0m[32m00[0m [37m04[0m[32m00[0m  [32m.[0m[37m.[0m[32m.[0m[37m.[0m[37m.[0m[32m.[0m[37m.[0m[32m.[0m[37m.[0m[37m.[0m[32m.[0m[37m.[0m[37m.[0m[32m.[0m[37m.[0m[32m.[0m
[32m0x00000020[0m  [37m1b[0m[37m08[0m [32m00[0m[35m20[0m [37m0a[0m[32m00[0m [37m04[0m[32m00[0m [35m21[0m[37m0a[0m [32m00[0m[37m04[0m [32m00[0m[35m22[0m [37m0a[0m[32m00[0m  [37m.[0m[37m.[0m[32m.[0m[35m [0m[37m.[0m[32m.[0m[37m.[0m[32m.[0m[35m![0m[37m.[0m[32m.[0m[37m.[0m[32m.[0m[35m"[0m[37m.[0m[32m.[0m
[32m0x00000030[0m  [35m23[0m[32m00[0m [35m24[0m[37m07[0m [32m00[0m[35m25[0m [37m08[0m[32m00[0m [35m26[0m[37m0a[0m [32m00[0m[37m0a[0m [32m00[0m[35m27[0m [37m0a[0m[32m00[0m  [35m#[0m[32m.[0m[35m$[0m[37m.[0m[32m.[0m[35m%[0m[37m.[0m[32m.[0m[35m&[0m[37m.[0m[32m.[0m[37m.[0m[32m.[0m[35m'[0m[37m.[0m[32m.[0m
[32m0x00000040[0m  [37m0a[0m[32m00[0m [35m28[0m[37m07[0m [32m00[0m[35m29[0m [37m01[0m[32m00[0m [37m03[0m[35m77[0m [35m68[0m[35m6f[0m [37m01[0m[32m00[0m       [37m.[0m[32m.[0m[35m([0m[37m.[0m[32m.[0m[35m)[0m[37m.[0m[32m.[0m[37m.[0m[35mw[0m[35mh[0m[35mo[0m[37m.[0m[32m.[0m
EOF
RUN

NAME=rz-find -X -x with bin mask
TOOL=rz-find
ARGS=-X -x caf3bab3 -M fff0fff0 bins/java/Hello.class
EXPECT=<<EOF
0x0
[35m- offset -   0 1  2 3  4 5  6 7  8 9  A B  C D  E F  0123456789ABCDEF
[0m[32m0x00000000[0m  [37mca[0m[37mfe[0m [37mba[0m[37mbe[0m [32m00[0m[32m00[0m [32m00[0m[35m32[0m [32m00[0m[35m33[0m [37m0a[0m[32m00[0m [37m0e[0m[32m00[0m [37m1b[0m[37m09[0m  [37m.[0m[37m.[0m[37m.[0m[37m.[0m[32m.[0m[32m.[0m[32m.[0m[35m2[0m[32m.[0m[35m3[0m[37m.[0m[32m.[0m[37m.[0m[32m.[0m[37m.[0m[37m.[0m
[32m0x00000010[0m  [32m00[0m[37m0a[0m [32m00[0m[37m1c[0m [37m09[0m[32m00[0m [37m1d[0m[32m00[0m [37m1e[0m[37m07[0m [32m00[0m[37m1f[0m [37m0a[0m[32m00[0m [37m04[0m[32m00[0m  [32m.[0m[37m.[0m[32m.[0m[37m.[0m[37m.[0m[32m.[0m[37m.[0m[32m.[0m[37m.[0m[37m.[0m[32m.[0m[37m.[0m[37m.[0m[32m.[0m[37m.[0m[32m.[0m
[32m0x00000020[0m  [37m1b[0m[37m08[0m [32m00[0m[35m20[0m [37m0a[0m[32m00[0m [37m04[0m[32m00[0m [35m21[0m[37m0a[0m [32m00[0m[37m04[0m [32m00[0m[35m22[0m [37m0a[0m[32m00[0m  [37m.[0m[37m.[0m[32m.[0m[35m [0m[37m.[0m[32m.[0m[37m.[0m[32m.[0m[35m![0m[37m.[0m[32m.[0m[37m.[0m[32m.[0m[35m"[0m[37m.[0m[32m.[0m
[32m0x00000030[0m  [35m23[0m[32m00[0m [35m24[0m[37m07[0m [32m00[0m[35m25[0m [37m08[0m[32m00[0m [35m26[0m[37m0a[0m [32m00[0m[37m0a[0m [32m00[0m[35m27[0m [37m0a[0m[32m00[0m  [35m#[0m[32m.[0m[35m$[0m[37m.[0m[32m.[0m[35m%[0m[37m.[0m[32m.[0m[35m&[0m[37m.[0m[32m.[0m[37m.[0m[32m.[0m[35m'[0m[37m.[0m[32m.[0m
[32m0x00000040[0m  [37m0a[0m[32m00[0m [35m28[0m[37m07[0m [32m00[0m[35m29[0m [37m01[0m[32m00[0m [37m03[0m[35m77[0m [35m68[0m[35m6f[0m [37m01[0m[32m00[0m       [37m.[0m[32m.[0m[35m([0m[37m.[0m[32m.[0m[35m)[0m[37m.[0m[32m.[0m[37m.[0m[35mw[0m[35mh[0m[35mo[0m[37m.[0m[32m.[0m
EOF
RUN

NAME=rz-find -h
FILE==
REGEXP_FILTER_OUT=(Usage:)
CMDS=!rz-find -h
EXPECT=<<EOF
Usage:
EOF
RUN

NAME=rz-find -v
FILE==
REGEXP_FILTER_OUT=(commit:)
CMDS=!rz-find -v
EXPECT=<<EOF
commit:
EOF
RUN

NAME=rz-find can't open
TOOL=rz-find
ARGS=-n  -f 0x00010000 -t 0x00020000 -X -s 250382 incorrect_file
EXIT_STATUS=1
EXPECT_ERR=<<EOF
Cannot open file 'incorrect_file'
EOF
RUN

NAME=rz-find
TOOL=rz-find
ARGS=-s 250382 bins/elf/ioli/crackme0x00
EXPECT=<<EOF
0x58f
EOF
RUN

NAME=rz-find -i
TOOL=rz-find
ARGS=-i bins/elf/ioli/crackme0x00
EXPECT=<<EOF
0x00000000 ELF 32-bit LSB executable, Intel 80386, version 1
EOF
RUN

NAME=rz-find -m
TOOL=rz-find
ARGS=-m bins/elf/ioli/crackme0x00
EXPECT=<<EOF
0x00000000 0 hit.magic.0 ELF 32-bit LSB executable, Intel 80386, version 1
EOF
RUN

NAME=rz-find -e
FILE==
BROKEN=1
CMDS=!!rz-find -e 2503?2 bins/elf/ioli/crackme0x00
EXPECT=<<EOF
0x58f
[35m- offset -   0 1  2 3  4 5  6 7  8 9  A B  C D  E F  0123456789ABCDEF
[0m[32m0x0000058f[0m  [35m32[0m[35m35[0m [35m30[0m[35m33[0m [35m38[0m[35m32[0m [32m00[0m[35m49[0m [35m6e[0m[35m76[0m [35m61[0m[35m6c[0m [35m69[0m[35m64[0m [35m20[0m[35m50[0m  [35m2[0m[35m5[0m[35m0[0m[35m3[0m[35m8[0m[35m2[0m[32m.[0m[35mI[0m[35mn[0m[35mv[0m[35ma[0m[35ml[0m[35mi[0m[35md[0m[35m [0m[35mP[0m
[32m0x0000059f[0m  [35m61[0m[35m73[0m [35m73[0m[35m77[0m [35m6f[0m[35m72[0m [35m64[0m[35m21[0m [37m0a[0m[32m00[0m [35m50[0m[35m61[0m [35m73[0m[35m73[0m [35m77[0m[35m6f[0m  [35ma[0m[35ms[0m[35ms[0m[35mw[0m[35mo[0m[35mr[0m[35md[0m[35m![0m[37m.[0m[32m.[0m[35mP[0m[35ma[0m[35ms[0m[35ms[0m[35mw[0m[35mo[0m
[32m0x000005af[0m  [35m72[0m[35m64[0m [35m20[0m[35m4f[0m [35m4b[0m[35m20[0m [35m3a[0m[35m29[0m [37m0a[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m  [35mr[0m[35md[0m[35m [0m[35mO[0m[35mK[0m[35m [0m[35m:[0m[35m)[0m[37m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m
[32m0x000005bf[0m  [32m00[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m  [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m
[32m0x000005cf[0m  [32m00[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m [32m00[0m[32m00[0m       [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m
EOF
RUN

NAME=rz-find -E
TOOL=rz-find
ARGS=-E echo -s Password bins/elf/ioli/crackme0x00
EXPECT=<<EOF
0x581
bins/elf/ioli/crackme0x00
0x59e
bins/elf/ioli/crackme0x00
0x5a9
bins/elf/ioli/crackme0x00
EOF
RUN

NAME=rz-find -R 
FILE==
CMDS=!rz-find -s "GCC" -R "e scr.color=0 ; px 1" bins/elf/ioli/crackme0x00
EXPECT=<<EOF
0x101d
- offset -   0 1  2 3  4 5  6 7  8 9  A B  C D  E F  0123456789ABCDEF
0x0000101d  ff                                       .
0x105c
- offset -   0 1  2 3  4 5  6 7  8 9  A B  C D  E F  0123456789ABCDEF
0x0000105c  ff                                       .
0x109b
- offset -   0 1  2 3  4 5  6 7  8 9  A B  C D  E F  0123456789ABCDEF
0x0000109b  ff                                       .
0x10da
- offset -   0 1  2 3  4 5  6 7  8 9  A B  C D  E F  0123456789ABCDEF
0x000010da  ff                                       .
0x1119
- offset -   0 1  2 3  4 5  6 7  8 9  A B  C D  E F  0123456789ABCDEF
0x00001119  ff                                       .
0x1158
- offset -   0 1  2 3  4 5  6 7  8 9  A B  C D  E F  0123456789ABCDEF
0x00001158  ff                                       .
0x1197
- offset -   0 1  2 3  4 5  6 7  8 9  A B  C D  E F  0123456789ABCDEF
0x00001197  ff                                       .
EOF
RUN

NAME=rz-find -b 0xa
TOOL=rz-find
ARGS=-s 250382 -b 0xa bins/elf/ioli/crackme0x00
EXPECT=<<EOF
0x58f
EOF
RUN

NAME=rz-find -a 2 -b 0x3
TOOL=rz-find
ARGS=-a 2 -s 250382 -b 0x3 bins/elf/ioli/crackme0x00
EXPECT=
RUN

NAME=rz-find -q
TOOL=rz-find
ARGS=-q -s 250382 bins/elf/ioli/crackme0x00
EXPECT=<<EOF
0x58f
EOF
RUN

NAME=rz-find -z 250382
TOOL=rz-find
ARGS=-z -s 250382 bins/elf/ioli/crackme0x00
EXPECT=<<EOF
0x58f
EOF
RUN

NAME=rz-find -w ascii
TOOL=rz-find
ARGS=-w wide bins/pe/testapp-msvc64.exe
EXPECT=<<EOF
0x1481a
0x14842
EOF
RUN

NAME=rz-find -w U+00ff < utf8 < U+10000
TOOL=rz-find
ARGS=-w واسع bins/pe/testapp-msvc64.exe
EXPECT=<<EOF
0x14864
EOF
RUN

NAME=rz-find -w utf8 >= U+10000
TOOL=rz-find
ARGS=-w 𐍈 bins/elf/strenc
EXPECT=<<EOF
0x22ac
EOF
RUN

NAME=rz-find -S ascii
TOOL=rz-find
ARGS=-S QueryPerformanceCounter bins/pe/testapp-msvc64.exe
EXPECT=<<EOF
paddr: 0x0000c000 vaddr: 0x14000d000 type: FUNC QueryPerformanceCounter
EOF
RUN

NAME=rz-find -I ascii
TOOL=rz-find
ARGS=-I QueryPerformanceCounter bins/pe/testapp-msvc64.exe
EXPECT=<<EOF
ordinal: 1 QueryPerformanceCounter
EOF
RUN

NAME=rz-find -Z
TOOL=rz-find
ARGS=-Z -s 250382 bins/elf/ioli/crackme0x00
EXPECT=<<EOF
0x58f 250382
EOF
RUN

NAME=rz-find -F
TOOL=rz-find
ARGS=-F scripts/keyword bins/mach0/FileDP
EXPECT=<<EOF
0x4e9
0x6f5
0x6f9
0x706
0x729
0x72d
0x73b
0x75d
0x761
0x76d
0x3473
0x348f
0x34ab
EOF
RUN

NAME=rz-find multiple files
TOOL=rz-find
ARGS=-s README bins/arm/README bins/arm/README
EXPECT=<<EOF
File: bins/arm/README
0x0
File: bins/arm/README
0x0
EOF
RUN

NAME=rz-find recursive
TOOL=rz-find
ARGS=-q -s README bins/arm
EXPECT=<<EOF
0x0
EOF
RUN

NAME=rz-find -E with echo as a command
TOOL=rz-find
ARGS=-s README -E echo bins/arm
REGEXP_FILTER_OUT=README
EXPECT=<<EOF
README
EOF
RUN

NAME=rz-find -V verbose flag single file
TOOL=rz-find
ARGS=-V -s 250382 bins/elf/ioli/crackme0x00
EXPECT=<<EOF
Scanning: bins/elf/ioli/crackme0x00
File: bins/elf/ioli/crackme0x00
0x58f
EOF
RUN

NAME=rz-find -V verbose flag with no match
TOOL=rz-find
ARGS=-V -s NOTFOUND bins/elf/ioli/crackme0x00
EXPECT=<<EOF
Scanning: bins/elf/ioli/crackme0x00
EOF
RUN

NAME=rz-find -V verbose flag multiple files
TOOL=rz-find
ARGS=-V -s README bins/arm/README bins/arm/README
EXPECT=<<EOF
Scanning: bins/arm/README
File: bins/arm/README
0x0
Scanning: bins/arm/README
File: bins/arm/README
0x0
EOF
RUN

NAME=rz-find -V with -q still shows scanning
TOOL=rz-find
ARGS=-V -q -s 250382 bins/elf/ioli/crackme0x00
EXPECT=<<EOF
Scanning: bins/elf/ioli/crackme0x00
0x58f
EOF
RUN

NAME=rz-find -V overrides auto-quiet for single file
FILE==
REGEXP_FILTER_OUT=(File: bins/elf/ioli/crackme0x00)
CMDS=!rz-find -V -s 250382 bins/elf/ioli/crackme0x00
EXPECT=<<EOF
File: bins/elf/ioli/crackme0x00
EOF
RUN

NAME=rz-find without -V no scanning output
FILE==
REGEXP_FILTER_OUT=(Scanning:)
CMDS=!rz-find -s 250382 bins/elf/ioli/crackme0x00
EXPECT=
RUN

NAME=rz-find multi-file continues on error
TOOL=rz-find
ARGS=-s README nonexistent_file.bin bins/arm/README
EXIT_STATUS=1
EXPECT=<<EOF
File: bins/arm/README
0x0
EOF
EXPECT_ERR=<<EOF
Cannot open file 'nonexistent_file.bin'
EOF
RUN

NAME=rz-find multi-file quiet
TOOL=rz-find
ARGS=-q -s README bins/arm/README bins/arm/README
EXPECT=<<EOF
0x0
0x0
EOF
EXPECT_ERR=
RUN

NAME=rz-find JSON multiple files keyword search
TOOL=rz-find
ARGS=-j -s 250382 bins/elf/ioli/crackme0x00 bins/elf/ioli/crackme0x00
EXPECT=<<EOF
[{"offset":1423,"type":"string","data":"250382"},{"offset":1423,"type":"string","data":"250382"}]
EOF
RUN

NAME=rz-find verbose with JSON outputs scanning to stderr
TOOL=rz-find
ARGS=-V -j -s 250382 bins/elf/ioli/crackme0x00
EXPECT=<<EOF
[{"offset":1423,"type":"string","data":"250382"}]
EOF
EXPECT_ERR=<<EOF
Scanning: bins/elf/ioli/crackme0x00
EOF
RUN
