NAME=Print the parser plugins
FILE==
CMDS=<<EOF
Lp
Lpj
Lpt
Lpq
EOF
EXPECT=<<EOF
6502.pseudo     6502 pseudo syntax
arm.pseudo      ARM/ARM64 pseudo syntax
avr.pseudo      AVR pseudo syntax
chip8.pseudo    chip8 pseudo syntax
dalvik.pseudo   DALVIK pseudo syntax
m68k.pseudo     M68K pseudo syntax
mips.pseudo     MIPS pseudo syntax
ppc.pseudo      PowerPC pseudo syntax
sh.pseudo       SH-4 pseudo syntax
tms320.pseudo   tms320 pseudo syntax
v850.pseudo     v850 pseudo syntax
wasm.pseudo     WASM pseudo syntax
x86.pseudo      X86 pseudo syntax
riscv.pseudo    riscv pseudo syntax
z80.pseudo      z80 pseudo syntax
[{"name":"6502.pseudo","desc":"6502 pseudo syntax"},{"name":"arm.pseudo","desc":"ARM/ARM64 pseudo syntax"},{"name":"avr.pseudo","desc":"AVR pseudo syntax"},{"name":"chip8.pseudo","desc":"chip8 pseudo syntax"},{"name":"dalvik.pseudo","desc":"DALVIK pseudo syntax"},{"name":"m68k.pseudo","desc":"M68K pseudo syntax"},{"name":"mips.pseudo","desc":"MIPS pseudo syntax"},{"name":"ppc.pseudo","desc":"PowerPC pseudo syntax"},{"name":"sh.pseudo","desc":"SH-4 pseudo syntax"},{"name":"tms320.pseudo","desc":"tms320 pseudo syntax"},{"name":"v850.pseudo","desc":"v850 pseudo syntax"},{"name":"wasm.pseudo","desc":"WASM pseudo syntax"},{"name":"x86.pseudo","desc":"X86 pseudo syntax"},{"name":"riscv.pseudo","desc":"riscv pseudo syntax"},{"name":"z80.pseudo","desc":"z80 pseudo syntax"}]
name          description             
--------------------------------------
6502.pseudo   6502 pseudo syntax
arm.pseudo    ARM/ARM64 pseudo syntax
avr.pseudo    AVR pseudo syntax
chip8.pseudo  chip8 pseudo syntax
dalvik.pseudo DALVIK pseudo syntax
m68k.pseudo   M68K pseudo syntax
mips.pseudo   MIPS pseudo syntax
ppc.pseudo    PowerPC pseudo syntax
sh.pseudo     SH-4 pseudo syntax
tms320.pseudo tms320 pseudo syntax
v850.pseudo   v850 pseudo syntax
wasm.pseudo   WASM pseudo syntax
x86.pseudo    X86 pseudo syntax
riscv.pseudo  riscv pseudo syntax
z80.pseudo    z80 pseudo syntax
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 core plugins
FILE==
CMDS=<<EOF
Lc
Lcj
Lct
Lcq
EOF
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)
[{"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"}]
name license       author version description                                       
------------------------------------------------------------------------------------
java LGPL-3.0-only deroad 1.0     Suite of java commands, type `java` for more info
dex  LGPL-3.0-only deroad 1.0     Suite of dex commands, type `dex` for more info
java
dex
EOF
RUN

NAME=Print the io plugins
FILE==
BROKEN=1
CMDS=<<EOF
Lo
Loj
Lot
Loq
EOF
EXPECT=<<EOF
rw_  ar       Open ar/lib files (LGPL3) ar://,lib:// xarkes
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://
rw_  dmp      Debug a Windows DMP file (LGPL3) dmp://
rw_  fd       Local process filedescriptor IO (MIT) fd://
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_  self     Read memory from self (LGPL3) self://
rw_  shm      Shared memory resources plugin (MIT) shm://
rw_  sparse   Sparse buffer allocation plugin (LGPL3) sparse://
rw_  srec     Motorola S-record file format (LGPL-3) srec://
rw_  tcp      Load files via TCP (listen or connect) (LGPL3) tcp://
rw_  vfile    Virtual Files provided by RzBin Files (LGPL) vfile://
rwd  winedbg  Wine-dbg io and debug.io plugin (MIT) winedbg://
rwd  winkd    Attach to a KD debugger (LGPL3) winkd://
rw_  zip      Open zip files (BSD) zip://,apk://,ipa://,jar://,zipall://,apkall://,ipaall://,jarall://
[{"permissions":"rw_","name":"ar","description":"Open ar/lib files","license":"LGPL3","uris":["ar://","lib://"],"author":"xarkes"},{"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":"rw_","name":"dmp","description":"Debug a Windows DMP file","license":"LGPL3","uris":["dmp://"]},{"permissions":"rw_","name":"fd","description":"Local process filedescriptor IO","license":"MIT","uris":["fd://"]},{"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":"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":"srec","description":"Motorola S-record file format","license":"LGPL-3","uris":["srec://"]},{"permissions":"rw_","name":"tcp","description":"Load files via TCP (listen or connect)","license":"LGPL3","uris":["tcp://"]},{"permissions":"rw_","name":"vfile","description":"Virtual Files provided by RzBin Files","license":"LGPL","uris":["vfile://"]},{"permissions":"rwd","name":"winedbg","description":"Wine-dbg io and debug.io plugin","license":"MIT","uris":["winedbg://"]},{"permissions":"rwd","name":"winkd","description":"Attach to a KD debugger","license":"LGPL3","uris":["winkd://"]},{"permissions":"rw_","name":"zip","description":"Open zip files","license":"BSD","uris":["zip://","apk://","ipa://","jar://","zipall://","apkall://","ipaall://","jarall://"]}]
perm license name    uri                                                                 description                                       
-------------------------------------------------------------------------------------------------------------------------------------------
rw_  LGPL3   ar      ar://,lib://                                                        Open ar/lib files
rw_  LGPL3   bfdbg   bfdbg://                                                            Attach to brainfuck Debugger instance
rwd  LGPL3   bochs   bochs://                                                            Attach to a BOCHS debugger instance
r_d  LGPL3   debug   dbg://,pidof://,waitfor://                                          Attach to native debugger instance
rw_  LGPL3   default file://,nocache://                                                  Open local files
rw_  LGPL3   dmp     dmp://                                                              Debug a Windows DMP file
rw_  MIT     fd      fd://                                                               Local process filedescriptor IO
rwd  LGPL3   gdb     gdb://                                                              Attach to gdbserver instance
rw_  LGPL3   gzip    gzip://                                                             Read/write gzipped files
rw_  LGPL3   http    http://                                                             Make http get requests
rw_  LGPL    ihex    ihex://                                                             Open intel HEX file
r__  LGPL    mach                                                                        mach debug io (unsupported in this platform)
rw_  LGPL3   malloc  malloc://,hex://                                                    Memory allocation plugin
rw_  LGPL3   null    null://                                                             Null plugin
rw_  LGPL3   procpid procpid://                                                          Open /proc/[pid]/mem io
rwd  LGPL3   ptrace  ptrace://,attach://                                                 Ptrace and /proc/pid/mem (if available) io plugin
rwd  LGPL3   qnx     qnx://                                                              Attach to QNX pdebug instance
rw_  MIT     rzpipe  rzpipe://                                                           rzpipe io plugin
rw_  LGPL3   rzweb   rzweb://                                                            rzweb io client plugin
rw_  LGPL3   self    self://                                                             Read memory from self
rw_  MIT     shm     shm://                                                              Shared memory resources plugin
rw_  LGPL3   sparse  sparse://                                                           Sparse buffer allocation plugin
rw_  LGPL-3  srec    srec://                                                             Motorola S-record file format
rw_  LGPL3   tcp     tcp://                                                              Load files via TCP (listen or connect)
rw_  LGPL    vfile   vfile://                                                            Virtual Files provided by RzBin Files
rwd  MIT     winedbg winedbg://                                                          Wine-dbg io and debug.io plugin
rwd  LGPL3   winkd   winkd://                                                            Attach to a KD debugger
rw_  BSD     zip     zip://,apk://,ipa://,jar://,zipall://,apkall://,ipaall://,jarall:// Open zip files
ar
bfdbg
bochs
debug
default
dmp
fd
gdb
gzip
http
ihex
mach
malloc
null
procpid
ptrace
qnx
rzpipe
rzweb
self
shm
sparse
srec
tcp
vfile
winedbg
winkd
zip
EOF
RUN

NAME=Print the bin plugins
FILE==
CMDS=<<EOF
Li
Lij
Lit
Liq
EOF
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)
[{"name":"any","description":"Dummy format rz_bin plugin","license":"LGPL3"},{"name":"art","description":"Android Runtime","license":"LGPL3"},{"name":"avr","description":"ATmel AVR MCUs","license":"LGPL3"},{"name":"bf","description":"brainfuck","license":"LGPL3"},{"name":"bflt","description":"bFLT uClinux executable","license":"LGPL3"},{"name":"bios","description":"BIOS bin plugin","license":"LGPL"},{"name":"bootimg","description":"Android Boot Image","license":"LGPL3"},{"name":"cgc","description":"CGC format rz_bin plugin","license":"LGPL3"},{"name":"coff","description":"COFF format rz_bin plugin","license":"LGPL3"},{"name":"dex","description":"dex bin plugin","license":"LGPL3"},{"name":"dmp64","description":"Windows Crash Dump x64 rz_bin plugin","license":"LGPL3"},{"name":"dol","description":"Nintendo Dolphin binary format","license":"BSD"},{"name":"dyldcache","description":"dyldcache bin plugin","license":"LGPL3"},{"name":"elf","description":"ELF format plugin","license":"LGPL3"},{"name":"elf64","description":"elf64 bin plugin","license":"LGPL3"},{"name":"java","description":"java bin plugin","license":"LGPL3"},{"name":"kernelcache","description":"kernelcache bin plugin","license":"LGPL3"},{"name":"le","description":"LE/LX format plugin","license":"LGPL3","author":"GustavoLCR"},{"name":"luac","description":"LUA Compiled File","license":"LGPL3"},{"name":"mach0","description":"mach0 bin plugin","license":"LGPL3"},{"name":"mach064","description":"mach064 bin plugin","license":"LGPL3"},{"name":"mbn","description":"MBN/SBL bootloader things","license":"LGPL3"},{"name":"mdmp","description":"Windows MiniDump plugin","license":"LGPL3"},{"name":"menuet","description":"Menuet/KolibriOS bin plugin","license":"LGPL3"},{"name":"mz","description":"MZ bin plugin","license":"MIT"},{"name":"ne","description":"NE format plugin","license":"LGPL3","author":"GustavoLCR"},{"name":"nes","description":"NES","license":"MIT"},{"name":"nin3ds","description":"Nintendo 3DS Firmware plugin","license":"LGPL3"},{"name":"ninds","description":"Nintendo DS plugin","license":"LGPL3"},{"name":"ningb","description":"Nintendo Gameboy plugin","license":"LGPL3"},{"name":"ningba","description":"Nintendo Gameboy Advance plugin","license":"LGPL3"},{"name":"nro","description":"Nintendo Switch NRO0 binaries","license":"MIT"},{"name":"nso","description":"Nintendo Switch NSO0 binaries","license":"MIT"},{"name":"omf","description":"omf bin plugin","license":"LGPL3"},{"name":"p9","description":"Plan9 bin plugin","license":"LGPL3"},{"name":"pe","description":"PE bin plugin","license":"LGPL3"},{"name":"pe64","description":"PE64 (PE32+) bin plugin","license":"LGPL3"},{"name":"pebble","description":"Pebble Watch App","license":"LGPL"},{"name":"prg","description":"C64 PRG","license":"LGPL3"},{"name":"psxexe","description":"Sony PlayStation 1 Executable","license":"LGPL3"},{"name":"pyc","description":"Python byte-compiled file plugin","license":"LGPL3"},{"name":"qnx","description":"QNX executable file support","license":"LGPL3","author":"deepakchethan"},{"name":"sfc","description":"Super NES / Super Famicom ROM file","license":"LGPL3"},{"name":"smd","description":"SEGA Genesis/Megadrive","license":"LGPL3"},{"name":"sms","description":"SEGA MasterSystem/GameGear","license":"LGPL3"},{"name":"spc700","description":"SNES-SPC700 Sound File Data","license":"LGPL3"},{"name":"symbols","description":"Apple Symbols file","license":"MIT"},{"name":"te","description":"TE bin plugin","license":"LGPL3"},{"name":"vsf","description":"VICE Snapshot File","license":"LGPL3"},{"name":"wasm","description":"WebAssembly bin plugin","license":"MIT"},{"name":"xbe","description":"Microsoft Xbox XBE plugin","license":"LGPL3"},{"name":"z64","description":"Nintendo 64 Bin-BE plugin","license":"LGPL3"},{"name":"zimg","description":"zimg format bin plugin","license":"LGPL3"},{"name":"xtr.fatmach0","description":"fat mach0 bin extractor plugin","license":"LGPL3"},{"name":"xtr.sep64","description":"64-bit SEP bin extractor plugin","license":"LGPL3"}]
type name         description                          
-------------------------------------------------------
bin  any          Dummy format rz_bin plugin
bin  art          Android Runtime
bin  avr          ATmel AVR MCUs
bin  bf           brainfuck
bin  bflt         bFLT uClinux executable
bin  bios         BIOS bin plugin
bin  bootimg      Android Boot Image
bin  cgc          CGC format rz_bin plugin
bin  coff         COFF format rz_bin plugin
bin  dex          dex bin plugin
bin  dmp64        Windows Crash Dump x64 rz_bin plugin
bin  dol          Nintendo Dolphin binary format
bin  dyldcache    dyldcache bin plugin
bin  elf          ELF format plugin
bin  elf64        elf64 bin plugin
bin  java         java bin plugin
bin  kernelcache  kernelcache bin plugin
bin  le           LE/LX format plugin
bin  luac         LUA Compiled File
bin  mach0        mach0 bin plugin
bin  mach064      mach064 bin plugin
bin  mbn          MBN/SBL bootloader things
bin  mdmp         Windows MiniDump plugin
bin  menuet       Menuet/KolibriOS bin plugin
bin  mz           MZ bin plugin
bin  ne           NE format plugin
bin  nes          NES
bin  nin3ds       Nintendo 3DS Firmware plugin
bin  ninds        Nintendo DS plugin
bin  ningb        Nintendo Gameboy plugin
bin  ningba       Nintendo Gameboy Advance plugin
bin  nro          Nintendo Switch NRO0 binaries
bin  nso          Nintendo Switch NSO0 binaries
bin  omf          omf bin plugin
bin  p9           Plan9 bin plugin
bin  pe           PE bin plugin
bin  pe64         PE64 (PE32+) bin plugin
bin  pebble       Pebble Watch App
bin  prg          C64 PRG
bin  psxexe       Sony PlayStation 1 Executable
bin  pyc          Python byte-compiled file plugin
bin  qnx          QNX executable file support
bin  sfc          Super NES / Super Famicom ROM file
bin  smd          SEGA Genesis/Megadrive
bin  sms          SEGA MasterSystem/GameGear
bin  spc700       SNES-SPC700 Sound File Data
bin  symbols      Apple Symbols file
bin  te           TE bin plugin
bin  vsf          VICE Snapshot File
bin  wasm         WebAssembly bin plugin
bin  xbe          Microsoft Xbox XBE plugin
bin  z64          Nintendo 64 Bin-BE plugin
bin  zimg         zimg format bin plugin
xtr  xtr.fatmach0 fat mach0 bin extractor plugin
xtr  xtr.sep64    64-bit SEP bin extractor plugin
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 hash plugins
FILE==
CMDS=<<EOF
Lh
Lhj
Lht
Lhq
EOF
EXPECT=<<EOF
adler32        LGPL3      deroad
blake3         CC0        Samuel Neves,Jack O'Connor
crc15can       LGPL3      deroad
crc16          LGPL3      deroad
crc16augccitt  LGPL3      deroad
crc16buypass   LGPL3      deroad
crc16cdma2000  LGPL3      deroad
crc16citt      LGPL3      deroad
crc16dds110    LGPL3      deroad
crc16dectr     LGPL3      deroad
crc16dectx     LGPL3      deroad
crc16dnp       LGPL3      deroad
crc16en13757   LGPL3      deroad
crc16genibus   LGPL3      deroad
crc16hdlc      LGPL3      deroad
crc16kermit    LGPL3      deroad
crc16maxim     LGPL3      deroad
crc16mcrf4xx   LGPL3      deroad
crc16modbus    LGPL3      deroad
crc16riello    LGPL3      deroad
crc16t10dif    LGPL3      deroad
crc16teledisk  LGPL3      deroad
crc16tms37157  LGPL3      deroad
crc16usb       LGPL3      deroad
crc16x25       LGPL3      deroad
crc16xmodem    LGPL3      deroad
crc24          LGPL3      deroad
crc32          LGPL3      deroad
crc32bzip2     LGPL3      deroad
crc32c         LGPL3      deroad
crc32d         LGPL3      deroad
crc32ecma267   LGPL3      deroad
crc32jamcrc    LGPL3      deroad
crc32mpeg2     LGPL3      deroad
crc32posix     LGPL3      deroad
crc32q         LGPL3      deroad
crc32xfer      LGPL3      deroad
crc64          LGPL3      deroad
crc64ecma182   LGPL3      deroad
crc64iso       LGPL3      deroad
crc64we        LGPL3      deroad
crc64xz        LGPL3      deroad
crc8cdma2000   LGPL3      deroad
crc8darc       LGPL3      deroad
crc8dvbs2      LGPL3      deroad
crc8ebu        LGPL3      deroad
crc8icode      LGPL3      deroad
crc8itu        LGPL3      deroad
crc8maxim      LGPL3      deroad
crc8rohc       LGPL3      deroad
crc8smbus      LGPL3      deroad
crc8wcdma      LGPL3      deroad
crca           LGPL3      deroad
entropy        LGPL3      deroad
entropy_fract  LGPL3      deroad
fletcher16     LGPL3      deroad
fletcher32     LGPL3      deroad
fletcher64     LGPL3      deroad
fletcher8      LGPL3      deroad
md2            LGPL3      swedenspy
md4            LGPL3      deroad
md5            LGPL2      Alan DeKok
parity         LGPL3      deroad
sha1           LGPL3      deroad
sha256         BSD-3      Aaron D. Gifford
sha384         BSD-3      Aaron D. Gifford
sha512         BSD-3      Aaron D. Gifford
sm3            LGPL2      FSF/deroad
ssdeep         LGPL3      deroad
xor16          LGPL3      deroad
xor8           LGPL3      deroad
xxhash32       LGPL3      deroad
[{"name":"adler32","license":"LGPL3","author":"deroad"},{"name":"blake3","license":"CC0","author":"Samuel Neves,Jack O'Connor"},{"name":"crc15can","license":"LGPL3","author":"deroad"},{"name":"crc16","license":"LGPL3","author":"deroad"},{"name":"crc16augccitt","license":"LGPL3","author":"deroad"},{"name":"crc16buypass","license":"LGPL3","author":"deroad"},{"name":"crc16cdma2000","license":"LGPL3","author":"deroad"},{"name":"crc16citt","license":"LGPL3","author":"deroad"},{"name":"crc16dds110","license":"LGPL3","author":"deroad"},{"name":"crc16dectr","license":"LGPL3","author":"deroad"},{"name":"crc16dectx","license":"LGPL3","author":"deroad"},{"name":"crc16dnp","license":"LGPL3","author":"deroad"},{"name":"crc16en13757","license":"LGPL3","author":"deroad"},{"name":"crc16genibus","license":"LGPL3","author":"deroad"},{"name":"crc16hdlc","license":"LGPL3","author":"deroad"},{"name":"crc16kermit","license":"LGPL3","author":"deroad"},{"name":"crc16maxim","license":"LGPL3","author":"deroad"},{"name":"crc16mcrf4xx","license":"LGPL3","author":"deroad"},{"name":"crc16modbus","license":"LGPL3","author":"deroad"},{"name":"crc16riello","license":"LGPL3","author":"deroad"},{"name":"crc16t10dif","license":"LGPL3","author":"deroad"},{"name":"crc16teledisk","license":"LGPL3","author":"deroad"},{"name":"crc16tms37157","license":"LGPL3","author":"deroad"},{"name":"crc16usb","license":"LGPL3","author":"deroad"},{"name":"crc16x25","license":"LGPL3","author":"deroad"},{"name":"crc16xmodem","license":"LGPL3","author":"deroad"},{"name":"crc24","license":"LGPL3","author":"deroad"},{"name":"crc32","license":"LGPL3","author":"deroad"},{"name":"crc32bzip2","license":"LGPL3","author":"deroad"},{"name":"crc32c","license":"LGPL3","author":"deroad"},{"name":"crc32d","license":"LGPL3","author":"deroad"},{"name":"crc32ecma267","license":"LGPL3","author":"deroad"},{"name":"crc32jamcrc","license":"LGPL3","author":"deroad"},{"name":"crc32mpeg2","license":"LGPL3","author":"deroad"},{"name":"crc32posix","license":"LGPL3","author":"deroad"},{"name":"crc32q","license":"LGPL3","author":"deroad"},{"name":"crc32xfer","license":"LGPL3","author":"deroad"},{"name":"crc64","license":"LGPL3","author":"deroad"},{"name":"crc64ecma182","license":"LGPL3","author":"deroad"},{"name":"crc64iso","license":"LGPL3","author":"deroad"},{"name":"crc64we","license":"LGPL3","author":"deroad"},{"name":"crc64xz","license":"LGPL3","author":"deroad"},{"name":"crc8cdma2000","license":"LGPL3","author":"deroad"},{"name":"crc8darc","license":"LGPL3","author":"deroad"},{"name":"crc8dvbs2","license":"LGPL3","author":"deroad"},{"name":"crc8ebu","license":"LGPL3","author":"deroad"},{"name":"crc8icode","license":"LGPL3","author":"deroad"},{"name":"crc8itu","license":"LGPL3","author":"deroad"},{"name":"crc8maxim","license":"LGPL3","author":"deroad"},{"name":"crc8rohc","license":"LGPL3","author":"deroad"},{"name":"crc8smbus","license":"LGPL3","author":"deroad"},{"name":"crc8wcdma","license":"LGPL3","author":"deroad"},{"name":"crca","license":"LGPL3","author":"deroad"},{"name":"entropy","license":"LGPL3","author":"deroad"},{"name":"entropy_fract","license":"LGPL3","author":"deroad"},{"name":"fletcher16","license":"LGPL3","author":"deroad"},{"name":"fletcher32","license":"LGPL3","author":"deroad"},{"name":"fletcher64","license":"LGPL3","author":"deroad"},{"name":"fletcher8","license":"LGPL3","author":"deroad"},{"name":"md2","license":"LGPL3","author":"swedenspy"},{"name":"md4","license":"LGPL3","author":"deroad"},{"name":"md5","license":"LGPL2","author":"Alan DeKok"},{"name":"parity","license":"LGPL3","author":"deroad"},{"name":"sha1","license":"LGPL3","author":"deroad"},{"name":"sha256","license":"BSD-3","author":"Aaron D. Gifford"},{"name":"sha384","license":"BSD-3","author":"Aaron D. Gifford"},{"name":"sha512","license":"BSD-3","author":"Aaron D. Gifford"},{"name":"sm3","license":"LGPL2","author":"FSF/deroad"},{"name":"ssdeep","license":"LGPL3","author":"deroad"},{"name":"xor16","license":"LGPL3","author":"deroad"},{"name":"xor8","license":"LGPL3","author":"deroad"},{"name":"xxhash32","license":"LGPL3","author":"deroad"}]
algorithm     license author                     
-------------------------------------------------
adler32       LGPL3   deroad
blake3        CC0     Samuel Neves,Jack O'Connor
crc15can      LGPL3   deroad
crc16         LGPL3   deroad
crc16augccitt LGPL3   deroad
crc16buypass  LGPL3   deroad
crc16cdma2000 LGPL3   deroad
crc16citt     LGPL3   deroad
crc16dds110   LGPL3   deroad
crc16dectr    LGPL3   deroad
crc16dectx    LGPL3   deroad
crc16dnp      LGPL3   deroad
crc16en13757  LGPL3   deroad
crc16genibus  LGPL3   deroad
crc16hdlc     LGPL3   deroad
crc16kermit   LGPL3   deroad
crc16maxim    LGPL3   deroad
crc16mcrf4xx  LGPL3   deroad
crc16modbus   LGPL3   deroad
crc16riello   LGPL3   deroad
crc16t10dif   LGPL3   deroad
crc16teledisk LGPL3   deroad
crc16tms37157 LGPL3   deroad
crc16usb      LGPL3   deroad
crc16x25      LGPL3   deroad
crc16xmodem   LGPL3   deroad
crc24         LGPL3   deroad
crc32         LGPL3   deroad
crc32bzip2    LGPL3   deroad
crc32c        LGPL3   deroad
crc32d        LGPL3   deroad
crc32ecma267  LGPL3   deroad
crc32jamcrc   LGPL3   deroad
crc32mpeg2    LGPL3   deroad
crc32posix    LGPL3   deroad
crc32q        LGPL3   deroad
crc32xfer     LGPL3   deroad
crc64         LGPL3   deroad
crc64ecma182  LGPL3   deroad
crc64iso      LGPL3   deroad
crc64we       LGPL3   deroad
crc64xz       LGPL3   deroad
crc8cdma2000  LGPL3   deroad
crc8darc      LGPL3   deroad
crc8dvbs2     LGPL3   deroad
crc8ebu       LGPL3   deroad
crc8icode     LGPL3   deroad
crc8itu       LGPL3   deroad
crc8maxim     LGPL3   deroad
crc8rohc      LGPL3   deroad
crc8smbus     LGPL3   deroad
crc8wcdma     LGPL3   deroad
crca          LGPL3   deroad
entropy       LGPL3   deroad
entropy_fract LGPL3   deroad
fletcher16    LGPL3   deroad
fletcher32    LGPL3   deroad
fletcher64    LGPL3   deroad
fletcher8     LGPL3   deroad
md2           LGPL3   swedenspy
md4           LGPL3   deroad
md5           LGPL2   Alan DeKok
parity        LGPL3   deroad
sha1          LGPL3   deroad
sha256        BSD-3   Aaron D. Gifford
sha384        BSD-3   Aaron D. Gifford
sha512        BSD-3   Aaron D. Gifford
sm3           LGPL2   FSF/deroad
ssdeep        LGPL3   deroad
xor16         LGPL3   deroad
xor8          LGPL3   deroad
xxhash32      LGPL3   deroad
adler32
blake3
crc15can
crc16
crc16augccitt
crc16buypass
crc16cdma2000
crc16citt
crc16dds110
crc16dectr
crc16dectx
crc16dnp
crc16en13757
crc16genibus
crc16hdlc
crc16kermit
crc16maxim
crc16mcrf4xx
crc16modbus
crc16riello
crc16t10dif
crc16teledisk
crc16tms37157
crc16usb
crc16x25
crc16xmodem
crc24
crc32
crc32bzip2
crc32c
crc32d
crc32ecma267
crc32jamcrc
crc32mpeg2
crc32posix
crc32q
crc32xfer
crc64
crc64ecma182
crc64iso
crc64we
crc64xz
crc8cdma2000
crc8darc
crc8dvbs2
crc8ebu
crc8icode
crc8itu
crc8maxim
crc8rohc
crc8smbus
crc8wcdma
crca
entropy
entropy_fract
fletcher16
fletcher32
fletcher64
fletcher8
md2
md4
md5
parity
sha1
sha256
sha384
sha512
sm3
ssdeep
xor16
xor8
xxhash32
EOF
RUN

NAME=Set the debug backend
FILE==
CMDS=<<EOF
Ld null
Ld~!windbg,native[1-3]
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]}
Ldt:name/ne/native:name/ne/winkd:name/ne/windbg:name/cols/selected/license/bits/arch
EOF
EXPECT=<<EOF
--- bf LGPL3
--- bochs LGPL3
--- dmp LGPL3
--- gdb LGPL3
--- io MIT
dbg null MIT
--- qnx LGPL3
--- winkd LGPL3
{"arch":"bf","name":"bf","bits":"32 64","license":"LGPL3","version":""}
{"arch":"x86","name":"bochs","bits":"16 32 64","license":"LGPL3","version":""}
{"arch":"x86,arm","name":"dmp","bits":"32 64","license":"LGPL3","version":""}
{"arch":"x86,arm,sh,mips,avr,lm32,v850,ba2,tricore","name":"gdb","bits":"16 32 64","license":"LGPL3","version":""}
{"arch":"any","name":"io","bits":"32 64","license":"MIT","version":""}
{"arch":"any","name":"null","bits":"32 64","license":"MIT","version":"","selected":true}
{"arch":"x86,arm","name":"qnx","bits":"32 ","license":"LGPL3","version":""}
name  selected license bits     arch                                      
--------------------------------------------------------------------------
bf             LGPL3   32 64    bf
bochs          LGPL3   16 32 64 x86
dmp            LGPL3   32 64    x86,arm
gdb            LGPL3   16 32 64 x86,arm,sh,mips,avr,lm32,v850,ba2,tricore
io             MIT     32 64    any
null  yes      MIT     32 64    any
qnx            LGPL3   32       x86,arm
EOF
RUN

NAME=Print the asm/analysis plugins
FILE==
CMDS=<<EOF
La
Laj
Lat
Laq
EOF
EXPECT=<<EOF
_dAeI 8 16       6502        LGPL3   6502/NES/C64/Tamagotchi/T-1000 CPU
adAeI 8          8051        PD      Intel 8051 disassembler
_dA__ 64         alpha       LGPL3   DEC Alpha Capstone-based disassembler
_dA__ 32         amd29k      LGPL3   AMD 29k RISC disassembler (by deroad)
_dA__ 16 32      arc         GPL3    Argonaut RISC Core
adAeI 16 32 64   arm         BSD     ARM Capstone-based 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   Atmel AVR disassembler
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 CIL/MSIL (Common Intermediate Language) bytecode disassembler
_dA__ 16         cr16        LGPL3   CompactRISC CR16 disassembler
_dA__ 32         cris        GPL3    Axis Communications 32-bit embedded processor disassembler (by pancake)
adA__ 32 64      dalvik      LGPL3   Dalvik (Android VM) bytecode disassembler
ad___ 16         dcpu16      PD      Mojang's DCPU-16 disassembler
_dA__ 32 64      ebc         LGPL3   EFI bytecode disassembler (by Fedor Sakharov)
adAeI 16         gb          LGPL3   GameBoy(TM) (z80-like) (by condret)
_dAe_ 16         h8300       LGPL3   Hitachi/Renesas 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 disassembler
_dA__ 8          i8080       BSD     Intel 8080 disassembler
adA__ 32         java        LGPL-3  Java bytecode disassembler (by deroad)
_d___ 32         lanai       GPL3    Google LANAI disassembler
_d___ 8          lh5801      LGPL3   SHARP LH5801 disassembler
_d___ 32         lm32        BSD     Lattice Micro 32 ISA disassembler (by Felix Held)
_dA__ 32 64      loongarch   LGPL3   Loongson LoongArch disassembler
adA__ 8          luac        LGPL3   Lua bytecode (LUAC) disassembler
_dA__ 8 32       m680x       BSD     Motorola 680X Capstone-based disassembler
_dA__ 32         m68k        BSD     Motorola 68K Capstone-based disassembler
_dA__ 32         malbolge    LGPL3   Malbolge Ternary VM bytecode disassembler (by condret)
_dA__ 32         mcore       LGPL3   Motorola MCORE disassembler
_d___ 16         mcs96       LGPL3   Intel MCS-96 disassembler (by condret)
adAeI 16 32 64   mips        BSD     MIPS Capstone-based disassembler
_dA_I 16         msp430      LGPL3   Texas Instruments MSP430 disassembler
adA__ 16 32 64   null        MIT     NULL (empty) disassembler (by pancake) v1.0.0
_dA__ 32         or1k        LGPL3   OpenRISC 1000 disassembler
_dAeI 16 32      pic         LGPL3   Microchip PIC disassembler
_dAeI 32 64      ppc         BSD     PowerPC Capstone-based disassembler (by pancake)
a____ 32 64      ppc.as      LGPL3   as PPC Assembler (use RZ_PPC_AS environment) (by eagleoflqj)
_dA__ 32         propeller   LGPL3   Parallax Propeller disassembler
_dA__ 8 16       pyc         LGPL3   Python bytecode (PYC) disassembler
_dAe_ 32 64      riscv       GPL3    RISC-V disassembler
_dAe_ 32 64      riscv.cs    BSD     RISC-V Capstone-based disassembler
adA__ 32         rl78        LGPL3   Renesas RL78 disassembler (by Bastian Engel)
_dA__ 32         rsp         LGPL3   Nintendo N64 Reality Signal Processor disassembler
_dA__ 32         rx          LGPL3   Renesas RX Family disassembler (by Heersin)
adAeI 32         sh          LGPL3   Hitachi/Renesas SuperH-4 disassembler (by DMaroo)
_dA__ 8 16       snes        LGPL3   SuperNES CPU disassembler
_dA__ 32 64      sparc       BSD     Sun SPARC Capstone-based disassembler
_dA__ 32 64      sparc.gnu   GPL3    Sun SPARC disassembler
_dA__ 16         spc700      LGPL3   Sony SPC700 (Nintendo SuperNES sound-chip) disassembler
_dA__ 32 64      sysz        BSD     IBM SystemZ (S/390) Capstone-based disassembler
_dA__ 32         tms320      LGPL3   Texas Instruments TMS320 DSP family (c54x,c55x,c55x+,c64x) disassembler
_dA_I 32         tricore     BSD     Siemens TriCore Capstone-based disassembler (by billow)
_dAeI 32         v810        LGPL3   NEC V810 disassembler (by pancake)
_dAeI 32         v850        LGPL3   NEC/Renesas V850 disassembler
_dA__ 8 32       vax         GPL3    DEC VAX disassembler
adA__ 32         wasm        MIT     WebAssembly disassembler (by cgvwzq) v0.1.0
_dAeI 16 32 64   x86         BSD     X86/X86_64 Capstone-based 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      Cambridge Consultants XAP4 RISC (CSR) disassembler
_dA__ 32         xcore       BSD     XCore Capstone-based disassembler (by pancake)
_dAeI 32         xtensa      LGPL3   Tensilica Xtensa Capstone-based disassembler (by billow)
adA__ 8          z80         GPL3    Zilog Z80 disassembler (by condret)
["6502":{"bits":"8 16 ","license":"LGPL3","description":"6502/NES/C64/Tamagotchi/T-1000 CPU","features":"_dAeI"},"8051":{"bits":"8 ","license":"PD","description":"Intel 8051 disassembler","features":"adAeI"},"alpha":{"bits":"64","license":"LGPL3","description":"DEC Alpha Capstone-based disassembler","features":"_dA__"},"amd29k":{"bits":"32 ","license":"LGPL3","description":"AMD 29k RISC disassembler","features":"_dA__","author":"deroad"},"arc":{"bits":"16 32 ","license":"GPL3","description":"Argonaut RISC Core","features":"_dA__"},"arm":{"bits":"16 32 64","license":"BSD","description":"ARM Capstone-based 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____","author":"pancake"},"avr":{"bits":"8 16 ","license":"LGPL3","description":"Atmel AVR disassembler","features":"adAeI"},"bf":{"bits":"16 32 64","license":"LGPL3","description":"Brainfuck","features":"adA_I","author":"pancake, nibble","version":"4.0.0"},"chip8":{"bits":"32 ","license":"LGPL3","description":"Chip8 disassembler","features":"_dA__"},"cil":{"bits":"16 32 64","license":"LGPL3","description":".NET CIL/MSIL (Common Intermediate Language) bytecode disassembler","features":"_dA__"},"cr16":{"bits":"16 ","license":"LGPL3","description":"CompactRISC CR16 disassembler","features":"_dA__"},"cris":{"bits":"32 ","license":"GPL3","description":"Axis Communications 32-bit embedded processor disassembler","features":"_dA__","author":"pancake"},"dalvik":{"bits":"32 64","license":"LGPL3","description":"Dalvik (Android VM) bytecode disassembler","features":"adA__"},"dcpu16":{"bits":"16 ","license":"PD","description":"Mojang's DCPU-16 disassembler","features":"ad___"},"ebc":{"bits":"32 64","license":"LGPL3","description":"EFI bytecode disassembler","features":"_dA__","author":"Fedor Sakharov"},"gb":{"bits":"16 ","license":"LGPL3","description":"GameBoy(TM) (z80-like)","features":"adAeI","author":"condret"},"h8300":{"bits":"16 ","license":"LGPL3","description":"Hitachi/Renesas H8/300 disassembly plugin","features":"_dAe_"},"hexagon":{"bits":"32 ","license":"LGPL3","description":"Qualcomm Hexagon (QDSP6) V6","features":"_dA_I","author":"Rot127"},"hppa":{"bits":"32 ","license":"GPL3","description":"HP PA-RISC","features":"_d___"},"i4004":{"bits":"4 ","license":"LGPL3","description":"Intel 4004 disassembler","features":"_dA__"},"i8080":{"bits":"8 ","license":"BSD","description":"Intel 8080 disassembler","features":"_dA__"},"java":{"bits":"32 ","license":"LGPL-3","description":"Java bytecode disassembler","features":"adA__","author":"deroad"},"lanai":{"bits":"32 ","license":"GPL3","description":"Google LANAI disassembler","features":"_d___"},"lh5801":{"bits":"8 ","license":"LGPL3","description":"SHARP LH5801 disassembler","features":"_d___"},"lm32":{"bits":"32 ","license":"BSD","description":"Lattice Micro 32 ISA disassembler","features":"_d___","author":"Felix Held"},"loongarch":{"bits":"32 64","license":"LGPL3","description":"Loongson LoongArch disassembler","features":"_dA__"},"luac":{"bits":"8 ","license":"LGPL3","description":"Lua bytecode (LUAC) disassembler","features":"adA__"},"m680x":{"bits":"8 32 ","license":"BSD","description":"Motorola 680X Capstone-based disassembler","features":"_dA__"},"m68k":{"bits":"32 ","license":"BSD","description":"Motorola 68K Capstone-based disassembler","features":"_dA__"},"malbolge":{"bits":"32 ","license":"LGPL3","description":"Malbolge Ternary VM bytecode disassembler","features":"_dA__","author":"condret"},"mcore":{"bits":"32 ","license":"LGPL3","description":"Motorola MCORE disassembler","features":"_dA__"},"mcs96":{"bits":"16 ","license":"LGPL3","description":"Intel MCS-96 disassembler","features":"_d___","author":"condret"},"mips":{"bits":"16 32 64","license":"BSD","description":"MIPS Capstone-based disassembler","features":"adAeI"},"msp430":{"bits":"16 ","license":"LGPL3","description":"Texas Instruments MSP430 disassembler","features":"_dA_I"},"null":{"bits":"16 32 64","license":"MIT","description":"NULL (empty) disassembler","features":"adA__","author":"pancake","version":"1.0.0"},"or1k":{"bits":"32 ","license":"LGPL3","description":"OpenRISC 1000 disassembler","features":"_dA__"},"pic":{"bits":"16 32 ","license":"LGPL3","description":"Microchip PIC disassembler","features":"_dAeI"},"ppc":{"bits":"32 64","license":"BSD","description":"PowerPC Capstone-based disassembler","features":"_dAeI","author":"pancake"},"ppc.as":{"bits":"32 64","license":"LGPL3","description":"as PPC Assembler (use RZ_PPC_AS environment)","features":"a____","author":"eagleoflqj"},"propeller":{"bits":"32 ","license":"LGPL3","description":"Parallax Propeller disassembler","features":"_dA__"},"pyc":{"bits":"8 16 ","license":"LGPL3","description":"Python bytecode (PYC) disassembler","features":"_dA__"},"riscv":{"bits":"32 64","license":"GPL3","description":"RISC-V disassembler","features":"_dAe_"},"riscv.cs":{"bits":"32 64","license":"BSD","description":"RISC-V Capstone-based disassembler","features":"_dAe_"},"rl78":{"bits":"32 ","license":"LGPL3","description":"Renesas RL78 disassembler","features":"adA__","author":"Bastian Engel"},"rsp":{"bits":"32 ","license":"LGPL3","description":"Nintendo N64 Reality Signal Processor disassembler","features":"_dA__"},"rx":{"bits":"32 ","license":"LGPL3","description":"Renesas RX Family disassembler","features":"_dA__","author":"Heersin"},"sh":{"bits":"32 ","license":"LGPL3","description":"Hitachi/Renesas SuperH-4 disassembler","features":"adAeI","author":"DMaroo"},"snes":{"bits":"8 16 ","license":"LGPL3","description":"SuperNES CPU disassembler","features":"_dA__"},"sparc":{"bits":"32 64","license":"BSD","description":"Sun SPARC Capstone-based disassembler","features":"_dA__"},"sparc.gnu":{"bits":"32 64","license":"GPL3","description":"Sun SPARC disassembler","features":"_dA__"},"spc700":{"bits":"16 ","license":"LGPL3","description":"Sony SPC700 (Nintendo SuperNES sound-chip) disassembler","features":"_dA__"},"sysz":{"bits":"32 64","license":"BSD","description":"IBM SystemZ (S/390) Capstone-based disassembler","features":"_dA__"},"tms320":{"bits":"32 ","license":"LGPL3","description":"Texas Instruments TMS320 DSP family (c54x,c55x,c55x+,c64x) disassembler","features":"_dA__"},"tricore":{"bits":"32 ","license":"BSD","description":"Siemens TriCore Capstone-based disassembler","features":"_dA_I","author":"billow"},"v810":{"bits":"32 ","license":"LGPL3","description":"NEC V810 disassembler","features":"_dAeI","author":"pancake"},"v850":{"bits":"32 ","license":"LGPL3","description":"NEC/Renesas V850 disassembler","features":"_dAeI"},"vax":{"bits":"8 32 ","license":"GPL3","description":"DEC VAX disassembler","features":"_dA__"},"wasm":{"bits":"32 ","license":"MIT","description":"WebAssembly disassembler","features":"adA__","author":"cgvwzq","version":"0.1.0"},"x86":{"bits":"16 32 64","license":"BSD","description":"X86/X86_64 Capstone-based 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":"Cambridge Consultants XAP4 RISC (CSR) disassembler","features":"_dA__"},"xcore":{"bits":"32 ","license":"BSD","description":"XCore Capstone-based disassembler","features":"_dA__","author":"pancake"},"xtensa":{"bits":"32 ","license":"LGPL3","description":"Tensilica Xtensa Capstone-based disassembler","features":"_dAeI","author":"billow"},"z80":{"bits":"8 ","license":"GPL3","description":"Zilog Z80 disassembler","features":"adA__","author":"condret"}]
name  bits     features  license version author          description                                                             
---------------------------------------------------------------------------------------------------------------------------------
_dAeI 8 16     6502      LGPL3                           6502/NES/C64/Tamagotchi/T-1000 CPU
adAeI 8        8051      PD                              Intel 8051 disassembler
_dA__ 64       alpha     LGPL3                           DEC Alpha Capstone-based disassembler
_dA__ 32       amd29k    LGPL3           deroad          AMD 29k RISC disassembler
_dA__ 16 32    arc       GPL3                            Argonaut RISC Core
adAeI 16 32 64 arm       BSD                             ARM Capstone-based disassembler
a____ 16 32 64 arm.as    LGPL3           pancake         as ARM Assembler (use RZ_ARM32_AS and RZ_ARM64_AS environment)
adAeI 8 16     avr       LGPL3                           Atmel AVR disassembler
adA_I 16 32 64 bf        LGPL3   4.0.0   pancake, nibble Brainfuck
_dA__ 32       chip8     LGPL3                           Chip8 disassembler
_dA__ 16 32 64 cil       LGPL3                           .NET CIL/MSIL (Common Intermediate Language) bytecode disassembler
_dA__ 16       cr16      LGPL3                           CompactRISC CR16 disassembler
_dA__ 32       cris      GPL3            pancake         Axis Communications 32-bit embedded processor disassembler
adA__ 32 64    dalvik    LGPL3                           Dalvik (Android VM) bytecode disassembler
ad___ 16       dcpu16    PD                              Mojang's DCPU-16 disassembler
_dA__ 32 64    ebc       LGPL3           Fedor Sakharov  EFI bytecode disassembler
adAeI 16       gb        LGPL3           condret         GameBoy(TM) (z80-like)
_dAe_ 16       h8300     LGPL3                           Hitachi/Renesas H8/300 disassembly plugin
_dA_I 32       hexagon   LGPL3           Rot127          Qualcomm Hexagon (QDSP6) V6
_d___ 32       hppa      GPL3                            HP PA-RISC
_dA__ 4        i4004     LGPL3                           Intel 4004 disassembler
_dA__ 8        i8080     BSD                             Intel 8080 disassembler
adA__ 32       java      LGPL-3          deroad          Java bytecode disassembler
_d___ 32       lanai     GPL3                            Google LANAI disassembler
_d___ 8        lh5801    LGPL3                           SHARP LH5801 disassembler
_d___ 32       lm32      BSD             Felix Held      Lattice Micro 32 ISA disassembler
_dA__ 32 64    loongarch LGPL3                           Loongson LoongArch disassembler
adA__ 8        luac      LGPL3                           Lua bytecode (LUAC) disassembler
_dA__ 8 32     m680x     BSD                             Motorola 680X Capstone-based disassembler
_dA__ 32       m68k      BSD                             Motorola 68K Capstone-based disassembler
_dA__ 32       malbolge  LGPL3           condret         Malbolge Ternary VM bytecode disassembler
_dA__ 32       mcore     LGPL3                           Motorola MCORE disassembler
_d___ 16       mcs96     LGPL3           condret         Intel MCS-96 disassembler
adAeI 16 32 64 mips      BSD                             MIPS Capstone-based disassembler
_dA_I 16       msp430    LGPL3                           Texas Instruments MSP430 disassembler
adA__ 16 32 64 null      MIT     1.0.0   pancake         NULL (empty) disassembler
_dA__ 32       or1k      LGPL3                           OpenRISC 1000 disassembler
_dAeI 16 32    pic       LGPL3                           Microchip PIC disassembler
_dAeI 32 64    ppc       BSD             pancake         PowerPC Capstone-based disassembler
a____ 32 64    ppc.as    LGPL3           eagleoflqj      as PPC Assembler (use RZ_PPC_AS environment)
_dA__ 32       propeller LGPL3                           Parallax Propeller disassembler
_dA__ 8 16     pyc       LGPL3                           Python bytecode (PYC) disassembler
_dAe_ 32 64    riscv     GPL3                            RISC-V disassembler
_dAe_ 32 64    riscv.cs  BSD                             RISC-V Capstone-based disassembler
adA__ 32       rl78      LGPL3           Bastian Engel   Renesas RL78 disassembler
_dA__ 32       rsp       LGPL3                           Nintendo N64 Reality Signal Processor disassembler
_dA__ 32       rx        LGPL3           Heersin         Renesas RX Family disassembler
adAeI 32       sh        LGPL3           DMaroo          Hitachi/Renesas SuperH-4 disassembler
_dA__ 8 16     snes      LGPL3                           SuperNES CPU disassembler
_dA__ 32 64    sparc     BSD                             Sun SPARC Capstone-based disassembler
_dA__ 32 64    sparc.gnu GPL3                            Sun SPARC disassembler
_dA__ 16       spc700    LGPL3                           Sony SPC700 (Nintendo SuperNES sound-chip) disassembler
_dA__ 32 64    sysz      BSD                             IBM SystemZ (S/390) Capstone-based disassembler
_dA__ 32       tms320    LGPL3                           Texas Instruments TMS320 DSP family (c54x,c55x,c55x+,c64x) disassembler
_dA_I 32       tricore   BSD             billow          Siemens TriCore Capstone-based disassembler
_dAeI 32       v810      LGPL3           pancake         NEC V810 disassembler
_dAeI 32       v850      LGPL3                           NEC/Renesas V850 disassembler
_dA__ 8 32     vax       GPL3                            DEC VAX disassembler
adA__ 32       wasm      MIT     0.1.0   cgvwzq          WebAssembly disassembler
_dAeI 16 32 64 x86       BSD                             X86/X86_64 Capstone-based 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                              Cambridge Consultants XAP4 RISC (CSR) disassembler
_dA__ 32       xcore     BSD             pancake         XCore Capstone-based disassembler
_dAeI 32       xtensa    LGPL3           billow          Tensilica Xtensa Capstone-based disassembler
adA__ 8        z80       GPL3            condret         Zilog Z80 disassembler
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
loongarch
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
FILE==
CMDS=<<EOF
La a
Laj I
Lat dAeI
Laq Ae
EOF
EXPECT=<<EOF
adAeI 8          8051        PD      Intel 8051 disassembler
adAeI 16 32 64   arm         BSD     ARM Capstone-based 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   Atmel AVR disassembler
adA_I 16 32 64   bf          LGPL3   Brainfuck (by pancake, nibble) v4.0.0
adA__ 32 64      dalvik      LGPL3   Dalvik (Android VM) bytecode disassembler
ad___ 16         dcpu16      PD      Mojang's DCPU-16 disassembler
adAeI 16         gb          LGPL3   GameBoy(TM) (z80-like) (by condret)
adA__ 32         java        LGPL-3  Java bytecode disassembler (by deroad)
adA__ 8          luac        LGPL3   Lua bytecode (LUAC) disassembler
adAeI 16 32 64   mips        BSD     MIPS Capstone-based disassembler
adA__ 16 32 64   null        MIT     NULL (empty) disassembler (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   Hitachi/Renesas SuperH-4 disassembler (by DMaroo)
adA__ 32         wasm        MIT     WebAssembly disassembler (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 disassembler (by condret)
["6502":{"bits":"8 16 ","license":"LGPL3","description":"6502/NES/C64/Tamagotchi/T-1000 CPU","features":"_dAeI"},"8051":{"bits":"8 ","license":"PD","description":"Intel 8051 disassembler","features":"adAeI"},"arm":{"bits":"16 32 64","license":"BSD","description":"ARM Capstone-based disassembler","features":"adAeI"},"avr":{"bits":"8 16 ","license":"LGPL3","description":"Atmel AVR disassembler","features":"adAeI"},"bf":{"bits":"16 32 64","license":"LGPL3","description":"Brainfuck","features":"adA_I","author":"pancake, nibble","version":"4.0.0"},"gb":{"bits":"16 ","license":"LGPL3","description":"GameBoy(TM) (z80-like)","features":"adAeI","author":"condret"},"hexagon":{"bits":"32 ","license":"LGPL3","description":"Qualcomm Hexagon (QDSP6) V6","features":"_dA_I","author":"Rot127"},"mips":{"bits":"16 32 64","license":"BSD","description":"MIPS Capstone-based disassembler","features":"adAeI"},"msp430":{"bits":"16 ","license":"LGPL3","description":"Texas Instruments MSP430 disassembler","features":"_dA_I"},"pic":{"bits":"16 32 ","license":"LGPL3","description":"Microchip PIC disassembler","features":"_dAeI"},"ppc":{"bits":"32 64","license":"BSD","description":"PowerPC Capstone-based disassembler","features":"_dAeI","author":"pancake"},"sh":{"bits":"32 ","license":"LGPL3","description":"Hitachi/Renesas SuperH-4 disassembler","features":"adAeI","author":"DMaroo"},"tricore":{"bits":"32 ","license":"BSD","description":"Siemens TriCore Capstone-based disassembler","features":"_dA_I","author":"billow"},"v810":{"bits":"32 ","license":"LGPL3","description":"NEC V810 disassembler","features":"_dAeI","author":"pancake"},"v850":{"bits":"32 ","license":"LGPL3","description":"NEC/Renesas V850 disassembler","features":"_dAeI"},"x86":{"bits":"16 32 64","license":"BSD","description":"X86/X86_64 Capstone-based disassembler","features":"_dAeI"},"xtensa":{"bits":"32 ","license":"LGPL3","description":"Tensilica Xtensa Capstone-based disassembler","features":"_dAeI","author":"billow"}]
name  bits     features license version author  description                                  
---------------------------------------------------------------------------------------------
_dAeI 8 16     6502     LGPL3                   6502/NES/C64/Tamagotchi/T-1000 CPU
adAeI 8        8051     PD                      Intel 8051 disassembler
adAeI 16 32 64 arm      BSD                     ARM Capstone-based disassembler
adAeI 8 16     avr      LGPL3                   Atmel AVR disassembler
adAeI 16       gb       LGPL3           condret GameBoy(TM) (z80-like)
adAeI 16 32 64 mips     BSD                     MIPS Capstone-based disassembler
_dAeI 16 32    pic      LGPL3                   Microchip PIC disassembler
_dAeI 32 64    ppc      BSD             pancake PowerPC Capstone-based disassembler
adAeI 32       sh       LGPL3           DMaroo  Hitachi/Renesas SuperH-4 disassembler
_dAeI 32       v810     LGPL3           pancake NEC V810 disassembler
_dAeI 32       v850     LGPL3                   NEC/Renesas V850 disassembler
_dAeI 16 32 64 x86      BSD                     X86/X86_64 Capstone-based disassembler
_dAeI 32       xtensa   LGPL3           billow  Tensilica Xtensa Capstone-based disassembler
6502
8051
arm
avr
gb
h8300
mips
pic
ppc
riscv
riscv.cs
sh
v810
v850
x86
xtensa
EOF
RUN

NAME=Print cpu in asm/analysis plugin
FILE==
CMDS=<<EOF
Lac avr
Lacj avr
EOF
EXPECT=<<EOF
ATmega8
ATmega1280
ATmega1281
ATmega16
ATmega168
ATmega2560
ATmega2561
ATmega328p
ATmega32u4
ATmega48
ATmega640
ATmega88
ATxmega128a4u
ATTiny48
ATTiny88
["ATmega8","ATmega1280","ATmega1281","ATmega16","ATmega168","ATmega2560","ATmega2561","ATmega328p","ATmega32u4","ATmega48","ATmega640","ATmega88","ATxmega128a4u","ATTiny48","ATTiny88"]
EOF
RUN

NAME=Print the lang plugins
FILE==
CMDS=<<EOF
Ll~^pipe
Ll~lib
# Llj cannot filter for json
Llt:name/eq/pipe
Llq~^pipe
Llq~lib
EOF
EXPECT=<<EOF
pipe: Use #!pipe node script.js (LGPL)
lib: Load libs directly into rizin (LGPL)
name description               license 
---------------------------------------
pipe Use #!pipe node script.js LGPL
pipe
lib
EOF
RUN
