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
luac.pseudo     luac 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
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":"luac.pseudo","desc":"luac 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":"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
luac.pseudo   luac 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
z80.pseudo    z80 pseudo syntax
6502.pseudo
arm.pseudo
avr.pseudo
chip8.pseudo
dalvik.pseudo
luac.pseudo
m68k.pseudo
mips.pseudo
ppc.pseudo
sh.pseudo
tms320.pseudo
v850.pseudo
wasm.pseudo
x86.pseudo
z80.pseudo
EOF
RUN

NAME=Print the core plugins
FILE==
CMDS=<<EOF
Lc
Lcj
Lct
Lcq
EOF
EXPECT=<<EOF
dex: Suite of dex commands, type `dex` for more info (Made by deroad, v1.0, LGPL-3.0-only)
java: Suite of java commands, type `java` for more info (Made by deroad, v1.0, 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":"java","description":"Suite of java commands, type `java` for more info","author":"deroad","version":"1.0","license":"LGPL-3.0-only"}]
name license       author version description                                       
------------------------------------------------------------------------------------
dex  LGPL-3.0-only deroad 1.0     Suite of dex commands, type `dex` for more info
java LGPL-3.0-only deroad 1.0     Suite of java commands, type `java` for more info
dex
java
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
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_  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_  titxt    Texas Instruments TI-TXT file format (LGPL-3) titxt://
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":"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":"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":"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":"titxt","description":"Texas Instruments TI-TXT file format","license":"LGPL-3","uris":["titxt://"]},{"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
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_  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_  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-3  titxt   titxt://                                                            Texas Instruments TI-TXT file format
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
bochs
debug
default
dmp
fd
gdb
gzip
ihex
mach
malloc
null
procpid
ptrace
qnx
self
shm
sparse
srec
tcp
titxt
vfile
winedbg
winkd
zip
EOF
RUN

NAME=Print the bin plugins
FILE==
CMDS=<<EOF
Li
Lij
Lit
Liq
EOF
EXPECT=<<EOF
any          LGPL3     nibble          Dummy format binary                    
art          LGPL3     pancake         Android Runtime                        
avr          LGPL3     deroad          ATmel AVR usermode                     
bf           LGPL3     pancake         Brainfuck                              
bflt         LGPL3     Oscar Salvador  bFLT uClinux binary                    
bios         LGPL      pancake         BIOS binary                            
bootimg      LGPL3     pancake         Android Boot Image                     
c166         LGPL3     SSharshunov     Siemens/Infineon C166 family microcontroller binary 
cgc          LGPL3     ret2libc        CGC (Cyber Grand Challenge)            
coff         LGPL3     Fedor Sakharov  COFF (Common Object File Format)       
dex          LGPL3     deroad          DEX (Dalvik Executable)                
dmp64        LGPL3     abcSup          Windows x64 Crash Dump                 
dol          BSD       pancake         Nintendo Dolphin binary                
dyldcache    LGPL3     pancake         Apple DYLD Cache                       
ecoff        LGPL3     deroad          ECOFF (Extended Common Object File Format) 
elf          LGPL3     nibble          ELF (Executable and Linkable Format)   
elf64        LGPL3     nibble          ELF64 (64-bit Executable and Linkable Format) 
gns1         LGPL3     Zapper9982      Apple C4000 baseband firmware (GNS1.bin) 
hunk         LGPL3     StefBisti       Amiga Hunk file format                 
java         LGPL3     deroad          Java binary                            
kernelcache  LGPL3     mrmacete        Apple Kernelcache                      
le           LGPL3     GustavoLCR      LE/LX                                  
luac         LGPL3     Heersin         Lua compiled binary                    
mach0        LGPL3     pancake         Mach-O (Mach Object)                   
mach064      LGPL3     nibble          Mach-O 64-bit                          
mbn          LGPL3     pancake         MBN/SBL bootloader binary              
mdmp         LGPL3     Davis           Windows MiniDump                       
mdt          LGPL3     Rot127          Qualcomm Peripheral Image Loader (32bit only) 
menuet       LGPL3     pancake         Menuet/KolibriOS binary                
mz           MIT       nodepad         MZ (DOS MZ Executable)                 
ne           LGPL3     GustavoLCR      NE (New Executable)                    
nes          MIT       maijin          Nintendo NES                           
nin3ds       LGPL3     a0rtega         Nintendo 3DS Firmware                  
ninds        LGPL3     a0rtega         Nintendo DS binary                     
ningb        LGPL3     condret         Nintendo Game Boy                      
ningba       LGPL3     condret         Nintendo Game Boy Advance              
nro          MIT       pancake         Nintendo Switch NRO                    
nso          MIT       rkx1209         Nintendo Switch NSO                    
omf          LGPL3     ampotos         OMF (Object Module Format)             
omf166       LGPL3     SSharshunov     OMF166 (Object Module Format by Siemens) 
p9           LGPL3     pancake         Plan9 binary                           
pe           LGPL3     nibble          PE (Portable Executable)               
pe64         LGPL3     nibble          PE64 (PE32+) binary                    
pebble       LGPL      pancake         Pebble Watch App                       
pef          LGPL3     farhan-25       Preferred Executable Format            
prg          LGPL3     thestr4ng3r     C64 PRG (Commodore 64)                 
psxexe       LGPL3     Dax89           Sony PlayStation 1 executable          
pyc          LGPL3     c0riolis        Python byte-compiled                   
qnx          LGPL3     deepakchethan   QNX executable                         
sfc          LGPL3     usrshare        Super NES / Super Famicom ROM          
smd          LGPL3     pancake         SEGA Genesis / MegaDrive ROM           
sms          LGPL3     shengdi         SEGA MasterSystem / GameGear ROM       
spc700       LGPL3     maijin          SNES SPC700 sound data                 
symbols      MIT       pancake         Apple Symbols file                     
te           LGPL3     xvilka          TE (Terse Executable)                  
vsf          LGPL3     riq             VICE snapshot file                     
wasm         MIT       pancake         WebAssembly                            
xbe          LGPL3     LemonBoy        Microsoft Xbox XBE (Xbox Executable)   
z64          LGPL3     lowlyw          Nintendo 64 Big-Endian binary          
zimg         LGPL3     deroad          zImage format binary                   
.cart        LGPL3                     CaRT (Compressed and RC4 Transport) extractor
.fatmach0    LGPL3                     Fat Mach-O binary extractor
.sep64       LGPL3                     64-bit SEP binary extractor
[{"name":"any","description":"Dummy format binary","license":"LGPL3","author":"nibble"},{"name":"art","description":"Android Runtime","license":"LGPL3","author":"pancake"},{"name":"avr","description":"ATmel AVR usermode","license":"LGPL3","author":"deroad"},{"name":"bf","description":"Brainfuck","license":"LGPL3","author":"pancake"},{"name":"bflt","description":"bFLT uClinux binary","license":"LGPL3","author":"Oscar Salvador"},{"name":"bios","description":"BIOS binary","license":"LGPL","author":"pancake"},{"name":"bootimg","description":"Android Boot Image","license":"LGPL3","author":"pancake"},{"name":"c166","description":"Siemens/Infineon C166 family microcontroller binary","license":"LGPL3","author":"SSharshunov"},{"name":"cgc","description":"CGC (Cyber Grand Challenge)","license":"LGPL3","author":"ret2libc"},{"name":"coff","description":"COFF (Common Object File Format)","license":"LGPL3","author":"Fedor Sakharov"},{"name":"dex","description":"DEX (Dalvik Executable)","license":"LGPL3","author":"deroad"},{"name":"dmp64","description":"Windows x64 Crash Dump","license":"LGPL3","author":"abcSup"},{"name":"dol","description":"Nintendo Dolphin binary","license":"BSD","author":"pancake"},{"name":"dyldcache","description":"Apple DYLD Cache","license":"LGPL3","author":"pancake"},{"name":"ecoff","description":"ECOFF (Extended Common Object File Format)","license":"LGPL3","author":"deroad"},{"name":"elf","description":"ELF (Executable and Linkable Format)","license":"LGPL3","author":"nibble"},{"name":"elf64","description":"ELF64 (64-bit Executable and Linkable Format)","license":"LGPL3","author":"nibble"},{"name":"gns1","description":"Apple C4000 baseband firmware (GNS1.bin)","license":"LGPL3","author":"Zapper9982"},{"name":"hunk","description":"Amiga Hunk file format","license":"LGPL3","author":"StefBisti"},{"name":"java","description":"Java binary","license":"LGPL3","author":"deroad"},{"name":"kernelcache","description":"Apple Kernelcache","license":"LGPL3","author":"mrmacete"},{"name":"le","description":"LE/LX","license":"LGPL3","author":"GustavoLCR"},{"name":"luac","description":"Lua compiled binary","license":"LGPL3","author":"Heersin"},{"name":"mach0","description":"Mach-O (Mach Object)","license":"LGPL3","author":"pancake"},{"name":"mach064","description":"Mach-O 64-bit","license":"LGPL3","author":"nibble"},{"name":"mbn","description":"MBN/SBL bootloader binary","license":"LGPL3","author":"pancake"},{"name":"mdmp","description":"Windows MiniDump","license":"LGPL3","author":"Davis"},{"name":"mdt","description":"Qualcomm Peripheral Image Loader (32bit only)","license":"LGPL3","author":"Rot127"},{"name":"menuet","description":"Menuet/KolibriOS binary","license":"LGPL3","author":"pancake"},{"name":"mz","description":"MZ (DOS MZ Executable)","license":"MIT","author":"nodepad"},{"name":"ne","description":"NE (New Executable)","license":"LGPL3","author":"GustavoLCR"},{"name":"nes","description":"Nintendo NES","license":"MIT","author":"maijin"},{"name":"nin3ds","description":"Nintendo 3DS Firmware","license":"LGPL3","author":"a0rtega"},{"name":"ninds","description":"Nintendo DS binary","license":"LGPL3","author":"a0rtega"},{"name":"ningb","description":"Nintendo Game Boy","license":"LGPL3","author":"condret"},{"name":"ningba","description":"Nintendo Game Boy Advance","license":"LGPL3","author":"condret"},{"name":"nro","description":"Nintendo Switch NRO","license":"MIT","author":"pancake"},{"name":"nso","description":"Nintendo Switch NSO","license":"MIT","author":"rkx1209"},{"name":"omf","description":"OMF (Object Module Format)","license":"LGPL3","author":"ampotos"},{"name":"omf166","description":"OMF166 (Object Module Format by Siemens)","license":"LGPL3","author":"SSharshunov"},{"name":"p9","description":"Plan9 binary","license":"LGPL3","author":"pancake"},{"name":"pe","description":"PE (Portable Executable)","license":"LGPL3","author":"nibble"},{"name":"pe64","description":"PE64 (PE32+) binary","license":"LGPL3","author":"nibble"},{"name":"pebble","description":"Pebble Watch App","license":"LGPL","author":"pancake"},{"name":"pef","description":"Preferred Executable Format","license":"LGPL3","author":"farhan-25"},{"name":"prg","description":"C64 PRG (Commodore 64)","license":"LGPL3","author":"thestr4ng3r"},{"name":"psxexe","description":"Sony PlayStation 1 executable","license":"LGPL3","author":"Dax89"},{"name":"pyc","description":"Python byte-compiled","license":"LGPL3","author":"c0riolis"},{"name":"qnx","description":"QNX executable","license":"LGPL3","author":"deepakchethan"},{"name":"sfc","description":"Super NES / Super Famicom ROM","license":"LGPL3","author":"usrshare"},{"name":"smd","description":"SEGA Genesis / MegaDrive ROM","license":"LGPL3","author":"pancake"},{"name":"sms","description":"SEGA MasterSystem / GameGear ROM","license":"LGPL3","author":"shengdi"},{"name":"spc700","description":"SNES SPC700 sound data","license":"LGPL3","author":"maijin"},{"name":"symbols","description":"Apple Symbols file","license":"MIT","author":"pancake"},{"name":"te","description":"TE (Terse Executable)","license":"LGPL3","author":"xvilka"},{"name":"vsf","description":"VICE snapshot file","license":"LGPL3","author":"riq"},{"name":"wasm","description":"WebAssembly","license":"MIT","author":"pancake"},{"name":"xbe","description":"Microsoft Xbox XBE (Xbox Executable)","license":"LGPL3","author":"LemonBoy"},{"name":"z64","description":"Nintendo 64 Big-Endian binary","license":"LGPL3","author":"lowlyw"},{"name":"zimg","description":"zImage format binary","license":"LGPL3","author":"deroad"},{"name":"xtr.cart","description":"CaRT (Compressed and RC4 Transport) extractor","license":"LGPL3"},{"name":"xtr.fatmach0","description":"Fat Mach-O binary extractor","license":"LGPL3"},{"name":"xtr.sep64","description":"64-bit SEP binary extractor","license":"LGPL3"}]
name         license author         description                                         version 
------------------------------------------------------------------------------------------------
any          LGPL3   nibble         Dummy format binary                                 
art          LGPL3   pancake        Android Runtime                                     
avr          LGPL3   deroad         ATmel AVR usermode                                  
bf           LGPL3   pancake        Brainfuck                                           
bflt         LGPL3   Oscar Salvador bFLT uClinux binary                                 
bios         LGPL    pancake        BIOS binary                                         
bootimg      LGPL3   pancake        Android Boot Image                                  
c166         LGPL3   SSharshunov    Siemens/Infineon C166 family microcontroller binary 
cgc          LGPL3   ret2libc       CGC (Cyber Grand Challenge)                         
coff         LGPL3   Fedor Sakharov COFF (Common Object File Format)                    
dex          LGPL3   deroad         DEX (Dalvik Executable)                             
dmp64        LGPL3   abcSup         Windows x64 Crash Dump                              
dol          BSD     pancake        Nintendo Dolphin binary                             
dyldcache    LGPL3   pancake        Apple DYLD Cache                                    
ecoff        LGPL3   deroad         ECOFF (Extended Common Object File Format)          
elf          LGPL3   nibble         ELF (Executable and Linkable Format)                
elf64        LGPL3   nibble         ELF64 (64-bit Executable and Linkable Format)       
gns1         LGPL3   Zapper9982     Apple C4000 baseband firmware (GNS1.bin)            
hunk         LGPL3   StefBisti      Amiga Hunk file format                              
java         LGPL3   deroad         Java binary                                         
kernelcache  LGPL3   mrmacete       Apple Kernelcache                                   
le           LGPL3   GustavoLCR     LE/LX                                               
luac         LGPL3   Heersin        Lua compiled binary                                 
mach0        LGPL3   pancake        Mach-O (Mach Object)                                
mach064      LGPL3   nibble         Mach-O 64-bit                                       
mbn          LGPL3   pancake        MBN/SBL bootloader binary                           
mdmp         LGPL3   Davis          Windows MiniDump                                    
mdt          LGPL3   Rot127         Qualcomm Peripheral Image Loader (32bit only)       
menuet       LGPL3   pancake        Menuet/KolibriOS binary                             
mz           MIT     nodepad        MZ (DOS MZ Executable)                              
ne           LGPL3   GustavoLCR     NE (New Executable)                                 
nes          MIT     maijin         Nintendo NES                                        
nin3ds       LGPL3   a0rtega        Nintendo 3DS Firmware                               
ninds        LGPL3   a0rtega        Nintendo DS binary                                  
ningb        LGPL3   condret        Nintendo Game Boy                                   
ningba       LGPL3   condret        Nintendo Game Boy Advance                           
nro          MIT     pancake        Nintendo Switch NRO                                 
nso          MIT     rkx1209        Nintendo Switch NSO                                 
omf          LGPL3   ampotos        OMF (Object Module Format)                          
omf166       LGPL3   SSharshunov    OMF166 (Object Module Format by Siemens)            
p9           LGPL3   pancake        Plan9 binary                                        
pe           LGPL3   nibble         PE (Portable Executable)                            
pe64         LGPL3   nibble         PE64 (PE32+) binary                                 
pebble       LGPL    pancake        Pebble Watch App                                    
pef          LGPL3   farhan-25      Preferred Executable Format                         
prg          LGPL3   thestr4ng3r    C64 PRG (Commodore 64)                              
psxexe       LGPL3   Dax89          Sony PlayStation 1 executable                       
pyc          LGPL3   c0riolis       Python byte-compiled                                
qnx          LGPL3   deepakchethan  QNX executable                                      
sfc          LGPL3   usrshare       Super NES / Super Famicom ROM                       
smd          LGPL3   pancake        SEGA Genesis / MegaDrive ROM                        
sms          LGPL3   shengdi        SEGA MasterSystem / GameGear ROM                    
spc700       LGPL3   maijin         SNES SPC700 sound data                              
symbols      MIT     pancake        Apple Symbols file                                  
te           LGPL3   xvilka         TE (Terse Executable)                               
vsf          LGPL3   riq            VICE snapshot file                                  
wasm         MIT     pancake        WebAssembly                                         
xbe          LGPL3   LemonBoy       Microsoft Xbox XBE (Xbox Executable)                
z64          LGPL3   lowlyw         Nintendo 64 Big-Endian binary                       
zimg         LGPL3   deroad         zImage format binary                                
xtr.cart     LGPL3                  CaRT (Compressed and RC4 Transport) extractor
xtr.fatmach0 LGPL3                  Fat Mach-O binary extractor
xtr.sep64    LGPL3                  64-bit SEP binary extractor
any
art
avr
bf
bflt
bios
bootimg
c166
cgc
coff
dex
dmp64
dol
dyldcache
ecoff
elf
elf64
gns1
hunk
java
kernelcache
le
luac
mach0
mach064
mbn
mdmp
mdt
menuet
mz
ne
nes
nin3ds
ninds
ningb
ningba
nro
nso
omf
omf166
p9
pe
pe64
pebble
pef
prg
psxexe
pyc
qnx
sfc
smd
sms
spc700
symbols
te
vsf
wasm
xbe
z64
zimg
xtr.cart
xtr.fatmach0
xtr.sep64
EOF
RUN

NAME=Print the hash plugins
FILE==
CMDS=<<EOF
Lh
Lhj
Lht
Lhq
EOF
EXPECT=<<EOF
adler32        LGPL3      deroad                         Adler-32 checksum
blake2b        LGPL3      Farhan-25                      BLAKE2b cryptographic hash
blake2bp       LGPL3      Farhan-25                      BLAKE2bp cryptographic hash
blake2s        LGPL3      Farhan-25                      BLAKE2s cryptographic hash
blake2sp       LGPL3      Farhan-25                      BLAKE2sp cryptographic hash
blake2xb       LGPL3      Farhan-25                      BLAKE2xb cryptographic hash
blake2xs       LGPL3      Farhan-25                      BLAKE2xs cryptographic hash
blake3         CC0        Samuel Neves,Jack O'Connor     BLAKE3 cryptographic hash
chisquare      LGPL3      xvilka                         Chi-square goodness-of-fit vs uniform
crc15can       LGPL3      deroad                         CRC-15 CAN checksum
crc16          LGPL3      deroad                         CRC-16 IBM/ARC checksum
crc16augccitt  LGPL3      deroad                         CRC-16 AUG-CCITT checksum
crc16buypass   LGPL3      deroad                         CRC-16 BUYPASS checksum
crc16cdma2000  LGPL3      deroad                         CRC-16 CDMA-2000 checksum
crc16citt      LGPL3      deroad                         CRC-16 CITT checksum
crc16dds110    LGPL3      deroad                         CRC-16 DDS110 checksum
crc16dectr     LGPL3      deroad                         CRC-16 DECT-R checksum
crc16dectx     LGPL3      deroad                         CRC-16 DECT-X checksum
crc16dnp       LGPL3      deroad                         CRC-16 DNP checksum
crc16en13757   LGPL3      deroad                         CRC-16 EN-13757 checksum
crc16genibus   LGPL3      deroad                         CRC-16 GENIBUS checksum
crc16hdlc      LGPL3      deroad                         CRC-16 HDLC checksum
crc16kermit    LGPL3      deroad                         CRC-16 KERMIT checksum
crc16maxim     LGPL3      deroad                         CRC-16 MAXIM checksum
crc16mcrf4xx   LGPL3      deroad                         CRC-16 MCRF4XX checksum
crc16modbus    LGPL3      deroad                         CRC-16 MODBUS checksum
crc16riello    LGPL3      deroad                         CRC-16 RIELLO checksum
crc16t10dif    LGPL3      deroad                         CRC-16 T10-DIF checksum
crc16teledisk  LGPL3      deroad                         CRC-16 TELEDISK checksum
crc16tms37157  LGPL3      deroad                         CRC-16 TMS37157 checksum
crc16usb       LGPL3      deroad                         CRC-16 USB checksum
crc16x25       LGPL3      deroad                         CRC-16 X25 checksum
crc16xmodem    LGPL3      deroad                         CRC-16 XMODEM checksum
crc24          LGPL3      deroad                         CRC-24 checksum
crc32          LGPL3      deroad                         CRC-32 checksum
crc32bzip2     LGPL3      deroad                         CRC-32 BZIP2 checksum
crc32c         LGPL3      deroad                         CRC-32C checksum
crc32d         LGPL3      deroad                         CRC-32D checksum
crc32ecma267   LGPL3      deroad                         CRC-32 ECMA-267 checksum (EDC for DVD sectors)
crc32jamcrc    LGPL3      deroad                         CRC-32 JAMCRC checksum
crc32mpeg2     LGPL3      deroad                         CRC-32 MPEG2 checksum
crc32posix     LGPL3      deroad                         CRC-32 POSIX checksum
crc32q         LGPL3      deroad                         CRC-32Q checksum
crc32xfer      LGPL3      deroad                         CRC-32 XFER checksum
crc64          LGPL3      deroad                         CRC-64 checksum
crc64ecma182   LGPL3      deroad                         CRC-64 ECMA-182 checksum
crc64iso       LGPL3      deroad                         CRC-64 ISO checksum
crc64we        LGPL3      deroad                         CRC-64 WE checksum
crc64xz        LGPL3      deroad                         CRC-64 XZ checksum
crc8cdma2000   LGPL3      deroad                         CRC-8 CDMA-2000 checksum
crc8darc       LGPL3      deroad                         CRC-8 DARC checksum
crc8dvbs2      LGPL3      deroad                         CRC-8 DVB-S2 checksum
crc8ebu        LGPL3      deroad                         CRC-8 EBU checksum
crc8icode      LGPL3      deroad                         CRC-8 I-CODE checksum
crc8itu        LGPL3      deroad                         CRC-8 ITU checksum
crc8maxim      LGPL3      deroad                         CRC-8 MAXIM checksum
crc8rohc       LGPL3      deroad                         CRC-8 ROHC checksum
crc8smbus      LGPL3      deroad                         CRC-8 SMBUS checksum
crc8wcdma      LGPL3      deroad                         CRC-8 WCDMA checksum
crca           LGPL3      deroad                         CRC-16/CRCA checksum
entropy        LGPL3      deroad                         Entropy [0.0-8.0] range
entropy_fract  LGPL3      deroad                         Fractional entropy [0.0-1.0] range
fletcher16     LGPL3      deroad                         Fletcher16 checksum
fletcher32     LGPL3      deroad                         Fletcher32 checksum
fletcher64     LGPL3      deroad                         Fletcher64 checksum
fletcher8      LGPL3      deroad                         Fletcher8 checksum
fnv1a          LGPL3      cheese-cakee                   FNV-1a 32-bit non-cryptographic hash
ioc            LGPL3      xvilka                         Index of coincidence [0.0-1.0] range
jenkins        LGPL3      shessaanand                    Jenkins non-cryptographic hash
keccak-256     BSD-3      Andrey Jivsov                  KECCAK-256 cryptographic hash
keccak-384     BSD-3      Andrey Jivsov                  KECCAK-384 cryptographic hash
keccak-512     BSD-3      Andrey Jivsov                  KECCAK-512 cryptographic hash
md2            LGPL3      swedenspy                      MD2 cryptographic hash
md4            LGPL3      deroad                         MD4 cryptographic hash
md5            LGPL2      Alan DeKok                     MD5 cryptographic hash
minentropy     LGPL3      xvilka                         Min-entropy [0.0-8.0] range
mod255         LGPL3      deroad                         Modulo 255 checksum
murmur3-x64-128 MIT        Austin Appleby                 MurmurHash3 x64 128-bit non-cryptographic hash
murmur3-x86-128 MIT        Austin Appleby                 MurmurHash3 x86 128-bit non-cryptographic hash
murmur3-x86-32 MIT        Austin Appleby                 MurmurHash3 x86 32-bit non-cryptographic hash
parity         LGPL3      deroad                         Parity checksum
serialcorr     LGPL3      xvilka                         Serial correlation coefficient [-1.0-1.0]
sha1           LGPL3      deroad                         SHA-1 cryptographic hash
sha256         BSD-3      Aaron D. Gifford               SHA-256 cryptographic hash
sha3-224       BSD-3      Andrey Jivsov                  SHA3-224 cryptographic hash
sha3-256       BSD-3      Andrey Jivsov                  SHA3-256 cryptographic hash
sha3-384       BSD-3      Andrey Jivsov                  SHA3-384 cryptographic hash
sha3-512       BSD-3      Andrey Jivsov                  SHA3-512 cryptographic hash
sha384         BSD-3      Aaron D. Gifford               SHA-384 cryptographic hash
sha512         BSD-3      Aaron D. Gifford               SHA-512 cryptographic hash
sm3            LGPL2      FSF/deroad                     ShangMi 3 (SM3) cryptographic hash
ssdeep         LGPL3      deroad                         SSDeep Context Triggered Piecewise Hash (CTPH, fuzzy hash)
temperature    LGPL3      Seva                           Binary temperature [0.0-1.0] range
xor16          LGPL3      deroad                         XOR-16 checksum
xor8           LGPL3      deroad                         XOR-8 checksum
xxhash32       LGPL3      deroad                         xxHash32 non-cryptographic hash
xxhash64       LGPL3      cheese-cakee                   xxHash64 non-cryptographic hash
[{"name":"adler32","license":"LGPL3","author":"deroad","description":"Adler-32 checksum"},{"name":"blake2b","license":"LGPL3","author":"Farhan-25","description":"BLAKE2b cryptographic hash"},{"name":"blake2bp","license":"LGPL3","author":"Farhan-25","description":"BLAKE2bp cryptographic hash"},{"name":"blake2s","license":"LGPL3","author":"Farhan-25","description":"BLAKE2s cryptographic hash"},{"name":"blake2sp","license":"LGPL3","author":"Farhan-25","description":"BLAKE2sp cryptographic hash"},{"name":"blake2xb","license":"LGPL3","author":"Farhan-25","description":"BLAKE2xb cryptographic hash"},{"name":"blake2xs","license":"LGPL3","author":"Farhan-25","description":"BLAKE2xs cryptographic hash"},{"name":"blake3","license":"CC0","author":"Samuel Neves,Jack O'Connor","description":"BLAKE3 cryptographic hash"},{"name":"chisquare","license":"LGPL3","author":"xvilka","description":"Chi-square goodness-of-fit vs uniform"},{"name":"crc15can","license":"LGPL3","author":"deroad","description":"CRC-15 CAN checksum"},{"name":"crc16","license":"LGPL3","author":"deroad","description":"CRC-16 IBM/ARC checksum"},{"name":"crc16augccitt","license":"LGPL3","author":"deroad","description":"CRC-16 AUG-CCITT checksum"},{"name":"crc16buypass","license":"LGPL3","author":"deroad","description":"CRC-16 BUYPASS checksum"},{"name":"crc16cdma2000","license":"LGPL3","author":"deroad","description":"CRC-16 CDMA-2000 checksum"},{"name":"crc16citt","license":"LGPL3","author":"deroad","description":"CRC-16 CITT checksum"},{"name":"crc16dds110","license":"LGPL3","author":"deroad","description":"CRC-16 DDS110 checksum"},{"name":"crc16dectr","license":"LGPL3","author":"deroad","description":"CRC-16 DECT-R checksum"},{"name":"crc16dectx","license":"LGPL3","author":"deroad","description":"CRC-16 DECT-X checksum"},{"name":"crc16dnp","license":"LGPL3","author":"deroad","description":"CRC-16 DNP checksum"},{"name":"crc16en13757","license":"LGPL3","author":"deroad","description":"CRC-16 EN-13757 checksum"},{"name":"crc16genibus","license":"LGPL3","author":"deroad","description":"CRC-16 GENIBUS checksum"},{"name":"crc16hdlc","license":"LGPL3","author":"deroad","description":"CRC-16 HDLC checksum"},{"name":"crc16kermit","license":"LGPL3","author":"deroad","description":"CRC-16 KERMIT checksum"},{"name":"crc16maxim","license":"LGPL3","author":"deroad","description":"CRC-16 MAXIM checksum"},{"name":"crc16mcrf4xx","license":"LGPL3","author":"deroad","description":"CRC-16 MCRF4XX checksum"},{"name":"crc16modbus","license":"LGPL3","author":"deroad","description":"CRC-16 MODBUS checksum"},{"name":"crc16riello","license":"LGPL3","author":"deroad","description":"CRC-16 RIELLO checksum"},{"name":"crc16t10dif","license":"LGPL3","author":"deroad","description":"CRC-16 T10-DIF checksum"},{"name":"crc16teledisk","license":"LGPL3","author":"deroad","description":"CRC-16 TELEDISK checksum"},{"name":"crc16tms37157","license":"LGPL3","author":"deroad","description":"CRC-16 TMS37157 checksum"},{"name":"crc16usb","license":"LGPL3","author":"deroad","description":"CRC-16 USB checksum"},{"name":"crc16x25","license":"LGPL3","author":"deroad","description":"CRC-16 X25 checksum"},{"name":"crc16xmodem","license":"LGPL3","author":"deroad","description":"CRC-16 XMODEM checksum"},{"name":"crc24","license":"LGPL3","author":"deroad","description":"CRC-24 checksum"},{"name":"crc32","license":"LGPL3","author":"deroad","description":"CRC-32 checksum"},{"name":"crc32bzip2","license":"LGPL3","author":"deroad","description":"CRC-32 BZIP2 checksum"},{"name":"crc32c","license":"LGPL3","author":"deroad","description":"CRC-32C checksum"},{"name":"crc32d","license":"LGPL3","author":"deroad","description":"CRC-32D checksum"},{"name":"crc32ecma267","license":"LGPL3","author":"deroad","description":"CRC-32 ECMA-267 checksum (EDC for DVD sectors)"},{"name":"crc32jamcrc","license":"LGPL3","author":"deroad","description":"CRC-32 JAMCRC checksum"},{"name":"crc32mpeg2","license":"LGPL3","author":"deroad","description":"CRC-32 MPEG2 checksum"},{"name":"crc32posix","license":"LGPL3","author":"deroad","description":"CRC-32 POSIX checksum"},{"name":"crc32q","license":"LGPL3","author":"deroad","description":"CRC-32Q checksum"},{"name":"crc32xfer","license":"LGPL3","author":"deroad","description":"CRC-32 XFER checksum"},{"name":"crc64","license":"LGPL3","author":"deroad","description":"CRC-64 checksum"},{"name":"crc64ecma182","license":"LGPL3","author":"deroad","description":"CRC-64 ECMA-182 checksum"},{"name":"crc64iso","license":"LGPL3","author":"deroad","description":"CRC-64 ISO checksum"},{"name":"crc64we","license":"LGPL3","author":"deroad","description":"CRC-64 WE checksum"},{"name":"crc64xz","license":"LGPL3","author":"deroad","description":"CRC-64 XZ checksum"},{"name":"crc8cdma2000","license":"LGPL3","author":"deroad","description":"CRC-8 CDMA-2000 checksum"},{"name":"crc8darc","license":"LGPL3","author":"deroad","description":"CRC-8 DARC checksum"},{"name":"crc8dvbs2","license":"LGPL3","author":"deroad","description":"CRC-8 DVB-S2 checksum"},{"name":"crc8ebu","license":"LGPL3","author":"deroad","description":"CRC-8 EBU checksum"},{"name":"crc8icode","license":"LGPL3","author":"deroad","description":"CRC-8 I-CODE checksum"},{"name":"crc8itu","license":"LGPL3","author":"deroad","description":"CRC-8 ITU checksum"},{"name":"crc8maxim","license":"LGPL3","author":"deroad","description":"CRC-8 MAXIM checksum"},{"name":"crc8rohc","license":"LGPL3","author":"deroad","description":"CRC-8 ROHC checksum"},{"name":"crc8smbus","license":"LGPL3","author":"deroad","description":"CRC-8 SMBUS checksum"},{"name":"crc8wcdma","license":"LGPL3","author":"deroad","description":"CRC-8 WCDMA checksum"},{"name":"crca","license":"LGPL3","author":"deroad","description":"CRC-16/CRCA checksum"},{"name":"entropy","license":"LGPL3","author":"deroad","description":"Entropy [0.0-8.0] range"},{"name":"entropy_fract","license":"LGPL3","author":"deroad","description":"Fractional entropy [0.0-1.0] range"},{"name":"fletcher16","license":"LGPL3","author":"deroad","description":"Fletcher16 checksum"},{"name":"fletcher32","license":"LGPL3","author":"deroad","description":"Fletcher32 checksum"},{"name":"fletcher64","license":"LGPL3","author":"deroad","description":"Fletcher64 checksum"},{"name":"fletcher8","license":"LGPL3","author":"deroad","description":"Fletcher8 checksum"},{"name":"fnv1a","license":"LGPL3","author":"cheese-cakee","description":"FNV-1a 32-bit non-cryptographic hash"},{"name":"ioc","license":"LGPL3","author":"xvilka","description":"Index of coincidence [0.0-1.0] range"},{"name":"jenkins","license":"LGPL3","author":"shessaanand","description":"Jenkins non-cryptographic hash"},{"name":"keccak-256","license":"BSD-3","author":"Andrey Jivsov","description":"KECCAK-256 cryptographic hash"},{"name":"keccak-384","license":"BSD-3","author":"Andrey Jivsov","description":"KECCAK-384 cryptographic hash"},{"name":"keccak-512","license":"BSD-3","author":"Andrey Jivsov","description":"KECCAK-512 cryptographic hash"},{"name":"md2","license":"LGPL3","author":"swedenspy","description":"MD2 cryptographic hash"},{"name":"md4","license":"LGPL3","author":"deroad","description":"MD4 cryptographic hash"},{"name":"md5","license":"LGPL2","author":"Alan DeKok","description":"MD5 cryptographic hash"},{"name":"minentropy","license":"LGPL3","author":"xvilka","description":"Min-entropy [0.0-8.0] range"},{"name":"mod255","license":"LGPL3","author":"deroad","description":"Modulo 255 checksum"},{"name":"murmur3-x64-128","license":"MIT","author":"Austin Appleby","description":"MurmurHash3 x64 128-bit non-cryptographic hash"},{"name":"murmur3-x86-128","license":"MIT","author":"Austin Appleby","description":"MurmurHash3 x86 128-bit non-cryptographic hash"},{"name":"murmur3-x86-32","license":"MIT","author":"Austin Appleby","description":"MurmurHash3 x86 32-bit non-cryptographic hash"},{"name":"parity","license":"LGPL3","author":"deroad","description":"Parity checksum"},{"name":"serialcorr","license":"LGPL3","author":"xvilka","description":"Serial correlation coefficient [-1.0-1.0]"},{"name":"sha1","license":"LGPL3","author":"deroad","description":"SHA-1 cryptographic hash"},{"name":"sha256","license":"BSD-3","author":"Aaron D. Gifford","description":"SHA-256 cryptographic hash"},{"name":"sha3-224","license":"BSD-3","author":"Andrey Jivsov","description":"SHA3-224 cryptographic hash"},{"name":"sha3-256","license":"BSD-3","author":"Andrey Jivsov","description":"SHA3-256 cryptographic hash"},{"name":"sha3-384","license":"BSD-3","author":"Andrey Jivsov","description":"SHA3-384 cryptographic hash"},{"name":"sha3-512","license":"BSD-3","author":"Andrey Jivsov","description":"SHA3-512 cryptographic hash"},{"name":"sha384","license":"BSD-3","author":"Aaron D. Gifford","description":"SHA-384 cryptographic hash"},{"name":"sha512","license":"BSD-3","author":"Aaron D. Gifford","description":"SHA-512 cryptographic hash"},{"name":"sm3","license":"LGPL2","author":"FSF/deroad","description":"ShangMi 3 (SM3) cryptographic hash"},{"name":"ssdeep","license":"LGPL3","author":"deroad","description":"SSDeep Context Triggered Piecewise Hash (CTPH, fuzzy hash)"},{"name":"temperature","license":"LGPL3","author":"Seva","description":"Binary temperature [0.0-1.0] range"},{"name":"xor16","license":"LGPL3","author":"deroad","description":"XOR-16 checksum"},{"name":"xor8","license":"LGPL3","author":"deroad","description":"XOR-8 checksum"},{"name":"xxhash32","license":"LGPL3","author":"deroad","description":"xxHash32 non-cryptographic hash"},{"name":"xxhash64","license":"LGPL3","author":"cheese-cakee","description":"xxHash64 non-cryptographic hash"}]
algorithm       license author                     description                                                
--------------------------------------------------------------------------------------------------------------
adler32         LGPL3   deroad                     Adler-32 checksum
blake2b         LGPL3   Farhan-25                  BLAKE2b cryptographic hash
blake2bp        LGPL3   Farhan-25                  BLAKE2bp cryptographic hash
blake2s         LGPL3   Farhan-25                  BLAKE2s cryptographic hash
blake2sp        LGPL3   Farhan-25                  BLAKE2sp cryptographic hash
blake2xb        LGPL3   Farhan-25                  BLAKE2xb cryptographic hash
blake2xs        LGPL3   Farhan-25                  BLAKE2xs cryptographic hash
blake3          CC0     Samuel Neves,Jack O'Connor BLAKE3 cryptographic hash
chisquare       LGPL3   xvilka                     Chi-square goodness-of-fit vs uniform
crc15can        LGPL3   deroad                     CRC-15 CAN checksum
crc16           LGPL3   deroad                     CRC-16 IBM/ARC checksum
crc16augccitt   LGPL3   deroad                     CRC-16 AUG-CCITT checksum
crc16buypass    LGPL3   deroad                     CRC-16 BUYPASS checksum
crc16cdma2000   LGPL3   deroad                     CRC-16 CDMA-2000 checksum
crc16citt       LGPL3   deroad                     CRC-16 CITT checksum
crc16dds110     LGPL3   deroad                     CRC-16 DDS110 checksum
crc16dectr      LGPL3   deroad                     CRC-16 DECT-R checksum
crc16dectx      LGPL3   deroad                     CRC-16 DECT-X checksum
crc16dnp        LGPL3   deroad                     CRC-16 DNP checksum
crc16en13757    LGPL3   deroad                     CRC-16 EN-13757 checksum
crc16genibus    LGPL3   deroad                     CRC-16 GENIBUS checksum
crc16hdlc       LGPL3   deroad                     CRC-16 HDLC checksum
crc16kermit     LGPL3   deroad                     CRC-16 KERMIT checksum
crc16maxim      LGPL3   deroad                     CRC-16 MAXIM checksum
crc16mcrf4xx    LGPL3   deroad                     CRC-16 MCRF4XX checksum
crc16modbus     LGPL3   deroad                     CRC-16 MODBUS checksum
crc16riello     LGPL3   deroad                     CRC-16 RIELLO checksum
crc16t10dif     LGPL3   deroad                     CRC-16 T10-DIF checksum
crc16teledisk   LGPL3   deroad                     CRC-16 TELEDISK checksum
crc16tms37157   LGPL3   deroad                     CRC-16 TMS37157 checksum
crc16usb        LGPL3   deroad                     CRC-16 USB checksum
crc16x25        LGPL3   deroad                     CRC-16 X25 checksum
crc16xmodem     LGPL3   deroad                     CRC-16 XMODEM checksum
crc24           LGPL3   deroad                     CRC-24 checksum
crc32           LGPL3   deroad                     CRC-32 checksum
crc32bzip2      LGPL3   deroad                     CRC-32 BZIP2 checksum
crc32c          LGPL3   deroad                     CRC-32C checksum
crc32d          LGPL3   deroad                     CRC-32D checksum
crc32ecma267    LGPL3   deroad                     CRC-32 ECMA-267 checksum (EDC for DVD sectors)
crc32jamcrc     LGPL3   deroad                     CRC-32 JAMCRC checksum
crc32mpeg2      LGPL3   deroad                     CRC-32 MPEG2 checksum
crc32posix      LGPL3   deroad                     CRC-32 POSIX checksum
crc32q          LGPL3   deroad                     CRC-32Q checksum
crc32xfer       LGPL3   deroad                     CRC-32 XFER checksum
crc64           LGPL3   deroad                     CRC-64 checksum
crc64ecma182    LGPL3   deroad                     CRC-64 ECMA-182 checksum
crc64iso        LGPL3   deroad                     CRC-64 ISO checksum
crc64we         LGPL3   deroad                     CRC-64 WE checksum
crc64xz         LGPL3   deroad                     CRC-64 XZ checksum
crc8cdma2000    LGPL3   deroad                     CRC-8 CDMA-2000 checksum
crc8darc        LGPL3   deroad                     CRC-8 DARC checksum
crc8dvbs2       LGPL3   deroad                     CRC-8 DVB-S2 checksum
crc8ebu         LGPL3   deroad                     CRC-8 EBU checksum
crc8icode       LGPL3   deroad                     CRC-8 I-CODE checksum
crc8itu         LGPL3   deroad                     CRC-8 ITU checksum
crc8maxim       LGPL3   deroad                     CRC-8 MAXIM checksum
crc8rohc        LGPL3   deroad                     CRC-8 ROHC checksum
crc8smbus       LGPL3   deroad                     CRC-8 SMBUS checksum
crc8wcdma       LGPL3   deroad                     CRC-8 WCDMA checksum
crca            LGPL3   deroad                     CRC-16/CRCA checksum
entropy         LGPL3   deroad                     Entropy [0.0-8.0] range
entropy_fract   LGPL3   deroad                     Fractional entropy [0.0-1.0] range
fletcher16      LGPL3   deroad                     Fletcher16 checksum
fletcher32      LGPL3   deroad                     Fletcher32 checksum
fletcher64      LGPL3   deroad                     Fletcher64 checksum
fletcher8       LGPL3   deroad                     Fletcher8 checksum
fnv1a           LGPL3   cheese-cakee               FNV-1a 32-bit non-cryptographic hash
ioc             LGPL3   xvilka                     Index of coincidence [0.0-1.0] range
jenkins         LGPL3   shessaanand                Jenkins non-cryptographic hash
keccak-256      BSD-3   Andrey Jivsov              KECCAK-256 cryptographic hash
keccak-384      BSD-3   Andrey Jivsov              KECCAK-384 cryptographic hash
keccak-512      BSD-3   Andrey Jivsov              KECCAK-512 cryptographic hash
md2             LGPL3   swedenspy                  MD2 cryptographic hash
md4             LGPL3   deroad                     MD4 cryptographic hash
md5             LGPL2   Alan DeKok                 MD5 cryptographic hash
minentropy      LGPL3   xvilka                     Min-entropy [0.0-8.0] range
mod255          LGPL3   deroad                     Modulo 255 checksum
murmur3-x64-128 MIT     Austin Appleby             MurmurHash3 x64 128-bit non-cryptographic hash
murmur3-x86-128 MIT     Austin Appleby             MurmurHash3 x86 128-bit non-cryptographic hash
murmur3-x86-32  MIT     Austin Appleby             MurmurHash3 x86 32-bit non-cryptographic hash
parity          LGPL3   deroad                     Parity checksum
serialcorr      LGPL3   xvilka                     Serial correlation coefficient [-1.0-1.0]
sha1            LGPL3   deroad                     SHA-1 cryptographic hash
sha256          BSD-3   Aaron D. Gifford           SHA-256 cryptographic hash
sha3-224        BSD-3   Andrey Jivsov              SHA3-224 cryptographic hash
sha3-256        BSD-3   Andrey Jivsov              SHA3-256 cryptographic hash
sha3-384        BSD-3   Andrey Jivsov              SHA3-384 cryptographic hash
sha3-512        BSD-3   Andrey Jivsov              SHA3-512 cryptographic hash
sha384          BSD-3   Aaron D. Gifford           SHA-384 cryptographic hash
sha512          BSD-3   Aaron D. Gifford           SHA-512 cryptographic hash
sm3             LGPL2   FSF/deroad                 ShangMi 3 (SM3) cryptographic hash
ssdeep          LGPL3   deroad                     SSDeep Context Triggered Piecewise Hash (CTPH, fuzzy hash)
temperature     LGPL3   Seva                       Binary temperature [0.0-1.0] range
xor16           LGPL3   deroad                     XOR-16 checksum
xor8            LGPL3   deroad                     XOR-8 checksum
xxhash32        LGPL3   deroad                     xxHash32 non-cryptographic hash
xxhash64        LGPL3   cheese-cakee               xxHash64 non-cryptographic hash
adler32
blake2b
blake2bp
blake2s
blake2sp
blake2xb
blake2xs
blake3
chisquare
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
fnv1a
ioc
jenkins
keccak-256
keccak-384
keccak-512
md2
md4
md5
minentropy
mod255
murmur3-x64-128
murmur3-x86-128
murmur3-x86-32
parity
serialcorr
sha1
sha256
sha3-224
sha3-256
sha3-384
sha3-512
sha384
sha512
sm3
ssdeep
temperature
xor16
xor8
xxhash32
xxhash64
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]} - Native plugin. The arch field changes in each test environment and breaks it.
Ldj~{[5]}
Ldj~{[6]}
Ldt:name/ne/native:name/ne/winkd:name/ne/windbg:name/cols/selected/license/bits/arch
EOF
EXPECT=<<EOF
--- bochs LGPL3
--- dmp LGPL3
--- gdb LGPL3
--- io MIT
dbg null MIT
--- qnx LGPL3
--- winkd LGPL3
{"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                                      
--------------------------------------------------------------------------
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__ 32 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__ 16         c166        LGPL3   Siemens/Infineon C166 microcontroller disassembler
_dA__ 32         cbpf        LGPL3   CBPF disassembly plugin
_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)
_dAeI 16         h8300       LGPL3   Hitachi/Renesas H8/300 disassembly plugin
_dA__ 16         h8500       LGPL3   Hitachi/Renesas H8/500 disassembler (by billow)
_dA_I 32         hexagon     LGPL3   Qualcomm Hexagon (QDSP6) V6 (by Rot127)
_dA__ 32 64      hppa        LGPL3   HP PA-RISC Capstone-based disassembler (by xvilka)
_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__ 32         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
_dA__ 16         mcs96       LGPL3   Intel MCS-96 disassembler (by condret)
_dA__ 8          milstd1750  MIT     MIL-STD 1750 ISA 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     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
_dA__ 32 64      riscv       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/SuperH-3 disassembler (by DMaroo)
_dA__ 8 16       snes        LGPL3   SuperNES CPU disassembler
_dA_I 32 64      sparc       BSD     Sun SPARC Capstone-based 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_I 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__ 32         vax         LGPL3   DEC VAX-11 disassembler (by xvilka)
adA__ 32         wasm        MIT     WebAssembly disassembler (by cgvwzq) v0.1.0
_dAeI 16 32 64   x86         MIT     X86/X86_64 Zydis-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":"32 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"},"c166":{"bits":"16 ","license":"LGPL3","description":"Siemens/Infineon C166 microcontroller disassembler","features":"_dA__"},"cbpf":{"bits":"32 ","license":"LGPL3","description":"CBPF disassembly plugin","features":"_dA__"},"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":"_dAeI"},"h8500":{"bits":"16 ","license":"LGPL3","description":"Hitachi/Renesas H8/500 disassembler","features":"_dA__","author":"billow"},"hexagon":{"bits":"32 ","license":"LGPL3","description":"Qualcomm Hexagon (QDSP6) V6","features":"_dA_I","author":"Rot127"},"hppa":{"bits":"32 64","license":"LGPL3","description":"HP PA-RISC Capstone-based disassembler","features":"_dA__","author":"xvilka"},"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":"32 ","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":"_dA__","author":"condret"},"milstd1750":{"bits":"8 ","license":"MIT","description":"MIL-STD 1750 ISA disassembler","features":"_dA__"},"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":"BSD","description":"RISC-V Capstone-based disassembler","features":"_dA__"},"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/SuperH-3 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_I"},"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_I"},"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":"32 ","license":"LGPL3","description":"DEC VAX-11 disassembler","features":"_dA__","author":"xvilka"},"wasm":{"bits":"32 ","license":"MIT","description":"WebAssembly disassembler","features":"adA__","author":"cgvwzq","version":"0.1.0"},"x86":{"bits":"16 32 64","license":"MIT","description":"X86/X86_64 Zydis-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__ 32 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__ 16       c166       LGPL3                           Siemens/Infineon C166 microcontroller disassembler
_dA__ 32       cbpf       LGPL3                           CBPF disassembly plugin
_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)
_dAeI 16       h8300      LGPL3                           Hitachi/Renesas H8/300 disassembly plugin
_dA__ 16       h8500      LGPL3           billow          Hitachi/Renesas H8/500 disassembler
_dA_I 32       hexagon    LGPL3           Rot127          Qualcomm Hexagon (QDSP6) V6
_dA__ 32 64    hppa       LGPL3           xvilka          HP PA-RISC Capstone-based disassembler
_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__ 32       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
_dA__ 16       mcs96      LGPL3           condret         Intel MCS-96 disassembler
_dA__ 8        milstd1750 MIT                             MIL-STD 1750 ISA 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
_dA__ 32 64    riscv      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/SuperH-3 disassembler
_dA__ 8 16     snes       LGPL3                           SuperNES CPU disassembler
_dA_I 32 64    sparc      BSD                             Sun SPARC Capstone-based 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_I 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__ 32       vax        LGPL3           xvilka          DEC VAX-11 disassembler
adA__ 32       wasm       MIT     0.1.0   cgvwzq          WebAssembly disassembler
_dAeI 16 32 64 x86        MIT                             X86/X86_64 Zydis-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
c166
cbpf
chip8
cil
cr16
cris
dalvik
dcpu16
ebc
gb
h8300
h8500
hexagon
hppa
i4004
i8080
java
lanai
lh5801
lm32
loongarch
luac
m680x
m68k
malbolge
mcore
mcs96
milstd1750
mips
msp430
null
or1k
pic
ppc
ppc.as
propeller
pyc
riscv
rl78
rsp
rx
sh
snes
sparc
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
La I
La dAeI
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__ 32         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/SuperH-3 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)
_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
adA_I 16 32 64   bf          LGPL3   Brainfuck (by pancake, nibble) v4.0.0
adAeI 16         gb          LGPL3   GameBoy(TM) (z80-like) (by condret)
_dAeI 16         h8300       LGPL3   Hitachi/Renesas H8/300 disassembly plugin
_dA_I 32         hexagon     LGPL3   Qualcomm Hexagon (QDSP6) V6 (by Rot127)
adAeI 16 32 64   mips        BSD     MIPS Capstone-based disassembler
_dA_I 16         msp430      LGPL3   Texas Instruments MSP430 disassembler
_dAeI 16 32      pic         LGPL3   Microchip PIC disassembler
_dAeI 32 64      ppc         BSD     PowerPC Capstone-based disassembler (by pancake)
adAeI 32         sh          LGPL3   Hitachi/Renesas SuperH-4/SuperH-3 disassembler (by DMaroo)
_dA_I 32 64      sparc       BSD     Sun SPARC Capstone-based disassembler
_dA_I 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
_dAeI 16 32 64   x86         MIT     X86/X86_64 Zydis-based disassembler
_dAeI 32         xtensa      LGPL3   Tensilica Xtensa Capstone-based disassembler (by billow)
_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   GameBoy(TM) (z80-like) (by condret)
_dAeI 16         h8300       LGPL3   Hitachi/Renesas H8/300 disassembly plugin
adAeI 16 32 64   mips        BSD     MIPS Capstone-based disassembler
_dAeI 16 32      pic         LGPL3   Microchip PIC disassembler
_dAeI 32 64      ppc         BSD     PowerPC Capstone-based disassembler (by pancake)
adAeI 32         sh          LGPL3   Hitachi/Renesas SuperH-4/SuperH-3 disassembler (by DMaroo)
_dAeI 32         v810        LGPL3   NEC V810 disassembler (by pancake)
_dAeI 32         v850        LGPL3   NEC/Renesas V850 disassembler
_dAeI 16 32 64   x86         MIT     X86/X86_64 Zydis-based disassembler
_dAeI 32         xtensa      LGPL3   Tensilica Xtensa Capstone-based disassembler (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
c166
cbpf
chip8
cil
cr16
cris
dalvik
dcpu16
ebc
gb
h8300
h8500
hexagon
hppa
i4004
i8080
java
lanai
lh5801
lm32
loongarch
luac
m680x
m68k
malbolge
mcore
mcs96
milstd1750
mips
msp430
null
or1k
pic
ppc
ppc.as
propeller
pyc
riscv
rl78
rsp
rx
sh
snes
sparc
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__ 32         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/SuperH-3 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"},"h8300":{"bits":"16 ","license":"LGPL3","description":"Hitachi/Renesas H8/300 disassembly plugin","features":"_dAeI"},"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/SuperH-3 disassembler","features":"adAeI","author":"DMaroo"},"sparc":{"bits":"32 64","license":"BSD","description":"Sun SPARC Capstone-based disassembler","features":"_dA_I"},"tms320":{"bits":"32 ","license":"LGPL3","description":"Texas Instruments TMS320 DSP family (c54x,c55x,c55x+,c64x) disassembler","features":"_dA_I"},"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":"MIT","description":"X86/X86_64 Zydis-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)
_dAeI 16       h8300    LGPL3                   Hitachi/Renesas H8/300 disassembly plugin
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/SuperH-3 disassembler
_dAeI 32       v810     LGPL3           pancake NEC V810 disassembler
_dAeI 32       v850     LGPL3                   NEC/Renesas V850 disassembler
_dAeI 16 32 64 x86      MIT                     X86/X86_64 Zydis-based disassembler
_dAeI 32       xtensa   LGPL3           billow  Tensilica Xtensa Capstone-based disassembler
6502
8051
arm
avr
gb
h8300
mips
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":"Intel 8051 disassembler","features":"adAeI"},"alpha":{"bits":"32 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"},"c166":{"bits":"16 ","license":"LGPL3","description":"Siemens/Infineon C166 microcontroller disassembler","features":"_dA__"},"cbpf":{"bits":"32 ","license":"LGPL3","description":"CBPF disassembly plugin","features":"_dA__"},"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":"_dAeI"},"h8500":{"bits":"16 ","license":"LGPL3","description":"Hitachi/Renesas H8/500 disassembler","features":"_dA__","author":"billow"},"hexagon":{"bits":"32 ","license":"LGPL3","description":"Qualcomm Hexagon (QDSP6) V6","features":"_dA_I","author":"Rot127"},"hppa":{"bits":"32 64","license":"LGPL3","description":"HP PA-RISC Capstone-based disassembler","features":"_dA__","author":"xvilka"},"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":"32 ","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":"_dA__","author":"condret"},"milstd1750":{"bits":"8 ","license":"MIT","description":"MIL-STD 1750 ISA disassembler","features":"_dA__"},"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":"BSD","description":"RISC-V Capstone-based disassembler","features":"_dA__"},"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/SuperH-3 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_I"},"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_I"},"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":"32 ","license":"LGPL3","description":"DEC VAX-11 disassembler","features":"_dA__","author":"xvilka"},"wasm":{"bits":"32 ","license":"MIT","description":"WebAssembly disassembler","features":"adA__","author":"cgvwzq","version":"0.1.0"},"x86":{"bits":"16 32 64","license":"MIT","description":"X86/X86_64 Zydis-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"}]
EOF
RUN

NAME=Print the asm/analysis plugins with filtering in JSON
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
