NAME=wB
FILE==
CMDS=<<EOF
e asm.arch=x86
e cfg.bigendian=false
wB 0x55
pv1
wB 0x55
pv1
wB 0x28
pv1
wB- 0x55
pv1
EOF
EXPECT=<<EOF
0x55
0x55
0x7d
0x28
EOF
RUN

NAME=w0
FILE==
CMDS=<<EOF
wx 0x112233
p8 3
w0 2
p8 3
w0 4
p8 3
EOF
EXPECT=<<EOF
112233
000033
000000
EOF
RUN

NAME=w[1234]
FILE==
ARGS=-a x86 -b 64
CMDS=<<EOF
wx 0022
w1+ 1
pv2
w2- 1
w2- 1
pv2
EOF
EXPECT=<<EOF
0x2201
0x21ff
EOF
RUN

NAME=w6
FILE==
CMDS=<<EOF
w6d ESIz
p8 3
w6e 112233
ps
EOF
EXPECT=<<EOF
112233
ESIz
EOF
RUN

NAME=which
FILE==
CMDS=<<EOF
which rizin~?
EOF
EXPECT=<<EOF
1
EOF
RUN

NAME=we
FILE==
CMDS=<<EOF
i~size[1]
wen 10
i~size[1]
EOF
EXPECT=<<EOF
0x200
0x20a
EOF
RUN

NAME=wu
FILE==
CMDS=<<EOF
EOF
EXPECT=
RUN

NAME=wr
FILE==
CMDS=<<EOF
wr 4
pv4~0x00000000
EOF
EXPECT=
RUN

NAME=wA
FILE==
CMDS=<<EOF
EOF
EXPECT=
RUN

NAME=wc
FILE==
CMDS=<<EOF
e io.cache=true
wx 010203
wc
wx 555555 @ 2
wc
wci
wc
EOF
EXPECT=<<EOF
idx=0 addr=0x00000000 size=3 000000 -> 010203 (not written)
idx=0 addr=0x00000000 size=3 000000 -> 010203 (not written)
idx=1 addr=0x00000002 size=3 030000 -> 555555 (not written)
idx=0 addr=0x00000000 size=3 000000 -> 010203 (written)
idx=1 addr=0x00000002 size=3 030000 -> 555555 (written)
EOF
RUN

NAME=w
FILE==
CMDS=<<EOF
wx 555555555555
w hello
ps
p8 6
EOF
EXPECT=<<EOF
helloU
68656c6c6f55
EOF
RUN

NAME=wz
FILE==
CMDS=<<EOF
wx 555555555555
wz hello
ps
p8 6
EOF
EXPECT=<<EOF
hello
68656c6c6f00
EOF
RUN

NAME=write to file
FILE==
CMDS=<<EOF
wx 01020304
pr 4 > .rz-wt.test
p8 4 @ 4
wff .rz-wt.test @ 4
rm .rz-wt.test
p8 4 @ 4
EOF
EXPECT=<<EOF
00000000
01020304
EOF
RUN

NAME=wf
FILE==
CMDS=<<EOF
wx 0102030405060708
wfx 4 2
p8 8
EOF
EXPECT=<<EOF
0506030401020708
EOF
RUN

NAME=ww
FILE==
CMDS=<<EOF
ww hello
psw
EOF
EXPECT=<<EOF
hello
EOF
RUN

NAME=wx
FILE==
CMDS=<<EOF
wx 553344
p8 3
s
wx 1111 @e:cfg.wseek=true
s
p8 2 @ -2
EOF
EXPECT=<<EOF
553344
0x0
0x2
1111
EOF
RUN

NAME=wa
FILE==
CMDS=<<EOF
e asm.arch=x86
e asm.bits=64
wa nop
pi 1
p8 1
EOF
EXPECT=<<EOF
nop
90
EOF
RUN

NAME=wai
FILE==
ARGS=-a x86 -b 64
CMDS=<<EOF
e asm.bytes=true
wx 488d850678563412
p8 7
wai "mov rax, rbx"
pD 7
p8 7
wx 488d850678563412
wai "mov rax, rbx" "mov rcx, rdx"
pD 7
p8 7
EOF
EXPECT=<<EOF
488d8506785634
            0x00000000      4889d8         mov   rax, rbx
            0x00000003      90             nop
            0x00000004      90             nop
            0x00000005      90             nop
            0x00000006      90             nop
4889d890909090
            0x00000000      4889d8         mov   rax, rbx
            0x00000003      4889d1         mov   rcx, rdx
            0x00000006      90             nop
4889d84889d190
EOF
RUN

NAME=wb
FILE==
CMDS=<<EOF
wb 0102 @!20
p8 20
EOF
EXPECT=<<EOF
0102010201020102010201020102010201020102
EOF
RUN

NAME=wm
FILE==
CMDS=<<EOF
wm f0ff
wb 010203 @!20
p8 20
EOF
EXPECT=<<EOF
0002000100030002000100030002000100030002
EOF
RUN

NAME=wv
FILE==
CMDS=<<EOF
e asm.arch=x86
wv1 0x55
pv4
wv2 0x7733
pv4
wv4 0xdeadbeef
pv4
EOF
EXPECT=<<EOF
0x00000055
0x00007733
0xdeadbeef
EOF
RUN

NAME=wo
FILE==
CMDS=<<EOF
b 10
woo 0x55
p8 10
woA 0x66
p8 10
EOF
EXPECT=<<EOF
55555555555555555555
44444444444444444444
EOF
RUN

NAME=wd
FILE==
CMDS=<<EOF
wx 010203 @ 0x10
p8 2
wd 0x10 2
p8 2
EOF
EXPECT=<<EOF
0000
0102
EOF
RUN

NAME=ws
FILE==
CMDS=<<EOF
ws hello
p8 6
ws all
p8 4
EOF
EXPECT=<<EOF
0568656c6c6f
03616c6c
EOF
RUN

NAME=w_escape
FILE==
CMDS=<<EOF
wv8\@10
EOF
EXPECT=
EXPECT_ERR=<<EOF
ERROR: Command 'wv8@10' does not exist.
ERROR: Displaying the help of command 'wv8'.

ERROR: Usage: wv8 <value>   # Write value of 8 byte

Write the number passed as argument at the current offset as 8 - bytes, respecting the cfg.bigendian variable

Examples:
| wv 0xdeadbeef # Write the value 0xdeadbeef at current offset
| wv2 0xdead    # Write the word 0xdead at current offset
| wv1 0xde      # Write the byte 0xde at current offset
EOF
RUN

NAME=wf
ARGS=
FILE==
CMDS=<<EOF
wx 9091929394
s 0x10
p8 5
wf 0 5
p8 5
EOF
EXPECT=<<EOF
0000000000
9091929394
EOF
RUN
