NAME=Print the parser plugins
FILE==
CMDS=Lp
EXPECT=<<EOF
6502.pseudo
arm.pseudo
avr.pseudo
chip8.pseudo
dalvik.pseudo
m68k.pseudo
mips.pseudo
ppc.pseudo
sh.pseudo
tms320.pseudo
v850.pseudo
wasm.pseudo
x86.pseudo
riscv.pseudo
z80.pseudo
EOF
RUN

NAME=Print the parser plugins in JSON
FILE==
CMDS=Lpj
EXPECT=<<EOF
[{"name":"6502.pseudo"},{"name":"arm.pseudo"},{"name":"avr.pseudo"},{"name":"chip8.pseudo"},{"name":"dalvik.pseudo"},{"name":"m68k.pseudo"},{"name":"mips.pseudo"},{"name":"ppc.pseudo"},{"name":"sh.pseudo"},{"name":"tms320.pseudo"},{"name":"v850.pseudo"},{"name":"wasm.pseudo"},{"name":"x86.pseudo"},{"name":"riscv.pseudo"},{"name":"z80.pseudo"}]
EOF
RUN

NAME=Print the core plugins
FILE==
CMDS=Lc
EXPECT=<<EOF
java: Suite of java commands, type `java` for more info (Made by deroad, v1.0, LGPL-3.0-only)
dex: Suite of dex commands, type `dex` for more info (Made by deroad, v1.0, LGPL-3.0-only)
EOF
RUN

NAME=Print the core plugins in JSON
FILE==
CMDS=Lcj
EXPECT=<<EOF
[{"name":"java","description":"Suite of java commands, type `java` for more info","author":"deroad","version":"1.0","license":"LGPL-3.0-only"},{"name":"dex","description":"Suite of dex commands, type `dex` for more info","author":"deroad","version":"1.0","license":"LGPL-3.0-only"}]
EOF
RUN

NAME=Print the io plugins
FILE==
BROKEN=1
CMDS=Lo
EXPECT=<<EOF
rw_  ar       Open ar/lib files (LGPL3) ar://,lib://
rw_  fd       Local process filedescriptor IO (MIT) fd://
rw_  bfdbg    Attach to brainfuck Debugger instance (LGPL3) bfdbg://
rwd  bochs    Attach to a BOCHS debugger instance (LGPL3) bochs://
r_d  debug    Attach to native debugger instance (LGPL3) dbg://,pidof://,waitfor:// v0.2.0 pancake
rw_  default  Open local files (LGPL3) file://,nocache://
rwd  gdb      Attach to gdbserver instance (LGPL3) gdb://
rw_  gzip     Read/write gzipped files (LGPL3) gzip://
rw_  http     Make http get requests (LGPL3) http://
rw_  ihex     Open intel HEX file (LGPL) ihex://
r__  mach     mach debug io (unsupported in this platform) (LGPL)
rw_  malloc   Memory allocation plugin (LGPL3) malloc://,hex://
rw_  null     Null plugin (LGPL3) null://
rw_  procpid  Open /proc/[pid]/mem io (LGPL3) procpid://
rwd  ptrace   Ptrace and /proc/pid/mem (if available) io plugin (LGPL3) ptrace://,attach://
rwd  qnx      Attach to QNX pdebug instance (LGPL3) qnx://
rw_  rzpipe   rzpipe io plugin (MIT) rzpipe://
rw_  rzweb    rzweb io client plugin (LGPL3) rzweb://
rw_  rap      Remote binary protocol plugin (MIT) rap://,raps://
rw_  self     Read memory from self (LGPL3) self://
rw_  shm      Shared memory resources plugin (MIT) shm://
rw_  sparse   Sparse buffer allocation plugin (LGPL3) sparse://
rw_  tcp      Load files via TCP (listen or connect) (LGPL3) tcp://
rwd  winkd    Attach to a KD debugger (LGPL3) winkd://
rwd  winedbg  Wine-dbg io and debug.io plugin (MIT) winedbg://
rw_  zip      Open zip files (BSD) zip://,apk://,ipa://,jar://,zipall://,apkall://,ipaall://,jarall://
EOF
RUN

NAME=Print the io plugins in JSON
FILE==
BROKEN=1
CMDS=Loj
EXPECT=<<EOF
[{"permissions":"rw_","name":"ar","description":"Open ar/lib files","license":"LGPL3","uris":["ar://","lib://"]},{"permissions":"rw_","name":"fd","description":"Local process filedescriptor IO","license":"MIT","uris":["fd://"]},{"permissions":"rw_","name":"bfdbg","description":"Attach to brainfuck Debugger instance","license":"LGPL3","uris":["bfdbg://"]},{"permissions":"rwd","name":"bochs","description":"Attach to a BOCHS debugger instance","license":"LGPL3","uris":["bochs://"]},{"permissions":"r_d","name":"debug","description":"Attach to native debugger instance","license":"LGPL3","uris":["dbg://","pidof://","waitfor://"],"version":"0.2.0","author":"pancake"},{"permissions":"rw_","name":"default","description":"Open local files","license":"LGPL3","uris":["file://","nocache://"]},{"permissions":"rwd","name":"gdb","description":"Attach to gdbserver instance","license":"LGPL3","uris":["gdb://"]},{"permissions":"rw_","name":"gzip","description":"Read/write gzipped files","license":"LGPL3","uris":["gzip://"]},{"permissions":"rw_","name":"http","description":"Make http get requests","license":"LGPL3","uris":["http://"]},{"permissions":"rw_","name":"ihex","description":"Open intel HEX file","license":"LGPL","uris":["ihex://"]},{"permissions":"r__","name":"mach","description":"mach debug io (unsupported in this platform)","license":"LGPL"},{"permissions":"rw_","name":"malloc","description":"Memory allocation plugin","license":"LGPL3","uris":["malloc://","hex://"]},{"permissions":"rw_","name":"null","description":"Null plugin","license":"LGPL3","uris":["null://"]},{"permissions":"rw_","name":"procpid","description":"Open /proc/[pid]/mem io","license":"LGPL3","uris":["procpid://"]},{"permissions":"rwd","name":"ptrace","description":"Ptrace and /proc/pid/mem (if available) io plugin","license":"LGPL3","uris":["ptrace://","attach://"]},{"permissions":"rwd","name":"qnx","description":"Attach to QNX pdebug instance","license":"LGPL3","uris":["qnx://"]},{"permissions":"rw_","name":"rzpipe","description":"rzpipe io plugin","license":"MIT","uris":["rzpipe://"]},{"permissions":"rw_","name":"rzweb","description":"rzweb io client plugin","license":"LGPL3","uris":["rzweb://"]},{"permissions":"rw_","name":"rap","description":"Remote binary protocol plugin","license":"MIT","uris":["rap://","raps://"]},{"permissions":"rw_","name":"self","description":"Read memory from self","license":"LGPL3","uris":["self://"]},{"permissions":"rw_","name":"shm","description":"Shared memory resources plugin","license":"MIT","uris":["shm://"]},{"permissions":"rw_","name":"sparse","description":"Sparse buffer allocation plugin","license":"LGPL3","uris":["sparse://"]},{"permissions":"rw_","name":"tcp","description":"Load files via TCP (listen or connect)","license":"LGPL3","uris":["tcp://"]},{"permissions":"rwd","name":"winkd","description":"Attach to a KD debugger","license":"LGPL3","uris":["winkd://"]},{"permissions":"rwd","name":"winedbg","description":"Wine-dbg io and debug.io plugin","license":"MIT","uris":["winedbg://"]},{"permissions":"rw_","name":"zip","description":"Open zip files","license":"BSD","uris":["zip://","apk://","ipa://","jar://","zipall://","apkall://","ipaall://","jarall://"]}]
EOF
RUN

NAME=Print the bin plugins
FILE==
CMDS=Li
EXPECT=<<EOF
bin  any         Dummy format rz_bin plugin (LGPL3)  
bin  art         Android Runtime (LGPL3)  
bin  avr         ATmel AVR MCUs (LGPL3)  
bin  bf          brainfuck (LGPL3)  
bin  bflt        bFLT uClinux executable (LGPL3)  
bin  bios        BIOS bin plugin (LGPL)  
bin  bootimg     Android Boot Image (LGPL3)  
bin  cgc         CGC format rz_bin plugin (LGPL3)  
bin  coff        COFF format rz_bin plugin (LGPL3)  
bin  dex         dex bin plugin (LGPL3)  
bin  dmp64       Windows Crash Dump x64 rz_bin plugin (LGPL3)  
bin  dol         Nintendo Dolphin binary format (BSD)  
bin  dyldcache   dyldcache bin plugin (LGPL3)  
bin  elf         ELF format plugin (LGPL3)  
bin  elf64       elf64 bin plugin (LGPL3)  
bin  java        java bin plugin (LGPL3)  
bin  kernelcache kernelcache bin plugin (LGPL3)  
bin  le          LE/LX format plugin (LGPL3)  GustavoLCR
bin  luac        LUA Compiled File (LGPL3)  
bin  mach0       mach0 bin plugin (LGPL3)  
bin  mach064     mach064 bin plugin (LGPL3)  
bin  mbn         MBN/SBL bootloader things (LGPL3)  
bin  mdmp        Windows MiniDump plugin (LGPL3)  
bin  menuet      Menuet/KolibriOS bin plugin (LGPL3)  
bin  mz          MZ bin plugin (MIT)  
bin  ne          NE format plugin (LGPL3)  GustavoLCR
bin  nes         NES (MIT)  
bin  nin3ds      Nintendo 3DS Firmware plugin (LGPL3)  
bin  ninds       Nintendo DS plugin (LGPL3)  
bin  ningb       Nintendo Gameboy plugin (LGPL3)  
bin  ningba      Nintendo Gameboy Advance plugin (LGPL3)  
bin  nro         Nintendo Switch NRO0 binaries (MIT)  
bin  nso         Nintendo Switch NSO0 binaries (MIT)  
bin  omf         omf bin plugin (LGPL3)  
bin  p9          Plan9 bin plugin (LGPL3)  
bin  pe          PE bin plugin (LGPL3)  
bin  pe64        PE64 (PE32+) bin plugin (LGPL3)  
bin  pebble      Pebble Watch App (LGPL)  
bin  prg         C64 PRG (LGPL3)  
bin  psxexe      Sony PlayStation 1 Executable (LGPL3)  
bin  pyc         Python byte-compiled file plugin (LGPL3)  
bin  qnx         QNX executable file support (LGPL3)  deepakchethan
bin  sfc         Super NES / Super Famicom ROM file (LGPL3)  
bin  smd         SEGA Genesis/Megadrive (LGPL3)  
bin  sms         SEGA MasterSystem/GameGear (LGPL3)  
bin  spc700      SNES-SPC700 Sound File Data (LGPL3)  
bin  symbols     Apple Symbols file (MIT)  
bin  te          TE bin plugin (LGPL3)  
bin  vsf         VICE Snapshot File (LGPL3)  
bin  wasm        WebAssembly bin plugin (MIT)  
bin  xbe         Microsoft Xbox XBE plugin (LGPL3)  
bin  z64         Nintendo 64 Bin-BE plugin (LGPL3)  
bin  zimg        zimg format bin plugin (LGPL3)  
xtr  .fatmach0   fat mach0 bin extractor plugin (LGPL3)
xtr  .sep64      64-bit SEP bin extractor plugin (LGPL3)
EOF
RUN

NAME=Print the bin plugins in quiet mode
FILE==
CMDS=Liq
EXPECT=<<EOF
any
art
avr
bf
bflt
bios
bootimg
cgc
coff
dex
dmp64
dol
dyldcache
elf
elf64
java
kernelcache
le
luac
mach0
mach064
mbn
mdmp
menuet
mz
ne
nes
nin3ds
ninds
ningb
ningba
nro
nso
omf
p9
pe
pe64
pebble
prg
psxexe
pyc
qnx
sfc
smd
sms
spc700
symbols
te
vsf
wasm
xbe
z64
zimg
xtr.fatmach0
xtr.sep64
EOF
RUN

NAME=Print the bin plugins in JSON
FILE==
CMDS=Lij
EXPECT=<<EOF
[{"name":"any","description":"Dummy format rz_bin plugin","license":"LGPL3","author":"LGPL3"},{"name":"art","description":"Android Runtime","license":"LGPL3","author":"LGPL3"},{"name":"avr","description":"ATmel AVR MCUs","license":"LGPL3","author":"LGPL3"},{"name":"bf","description":"brainfuck","license":"LGPL3","author":"LGPL3"},{"name":"bflt","description":"bFLT uClinux executable","license":"LGPL3","author":"LGPL3"},{"name":"bios","description":"BIOS bin plugin","license":"LGPL","author":"LGPL"},{"name":"bootimg","description":"Android Boot Image","license":"LGPL3","author":"LGPL3"},{"name":"cgc","description":"CGC format rz_bin plugin","license":"LGPL3","author":"LGPL3"},{"name":"coff","description":"COFF format rz_bin plugin","license":"LGPL3","author":"LGPL3"},{"name":"dex","description":"dex bin plugin","license":"LGPL3","author":"LGPL3"},{"name":"dmp64","description":"Windows Crash Dump x64 rz_bin plugin","license":"LGPL3","author":"LGPL3"},{"name":"dol","description":"Nintendo Dolphin binary format","license":"BSD","author":"BSD"},{"name":"dyldcache","description":"dyldcache bin plugin","license":"LGPL3","author":"LGPL3"},{"name":"elf","description":"ELF format plugin","license":"LGPL3","author":"LGPL3"},{"name":"elf64","description":"elf64 bin plugin","license":"LGPL3","author":"LGPL3"},{"name":"java","description":"java bin plugin","license":"LGPL3","author":"LGPL3"},{"name":"kernelcache","description":"kernelcache bin plugin","license":"LGPL3","author":"LGPL3"},{"name":"le","description":"LE/LX format plugin","license":"LGPL3","author":"LGPL3"},{"name":"luac","description":"LUA Compiled File","license":"LGPL3","author":"LGPL3"},{"name":"mach0","description":"mach0 bin plugin","license":"LGPL3","author":"LGPL3"},{"name":"mach064","description":"mach064 bin plugin","license":"LGPL3","author":"LGPL3"},{"name":"mbn","description":"MBN/SBL bootloader things","license":"LGPL3","author":"LGPL3"},{"name":"mdmp","description":"Windows MiniDump plugin","license":"LGPL3","author":"LGPL3"},{"name":"menuet","description":"Menuet/KolibriOS bin plugin","license":"LGPL3","author":"LGPL3"},{"name":"mz","description":"MZ bin plugin","license":"MIT","author":"MIT"},{"name":"ne","description":"NE format plugin","license":"LGPL3","author":"LGPL3"},{"name":"nes","description":"NES","license":"MIT","author":"MIT"},{"name":"nin3ds","description":"Nintendo 3DS Firmware plugin","license":"LGPL3","author":"LGPL3"},{"name":"ninds","description":"Nintendo DS plugin","license":"LGPL3","author":"LGPL3"},{"name":"ningb","description":"Nintendo Gameboy plugin","license":"LGPL3","author":"LGPL3"},{"name":"ningba","description":"Nintendo Gameboy Advance plugin","license":"LGPL3","author":"LGPL3"},{"name":"nro","description":"Nintendo Switch NRO0 binaries","license":"MIT","author":"MIT"},{"name":"nso","description":"Nintendo Switch NSO0 binaries","license":"MIT","author":"MIT"},{"name":"omf","description":"omf bin plugin","license":"LGPL3","author":"LGPL3"},{"name":"p9","description":"Plan9 bin plugin","license":"LGPL3","author":"LGPL3"},{"name":"pe","description":"PE bin plugin","license":"LGPL3","author":"LGPL3"},{"name":"pe64","description":"PE64 (PE32+) bin plugin","license":"LGPL3","author":"LGPL3"},{"name":"pebble","description":"Pebble Watch App","license":"LGPL","author":"LGPL"},{"name":"prg","description":"C64 PRG","license":"LGPL3","author":"LGPL3"},{"name":"psxexe","description":"Sony PlayStation 1 Executable","license":"LGPL3","author":"LGPL3"},{"name":"pyc","description":"Python byte-compiled file plugin","license":"LGPL3","author":"LGPL3"},{"name":"qnx","description":"QNX executable file support","license":"LGPL3","author":"LGPL3"},{"name":"sfc","description":"Super NES / Super Famicom ROM file","license":"LGPL3","author":"LGPL3"},{"name":"smd","description":"SEGA Genesis/Megadrive","license":"LGPL3","author":"LGPL3"},{"name":"sms","description":"SEGA MasterSystem/GameGear","license":"LGPL3","author":"LGPL3"},{"name":"spc700","description":"SNES-SPC700 Sound File Data","license":"LGPL3","author":"LGPL3"},{"name":"symbols","description":"Apple Symbols file","license":"MIT","author":"MIT"},{"name":"te","description":"TE bin plugin","license":"LGPL3","author":"LGPL3"},{"name":"vsf","description":"VICE Snapshot File","license":"LGPL3","author":"LGPL3"},{"name":"wasm","description":"WebAssembly bin plugin","license":"MIT","author":"MIT"},{"name":"xbe","description":"Microsoft Xbox XBE plugin","license":"LGPL3","author":"LGPL3"},{"name":"z64","description":"Nintendo 64 Bin-BE plugin","license":"LGPL3","author":"LGPL3"},{"name":"zimg","description":"zimg format bin plugin","license":"LGPL3","author":"LGPL3"},{"name":"xtr.fatmach0","description":"fat mach0 bin extractor plugin","license":"LGPL3"},{"name":"xtr.sep64","description":"64-bit SEP bin extractor plugin","license":"LGPL3"}]
EOF
RUN

NAME=Print the hash plugins
FILE==
CMDS=Lh
EXPECT=<<EOF
algorithm      license    author
crc32d         LGPL3      deroad
crc32xfer      LGPL3      deroad
crc16x25       LGPL3      deroad
crc32c         LGPL3      deroad
sha384         BSD-3      Aaron D. Gifford
entropy        LGPL3      deroad
crc16t10dif    LGPL3      deroad
crc16tms37157  LGPL3      deroad
crc16genibus   LGPL3      deroad
crc64we        LGPL3      deroad
fletcher32     LGPL3      deroad
crc32          LGPL3      deroad
crc64ecma182   LGPL3      deroad
crc32bzip2     LGPL3      deroad
crc8wcdma      LGPL3      deroad
crc16dectr     LGPL3      deroad
crc16cdma2000  LGPL3      deroad
crc16teledisk  LGPL3      deroad
crc16augccitt  LGPL3      deroad
crc8ebu        LGPL3      deroad
crc32posix     LGPL3      deroad
crc64iso       LGPL3      deroad
crc16riello    LGPL3      deroad
crc8maxim      LGPL3      deroad
crc16dectx     LGPL3      deroad
crc64          LGPL3      deroad
crc16modbus    LGPL3      deroad
sm3            LGPL2      FSF/deroad
crc8smbus      LGPL3      deroad
sha1           LGPL3      deroad
crc16hdlc      LGPL3      deroad
crc32mpeg2     LGPL3      deroad
entropy_fract  LGPL3      deroad
sha256         BSD-3      Aaron D. Gifford
fletcher8      LGPL3      deroad
crc32jamcrc    LGPL3      deroad
ssdeep         LGPL3      deroad
crc16maxim     LGPL3      deroad
crc16usb       LGPL3      deroad
crc8itu        LGPL3      deroad
sha512         BSD-3      Aaron D. Gifford
blake3         CC0        Samuel Neves,Jack O'Connor
crc16dds110    LGPL3      deroad
xxhash32       LGPL3      deroad
crc8cdma2000   LGPL3      deroad
crc16xmodem    LGPL3      deroad
crc24          LGPL3      deroad
crc16kermit    LGPL3      deroad
crc16mcrf4xx   LGPL3      deroad
crc16          LGPL3      deroad
crc8rohc       LGPL3      deroad
xor8           LGPL3      deroad
crc32ecma267   LGPL3      deroad
crc8dvbs2      LGPL3      deroad
crc16citt      LGPL3      deroad
crc16buypass   LGPL3      deroad
crc32q         LGPL3      deroad
fletcher16     LGPL3      deroad
md4            LGPL3      deroad
crc15can       LGPL3      deroad
crc16dnp       LGPL3      deroad
fletcher64     LGPL3      deroad
md5            LGPL2      Alan DeKok
xor16          LGPL3      deroad
crc8icode      LGPL3      deroad
parity         LGPL3      deroad
crc16en13757   LGPL3      deroad
crc8darc       LGPL3      deroad
md2            LGPL3      swedenspy
crc64xz        LGPL3      deroad
adler32        LGPL3      deroad
crca           LGPL3      deroad
EOF
RUN

NAME=Print the hash plugins in JSON
FILE==
CMDS=Lhj
EXPECT=<<EOF
[{"name":"crc32d","license":"LGPL3","author":"deroad"},{"name":"crc32xfer","license":"LGPL3","author":"deroad"},{"name":"crc16x25","license":"LGPL3","author":"deroad"},{"name":"crc32c","license":"LGPL3","author":"deroad"},{"name":"sha384","license":"BSD-3","author":"Aaron D. Gifford"},{"name":"entropy","license":"LGPL3","author":"deroad"},{"name":"crc16t10dif","license":"LGPL3","author":"deroad"},{"name":"crc16tms37157","license":"LGPL3","author":"deroad"},{"name":"crc16genibus","license":"LGPL3","author":"deroad"},{"name":"crc64we","license":"LGPL3","author":"deroad"},{"name":"fletcher32","license":"LGPL3","author":"deroad"},{"name":"crc32","license":"LGPL3","author":"deroad"},{"name":"crc64ecma182","license":"LGPL3","author":"deroad"},{"name":"crc32bzip2","license":"LGPL3","author":"deroad"},{"name":"crc8wcdma","license":"LGPL3","author":"deroad"},{"name":"crc16dectr","license":"LGPL3","author":"deroad"},{"name":"crc16cdma2000","license":"LGPL3","author":"deroad"},{"name":"crc16teledisk","license":"LGPL3","author":"deroad"},{"name":"crc16augccitt","license":"LGPL3","author":"deroad"},{"name":"crc8ebu","license":"LGPL3","author":"deroad"},{"name":"crc32posix","license":"LGPL3","author":"deroad"},{"name":"crc64iso","license":"LGPL3","author":"deroad"},{"name":"crc16riello","license":"LGPL3","author":"deroad"},{"name":"crc8maxim","license":"LGPL3","author":"deroad"},{"name":"crc16dectx","license":"LGPL3","author":"deroad"},{"name":"crc64","license":"LGPL3","author":"deroad"},{"name":"crc16modbus","license":"LGPL3","author":"deroad"},{"name":"sm3","license":"LGPL2","author":"FSF/deroad"},{"name":"crc8smbus","license":"LGPL3","author":"deroad"},{"name":"sha1","license":"LGPL3","author":"deroad"},{"name":"crc16hdlc","license":"LGPL3","author":"deroad"},{"name":"crc32mpeg2","license":"LGPL3","author":"deroad"},{"name":"entropy_fract","license":"LGPL3","author":"deroad"},{"name":"sha256","license":"BSD-3","author":"Aaron D. Gifford"},{"name":"fletcher8","license":"LGPL3","author":"deroad"},{"name":"crc32jamcrc","license":"LGPL3","author":"deroad"},{"name":"ssdeep","license":"LGPL3","author":"deroad"},{"name":"crc16maxim","license":"LGPL3","author":"deroad"},{"name":"crc16usb","license":"LGPL3","author":"deroad"},{"name":"crc8itu","license":"LGPL3","author":"deroad"},{"name":"sha512","license":"BSD-3","author":"Aaron D. Gifford"},{"name":"blake3","license":"CC0","author":"Samuel Neves,Jack O'Connor"},{"name":"crc16dds110","license":"LGPL3","author":"deroad"},{"name":"xxhash32","license":"LGPL3","author":"deroad"},{"name":"crc8cdma2000","license":"LGPL3","author":"deroad"},{"name":"crc16xmodem","license":"LGPL3","author":"deroad"},{"name":"crc24","license":"LGPL3","author":"deroad"},{"name":"crc16kermit","license":"LGPL3","author":"deroad"},{"name":"crc16mcrf4xx","license":"LGPL3","author":"deroad"},{"name":"crc16","license":"LGPL3","author":"deroad"},{"name":"crc8rohc","license":"LGPL3","author":"deroad"},{"name":"xor8","license":"LGPL3","author":"deroad"},{"name":"crc32ecma267","license":"LGPL3","author":"deroad"},{"name":"crc8dvbs2","license":"LGPL3","author":"deroad"},{"name":"crc16citt","license":"LGPL3","author":"deroad"},{"name":"crc16buypass","license":"LGPL3","author":"deroad"},{"name":"crc32q","license":"LGPL3","author":"deroad"},{"name":"fletcher16","license":"LGPL3","author":"deroad"},{"name":"md4","license":"LGPL3","author":"deroad"},{"name":"crc15can","license":"LGPL3","author":"deroad"},{"name":"crc16dnp","license":"LGPL3","author":"deroad"},{"name":"fletcher64","license":"LGPL3","author":"deroad"},{"name":"md5","license":"LGPL2","author":"Alan DeKok"},{"name":"xor16","license":"LGPL3","author":"deroad"},{"name":"crc8icode","license":"LGPL3","author":"deroad"},{"name":"parity","license":"LGPL3","author":"deroad"},{"name":"crc16en13757","license":"LGPL3","author":"deroad"},{"name":"crc8darc","license":"LGPL3","author":"deroad"},{"name":"md2","license":"LGPL3","author":"swedenspy"},{"name":"crc64xz","license":"LGPL3","author":"deroad"},{"name":"adler32","license":"LGPL3","author":"deroad"},{"name":"crca","license":"LGPL3","author":"deroad"}]
EOF
RUN

NAME=Print the hash plugins in JSON
FILE==
CMDS=Lhq
EXPECT=<<EOF
crc32d crc32xfer crc16x25 crc32c sha384 entropy crc16t10dif crc16tms37157 crc16genibus crc64we fletcher32 crc32 crc64ecma182 crc32bzip2 crc8wcdma crc16dectr crc16cdma2000 crc16teledisk crc16augccitt crc8ebu crc32posix crc64iso crc16riello crc8maxim crc16dectx crc64 crc16modbus sm3 crc8smbus sha1 crc16hdlc crc32mpeg2 entropy_fract sha256 fletcher8 crc32jamcrc ssdeep crc16maxim crc16usb crc8itu sha512 blake3 crc16dds110 xxhash32 crc8cdma2000 crc16xmodem crc24 crc16kermit crc16mcrf4xx crc16 crc8rohc xor8 crc32ecma267 crc8dvbs2 crc16citt crc16buypass crc32q fletcher16 md4 crc15can crc16dnp fletcher64 md5 xor16 crc8icode parity crc16en13757 crc8darc md2 crc64xz adler32 crca 
EOF
RUN

NAME=Set the debug backend
FILE==
CMDS=<<EOF
Ld null
Ld~!windbg,native[1-3]
EOF
EXPECT=<<EOF
--- bf LGPL3
--- bochs LGPL3
--- dmp LGPL3
--- gdb LGPL3
--- io MIT
dbg null MIT
--- qnx LGPL3
--- rap LGPL3
--- winkd LGPL3
EOF
RUN

NAME=Print the debug plugins
FILE==
CMDS=Ld~!windbg,native[1-3]
EXPECT=<<EOF
--- bf LGPL3
--- bochs LGPL3
--- dmp LGPL3
--- gdb LGPL3
--- io MIT
--- null MIT
--- qnx LGPL3
--- rap LGPL3
--- winkd LGPL3
EOF
RUN

NAME=Print the debug plugins in JSON
FILE==
CMDS=<<EOF
Ldj~{[0]}
Ldj~{[1]}
Ldj~{[2]}
Ldj~{[3]}
Ldj~{[4]}
# Ldj~{[5]} - Native plugin. The arch field changes in each test environment and breaks it.
Ldj~{[6]}
Ldj~{[7]}
Ldj~{[8]}
EOF
EXPECT=<<EOF
{"arch":"bf","name":"bf","license":"LGPL3"}
{"arch":"x86","name":"bochs","license":"LGPL3"}
{"arch":"x86,arm","name":"dmp","license":"LGPL3"}
{"arch":"x86,arm,sh,mips,avr,lm32,v850,ba2,tricore","name":"gdb","license":"LGPL3"}
{"arch":"any","name":"io","license":"MIT"}
{"arch":"any","name":"null","license":"MIT"}
{"arch":"x86,arm","name":"qnx","license":"LGPL3"}
{"arch":"any","name":"rap","license":"LGPL3"}
EOF
RUN

NAME=Print the asm/analysis plugins
FILE==
CMDS=La
EXPECT=<<EOF
_dAeI 8 16       6502        LGPL3   6502/NES/C64/Tamagotchi/T-1000 CPU
adAeI 8          8051        PD      8051 Intel CPU
_dA__ 64         alpha       LGPL3   Capstone Alpha disassembler
_dA__ 32         amd29k      LGPL3   AMD 29k RISC CPU (by deroad)
_dA__ 16 32      arc         GPL3    Argonaut RISC Core
adAeI 16 32 64   arm         BSD     Capstone ARM disassembler
a____ 16 32 64   arm.as      LGPL3   as ARM Assembler (use RZ_ARM32_AS and RZ_ARM64_AS environment) (by pancake)
adAeI 8 16       avr         LGPL3   AVR Atmel
adA_I 16 32 64   bf          LGPL3   Brainfuck (by pancake, nibble) v4.0.0
_dA__ 32         chip8       LGPL3   Chip8 disassembler
_dA__ 16 32 64   cil         LGPL3   .NET Common Intermediate Language
_dA__ 16         cr16        LGPL3   cr16 disassembly plugin
_dA__ 32         cris        GPL3    Axis Communications 32-bit embedded processor (by pancake)
adA__ 32 64      dalvik      LGPL3   AndroidVM Dalvik
ad___ 16         dcpu16      PD      Mojang's DCPU-16
_dA__ 32 64      ebc         LGPL3   EFI Bytecode (by Fedor Sakharov)
adAeI 16         gb          LGPL3   GameBoy(TM) (z80-like) (by condret)
_dAe_ 16         h8300       LGPL3   H8/300 disassembly plugin
_dA_I 32         hexagon     LGPL3   Qualcomm Hexagon (QDSP6) V6 (by Rot127)
_d___ 32         hppa        GPL3    HP PA-RISC
_dA__ 4          i4004       LGPL3   Intel 4004 microprocessor
_dA__ 8          i8080       BSD     Intel 8080 CPU
adA__ 32         java        LGPL-3  Java bytecode disassembler (by deroad)
_d___ 32         lanai       GPL3    LANAI
_d___ 8          lh5801      LGPL3   SHARP LH5801 disassembler
_d___ 32         lm32        BSD     disassembly plugin for Lattice Micro 32 ISA (by Felix Held)
adA__ 8          luac        LGPL3   luac disassemble plugin
_dA__ 8 32       m680x       BSD     Capstone M680X Disassembler
_dA__ 32         m68k        BSD     Capstone M68K disassembler
_dA__ 32         malbolge    LGPL3   Malbolge Ternary VM (by condret)
_dA__ 32         mcore       LGPL3   Motorola MCORE disassembler
_d___ 16         mcs96       LGPL3   condrets car
adAe_ 16 32 64   mips        BSD     Capstone MIPS disassembler
_dA_I 16         msp430      LGPL3   msp430 disassembly plugin
adA__ 16 32 64   null        MIT     no disassemble (by pancake) v1.0.0
_dA__ 32         or1k        LGPL3   OpenRISC 1000
_dAeI 16 32      pic         LGPL3   PIC disassembler
_dAeI 32 64      ppc         BSD     Capstone PowerPC disassembler (by pancake)
a____ 32 64      ppc.as      LGPL3   as PPC Assembler (use RZ_PPC_AS environment) (by eagleoflqj)
_dA__ 32         propeller   LGPL3   propeller disassembly plugin
_dA__ 8 16       pyc         LGPL3   PYC disassemble plugin
_dAe_ 32 64      riscv       GPL3    RISC-V
_dAe_ 32 64      riscv.cs    BSD     Capstone RISCV disassembler
adA__ 32         rl78        LGPL3   Renesas RL78 disassembler (by Bastian Engel)
_dA__ 32         rsp         LGPL3   Reality Signal Processor
_dA__ 32         rx          LGPL3   Renesas RX Family disassembler (by Heersin)
adAeI 32         sh          LGPL3   SuperH-4 CPU (by DMaroo)
_dA__ 8 16       snes        LGPL3   SuperNES CPU
_dA__ 32 64      sparc       BSD     Capstone SPARC disassembler
_dA__ 32 64      sparc.gnu   GPL3    Scalable Processor Architecture
_dA__ 16         spc700      LGPL3   spc700, snes' sound-chip
_dA__ 32 64      sysz        BSD     SystemZ CPU disassembler
_dA__ 32         tms320      LGPL3   TMS320 DSP family (c54x,c55x,c55x+,c64x)
_dA_I 32         tricore     BSD     Siemens TriCore CPU (by billow)
_dAeI 32         v810        LGPL3   v810 disassembly plugin (by pancake)
_dAeI 32         v850        LGPL3   v850 disassembly plugin
_dA__ 8 32       vax         GPL3    VAX
adA__ 32         wasm        MIT     WebAssembly (by cgvwzq) v0.1.0
_dAeI 16 32 64   x86         BSD     Capstone X86 disassembler
a____ 16 32 64   x86.as      LGPL3   Intel X86 GNU Assembler (Use RZ_X86_AS env)
a____ 16 32 64   x86.nasm    LGPL3   X86 nasm assembler
a____ 16 32 64   x86.nz      LGPL3   x86 handmade assembler
_dA__ 16         xap         PD      XAP4 RISC (CSR)
_dA__ 32         xcore       BSD     Capstone XCore disassembler (by pancake)
_dAeI 32         xtensa      LGPL3   Capstone Xtensa disassembly plugin (by billow)
adA__ 8          z80         GPL3    Zilog Z80 (by condret)
EOF
RUN

NAME=Print the asm/analysis plugins with filtering
FILE==
CMDS=<<EOF
La a
La I
La dAeI
EOF
EXPECT=<<EOF
adAeI 8          8051        PD      8051 Intel CPU
adAeI 16 32 64   arm         BSD     Capstone ARM disassembler
a____ 16 32 64   arm.as      LGPL3   as ARM Assembler (use RZ_ARM32_AS and RZ_ARM64_AS environment) (by pancake)
adAeI 8 16       avr         LGPL3   AVR Atmel
adA_I 16 32 64   bf          LGPL3   Brainfuck (by pancake, nibble) v4.0.0
adA__ 32 64      dalvik      LGPL3   AndroidVM Dalvik
ad___ 16         dcpu16      PD      Mojang's DCPU-16
adAeI 16         gb          LGPL3   GameBoy(TM) (z80-like) (by condret)
adA__ 32         java        LGPL-3  Java bytecode disassembler (by deroad)
adA__ 8          luac        LGPL3   luac disassemble plugin
adAe_ 16 32 64   mips        BSD     Capstone MIPS disassembler
adA__ 16 32 64   null        MIT     no disassemble (by pancake) v1.0.0
a____ 32 64      ppc.as      LGPL3   as PPC Assembler (use RZ_PPC_AS environment) (by eagleoflqj)
adA__ 32         rl78        LGPL3   Renesas RL78 disassembler (by Bastian Engel)
adAeI 32         sh          LGPL3   SuperH-4 CPU (by DMaroo)
adA__ 32         wasm        MIT     WebAssembly (by cgvwzq) v0.1.0
a____ 16 32 64   x86.as      LGPL3   Intel X86 GNU Assembler (Use RZ_X86_AS env)
a____ 16 32 64   x86.nasm    LGPL3   X86 nasm assembler
a____ 16 32 64   x86.nz      LGPL3   x86 handmade assembler
adA__ 8          z80         GPL3    Zilog Z80 (by condret)
_dAeI 8 16       6502        LGPL3   6502/NES/C64/Tamagotchi/T-1000 CPU
adAeI 8          8051        PD      8051 Intel CPU
adAeI 16 32 64   arm         BSD     Capstone ARM disassembler
adAeI 8 16       avr         LGPL3   AVR Atmel
adA_I 16 32 64   bf          LGPL3   Brainfuck (by pancake, nibble) v4.0.0
adAeI 16         gb          LGPL3   GameBoy(TM) (z80-like) (by condret)
_dA_I 32         hexagon     LGPL3   Qualcomm Hexagon (QDSP6) V6 (by Rot127)
_dA_I 16         msp430      LGPL3   msp430 disassembly plugin
_dAeI 16 32      pic         LGPL3   PIC disassembler
_dAeI 32 64      ppc         BSD     Capstone PowerPC disassembler (by pancake)
adAeI 32         sh          LGPL3   SuperH-4 CPU (by DMaroo)
_dA_I 32         tricore     BSD     Siemens TriCore CPU (by billow)
_dAeI 32         v810        LGPL3   v810 disassembly plugin (by pancake)
_dAeI 32         v850        LGPL3   v850 disassembly plugin
_dAeI 16 32 64   x86         BSD     Capstone X86 disassembler
_dAeI 32         xtensa      LGPL3   Capstone Xtensa disassembly plugin (by billow)
_dAeI 8 16       6502        LGPL3   6502/NES/C64/Tamagotchi/T-1000 CPU
adAeI 8          8051        PD      8051 Intel CPU
adAeI 16 32 64   arm         BSD     Capstone ARM disassembler
adAeI 8 16       avr         LGPL3   AVR Atmel
adAeI 16         gb          LGPL3   GameBoy(TM) (z80-like) (by condret)
_dAeI 16 32      pic         LGPL3   PIC disassembler
_dAeI 32 64      ppc         BSD     Capstone PowerPC disassembler (by pancake)
adAeI 32         sh          LGPL3   SuperH-4 CPU (by DMaroo)
_dAeI 32         v810        LGPL3   v810 disassembly plugin (by pancake)
_dAeI 32         v850        LGPL3   v850 disassembly plugin
_dAeI 16 32 64   x86         BSD     Capstone X86 disassembler
_dAeI 32         xtensa      LGPL3   Capstone Xtensa disassembly plugin (by billow)
EOF
RUN

NAME=Print the asm/analysis plugins in quiet mode
FILE==
CMDS=Laq
EXPECT=<<EOF
6502
8051
alpha
amd29k
arc
arm
arm.as
avr
bf
chip8
cil
cr16
cris
dalvik
dcpu16
ebc
gb
h8300
hexagon
hppa
i4004
i8080
java
lanai
lh5801
lm32
luac
m680x
m68k
malbolge
mcore
mcs96
mips
msp430
null
or1k
pic
ppc
ppc.as
propeller
pyc
riscv
riscv.cs
rl78
rsp
rx
sh
snes
sparc
sparc.gnu
spc700
sysz
tms320
tricore
v810
v850
vax
wasm
x86
x86.as
x86.nasm
x86.nz
xap
xcore
xtensa
z80
EOF
RUN

NAME=Print the asm/analysis plugins with filtering in quiet mode
FILE==
CMDS=<<EOF
Laq a
Laq I
Laq dAeI
EOF
EXPECT=<<EOF
8051
arm
arm.as
avr
bf
dalvik
dcpu16
gb
java
luac
mips
null
ppc.as
rl78
sh
wasm
x86.as
x86.nasm
x86.nz
z80
6502
8051
arm
avr
bf
gb
hexagon
msp430
pic
ppc
sh
tricore
v810
v850
x86
xtensa
6502
8051
arm
avr
gb
pic
ppc
sh
v810
v850
x86
xtensa
EOF
RUN

NAME=Print the asm/analysis plugins in JSON
FILE==
CMDS=Laj
EXPECT=<<EOF
["6502":{"bits":"8 16 ","license":"LGPL3","description":"6502/NES/C64/Tamagotchi/T-1000 CPU","features":"_dAeI"},"8051":{"bits":"8 ","license":"PD","description":"8051 Intel CPU","features":"adAeI"},"alpha":{"bits":"64","license":"LGPL3","description":"Capstone Alpha disassembler","features":"_dA__"},"amd29k":{"bits":"32 ","license":"LGPL3","description":"AMD 29k RISC CPU","features":"_dA__"},"arc":{"bits":"16 32 ","license":"GPL3","description":"Argonaut RISC Core","features":"_dA__"},"arm":{"bits":"16 32 64","license":"BSD","description":"Capstone ARM disassembler","features":"adAeI"},"arm.as":{"bits":"16 32 64","license":"LGPL3","description":"as ARM Assembler (use RZ_ARM32_AS and RZ_ARM64_AS environment)","features":"a____"},"avr":{"bits":"8 16 ","license":"LGPL3","description":"AVR Atmel","features":"adAeI"},"bf":{"bits":"16 32 64","license":"LGPL3","description":"Brainfuck","features":"adA_I"},"chip8":{"bits":"32 ","license":"LGPL3","description":"Chip8 disassembler","features":"_dA__"},"cil":{"bits":"16 32 64","license":"LGPL3","description":".NET Common Intermediate Language","features":"_dA__"},"cr16":{"bits":"16 ","license":"LGPL3","description":"cr16 disassembly plugin","features":"_dA__"},"cris":{"bits":"32 ","license":"GPL3","description":"Axis Communications 32-bit embedded processor","features":"_dA__"},"dalvik":{"bits":"32 64","license":"LGPL3","description":"AndroidVM Dalvik","features":"adA__"},"dcpu16":{"bits":"16 ","license":"PD","description":"Mojang's DCPU-16","features":"ad___"},"ebc":{"bits":"32 64","license":"LGPL3","description":"EFI Bytecode","features":"_dA__"},"gb":{"bits":"16 ","license":"LGPL3","description":"GameBoy(TM) (z80-like)","features":"adAeI"},"h8300":{"bits":"16 ","license":"LGPL3","description":"H8/300 disassembly plugin","features":"_dAe_"},"hexagon":{"bits":"32 ","license":"LGPL3","description":"Qualcomm Hexagon (QDSP6) V6","features":"_dA_I"},"hppa":{"bits":"32 ","license":"GPL3","description":"HP PA-RISC","features":"_d___"},"i4004":{"bits":"4 ","license":"LGPL3","description":"Intel 4004 microprocessor","features":"_dA__"},"i8080":{"bits":"8 ","license":"BSD","description":"Intel 8080 CPU","features":"_dA__"},"java":{"bits":"32 ","license":"LGPL-3","description":"Java bytecode disassembler","features":"adA__"},"lanai":{"bits":"32 ","license":"GPL3","description":"LANAI","features":"_d___"},"lh5801":{"bits":"8 ","license":"LGPL3","description":"SHARP LH5801 disassembler","features":"_d___"},"lm32":{"bits":"32 ","license":"BSD","description":"disassembly plugin for Lattice Micro 32 ISA","features":"_d___"},"luac":{"bits":"8 ","license":"LGPL3","description":"luac disassemble plugin","features":"adA__"},"m680x":{"bits":"8 32 ","license":"BSD","description":"Capstone M680X Disassembler","features":"_dA__"},"m68k":{"bits":"32 ","license":"BSD","description":"Capstone M68K disassembler","features":"_dA__"},"malbolge":{"bits":"32 ","license":"LGPL3","description":"Malbolge Ternary VM","features":"_dA__"},"mcore":{"bits":"32 ","license":"LGPL3","description":"Motorola MCORE disassembler","features":"_dA__"},"mcs96":{"bits":"16 ","license":"LGPL3","description":"condrets car","features":"_d___"},"mips":{"bits":"16 32 64","license":"BSD","description":"Capstone MIPS disassembler","features":"adAe_"},"msp430":{"bits":"16 ","license":"LGPL3","description":"msp430 disassembly plugin","features":"_dA_I"},"null":{"bits":"16 32 64","license":"MIT","description":"no disassemble","features":"adA__"},"or1k":{"bits":"32 ","license":"LGPL3","description":"OpenRISC 1000","features":"_dA__"},"pic":{"bits":"16 32 ","license":"LGPL3","description":"PIC disassembler","features":"_dAeI"},"ppc":{"bits":"32 64","license":"BSD","description":"Capstone PowerPC disassembler","features":"_dAeI"},"ppc.as":{"bits":"32 64","license":"LGPL3","description":"as PPC Assembler (use RZ_PPC_AS environment)","features":"a____"},"propeller":{"bits":"32 ","license":"LGPL3","description":"propeller disassembly plugin","features":"_dA__"},"pyc":{"bits":"8 16 ","license":"LGPL3","description":"PYC disassemble plugin","features":"_dA__"},"riscv":{"bits":"32 64","license":"GPL3","description":"RISC-V","features":"_dAe_"},"riscv.cs":{"bits":"32 64","license":"BSD","description":"Capstone RISCV disassembler","features":"_dAe_"},"rl78":{"bits":"32 ","license":"LGPL3","description":"Renesas RL78 disassembler","features":"adA__"},"rsp":{"bits":"32 ","license":"LGPL3","description":"Reality Signal Processor","features":"_dA__"},"rx":{"bits":"32 ","license":"LGPL3","description":"Renesas RX Family disassembler","features":"_dA__"},"sh":{"bits":"32 ","license":"LGPL3","description":"SuperH-4 CPU","features":"adAeI"},"snes":{"bits":"8 16 ","license":"LGPL3","description":"SuperNES CPU","features":"_dA__"},"sparc":{"bits":"32 64","license":"BSD","description":"Capstone SPARC disassembler","features":"_dA__"},"sparc.gnu":{"bits":"32 64","license":"GPL3","description":"Scalable Processor Architecture","features":"_dA__"},"spc700":{"bits":"16 ","license":"LGPL3","description":"spc700, snes' sound-chip","features":"_dA__"},"sysz":{"bits":"32 64","license":"BSD","description":"SystemZ CPU disassembler","features":"_dA__"},"tms320":{"bits":"32 ","license":"LGPL3","description":"TMS320 DSP family (c54x,c55x,c55x+,c64x)","features":"_dA__"},"tricore":{"bits":"32 ","license":"BSD","description":"Siemens TriCore CPU","features":"_dA_I"},"v810":{"bits":"32 ","license":"LGPL3","description":"v810 disassembly plugin","features":"_dAeI"},"v850":{"bits":"32 ","license":"LGPL3","description":"v850 disassembly plugin","features":"_dAeI"},"vax":{"bits":"8 32 ","license":"GPL3","description":"VAX","features":"_dA__"},"wasm":{"bits":"32 ","license":"MIT","description":"WebAssembly","features":"adA__"},"x86":{"bits":"16 32 64","license":"BSD","description":"Capstone X86 disassembler","features":"_dAeI"},"x86.as":{"bits":"16 32 64","license":"LGPL3","description":"Intel X86 GNU Assembler (Use RZ_X86_AS env)","features":"a____"},"x86.nasm":{"bits":"16 32 64","license":"LGPL3","description":"X86 nasm assembler","features":"a____"},"x86.nz":{"bits":"16 32 64","license":"LGPL3","description":"x86 handmade assembler","features":"a____"},"xap":{"bits":"16 ","license":"PD","description":"XAP4 RISC (CSR)","features":"_dA__"},"xcore":{"bits":"32 ","license":"BSD","description":"Capstone XCore disassembler","features":"_dA__"},"xtensa":{"bits":"32 ","license":"LGPL3","description":"Capstone Xtensa disassembly plugin","features":"_dAeI"},"z80":{"bits":"8 ","license":"GPL3","description":"Zilog Z80","features":"adA__"}]
EOF
RUN

NAME=Print the asm/analysis plugins with filtering in JSON
FILE==
CMDS=<<EOF
Laj a
Laj I
Laj dAeI
EOF
EXPECT=<<EOF
["8051":{"bits":"8 ","license":"PD","description":"8051 Intel CPU","features":"adAeI"},"arm":{"bits":"16 32 64","license":"BSD","description":"Capstone ARM disassembler","features":"adAeI"},"arm.as":{"bits":"16 32 64","license":"LGPL3","description":"as ARM Assembler (use RZ_ARM32_AS and RZ_ARM64_AS environment)","features":"a____"},"avr":{"bits":"8 16 ","license":"LGPL3","description":"AVR Atmel","features":"adAeI"},"bf":{"bits":"16 32 64","license":"LGPL3","description":"Brainfuck","features":"adA_I"},"dalvik":{"bits":"32 64","license":"LGPL3","description":"AndroidVM Dalvik","features":"adA__"},"dcpu16":{"bits":"16 ","license":"PD","description":"Mojang's DCPU-16","features":"ad___"},"gb":{"bits":"16 ","license":"LGPL3","description":"GameBoy(TM) (z80-like)","features":"adAeI"},"java":{"bits":"32 ","license":"LGPL-3","description":"Java bytecode disassembler","features":"adA__"},"luac":{"bits":"8 ","license":"LGPL3","description":"luac disassemble plugin","features":"adA__"},"mips":{"bits":"16 32 64","license":"BSD","description":"Capstone MIPS disassembler","features":"adAe_"},"null":{"bits":"16 32 64","license":"MIT","description":"no disassemble","features":"adA__"},"ppc.as":{"bits":"32 64","license":"LGPL3","description":"as PPC Assembler (use RZ_PPC_AS environment)","features":"a____"},"rl78":{"bits":"32 ","license":"LGPL3","description":"Renesas RL78 disassembler","features":"adA__"},"sh":{"bits":"32 ","license":"LGPL3","description":"SuperH-4 CPU","features":"adAeI"},"wasm":{"bits":"32 ","license":"MIT","description":"WebAssembly","features":"adA__"},"x86.as":{"bits":"16 32 64","license":"LGPL3","description":"Intel X86 GNU Assembler (Use RZ_X86_AS env)","features":"a____"},"x86.nasm":{"bits":"16 32 64","license":"LGPL3","description":"X86 nasm assembler","features":"a____"},"x86.nz":{"bits":"16 32 64","license":"LGPL3","description":"x86 handmade assembler","features":"a____"},"z80":{"bits":"8 ","license":"GPL3","description":"Zilog Z80","features":"adA__"}]
["6502":{"bits":"8 16 ","license":"LGPL3","description":"6502/NES/C64/Tamagotchi/T-1000 CPU","features":"_dAeI"},"8051":{"bits":"8 ","license":"PD","description":"8051 Intel CPU","features":"adAeI"},"arm":{"bits":"16 32 64","license":"BSD","description":"Capstone ARM disassembler","features":"adAeI"},"avr":{"bits":"8 16 ","license":"LGPL3","description":"AVR Atmel","features":"adAeI"},"bf":{"bits":"16 32 64","license":"LGPL3","description":"Brainfuck","features":"adA_I"},"gb":{"bits":"16 ","license":"LGPL3","description":"GameBoy(TM) (z80-like)","features":"adAeI"},"hexagon":{"bits":"32 ","license":"LGPL3","description":"Qualcomm Hexagon (QDSP6) V6","features":"_dA_I"},"msp430":{"bits":"16 ","license":"LGPL3","description":"msp430 disassembly plugin","features":"_dA_I"},"pic":{"bits":"16 32 ","license":"LGPL3","description":"PIC disassembler","features":"_dAeI"},"ppc":{"bits":"32 64","license":"BSD","description":"Capstone PowerPC disassembler","features":"_dAeI"},"sh":{"bits":"32 ","license":"LGPL3","description":"SuperH-4 CPU","features":"adAeI"},"tricore":{"bits":"32 ","license":"BSD","description":"Siemens TriCore CPU","features":"_dA_I"},"v810":{"bits":"32 ","license":"LGPL3","description":"v810 disassembly plugin","features":"_dAeI"},"v850":{"bits":"32 ","license":"LGPL3","description":"v850 disassembly plugin","features":"_dAeI"},"x86":{"bits":"16 32 64","license":"BSD","description":"Capstone X86 disassembler","features":"_dAeI"},"xtensa":{"bits":"32 ","license":"LGPL3","description":"Capstone Xtensa disassembly plugin","features":"_dAeI"}]
["6502":{"bits":"8 16 ","license":"LGPL3","description":"6502/NES/C64/Tamagotchi/T-1000 CPU","features":"_dAeI"},"8051":{"bits":"8 ","license":"PD","description":"8051 Intel CPU","features":"adAeI"},"arm":{"bits":"16 32 64","license":"BSD","description":"Capstone ARM disassembler","features":"adAeI"},"avr":{"bits":"8 16 ","license":"LGPL3","description":"AVR Atmel","features":"adAeI"},"gb":{"bits":"16 ","license":"LGPL3","description":"GameBoy(TM) (z80-like)","features":"adAeI"},"pic":{"bits":"16 32 ","license":"LGPL3","description":"PIC disassembler","features":"_dAeI"},"ppc":{"bits":"32 64","license":"BSD","description":"Capstone PowerPC disassembler","features":"_dAeI"},"sh":{"bits":"32 ","license":"LGPL3","description":"SuperH-4 CPU","features":"adAeI"},"v810":{"bits":"32 ","license":"LGPL3","description":"v810 disassembly plugin","features":"_dAeI"},"v850":{"bits":"32 ","license":"LGPL3","description":"v850 disassembly plugin","features":"_dAeI"},"x86":{"bits":"16 32 64","license":"BSD","description":"Capstone X86 disassembler","features":"_dAeI"},"xtensa":{"bits":"32 ","license":"LGPL3","description":"Capstone Xtensa disassembly plugin","features":"_dAeI"}]
EOF
RUN

NAME=Print the lang plugins
FILE==
CMDS=<<EOF
Ll~^pipe
Ll~lib
EOF
EXPECT=<<EOF
pipe: Use #!pipe node script.js (LGPL)
lib: Load libs directly into rizin (LGPL)
EOF
RUN

NAME=Print the lang plugins in JSON
BROKEN=1
FILE==
CMDS=Llj
EXPECT=<<EOF
[{"name":"c","description":"C language extension","license":"LGPL"},{"name":"cpipe","description":"rzpipe scripting in C","license":"LGPL"},{"name":"vala","description":"Vala language extension","license":"LGPL"},{"name":"rust","description":"Rust language extension","license":"MIT"},{"name":"zig","description":"Zig language extension","license":"MIT"},{"name":"spp","description":"SPP template programs","license":"MIT"},{"name":"pipe","description":"Use #!pipe node script.js","license":"LGPL"},{"name":"lib","description":"Load libs directly into rizin","license":"LGPL"}]
EOF
RUN
