NAME=write
FILE=.newfile
ARGS=-w
CMDS=<<EOF
e io.va=0
w jeje
i~size[1]
p8 4
rm ./.newfile
EOF
EXPECT=<<EOF
0x4
6a656a65
EOF
RUN

NAME=write-on-ro
FILE=bins/elf/analysis/pie
CMDS=<<EOF
e log.source=true
w hello
ps
EOF
EXPECT=<<EOF
1\xed^\x89\xe1\x83\xe4\xf0PTR\xe8"
EOF
EXPECT_ERR=<<EOF
WARN: run r2 with -e bin.cache=true to fix relocations in disassembly
WARN: Cannot resolve symbol address _ITM_deregisterTMCloneTable
WARN: Cannot resolve symbol address _Jv_RegisterClasses
WARN: Cannot resolve symbol address _ITM_registerTMCloneTable
ERROR: [cmd_write.c:184] Cannot write. Use `omf`, `io.cache` or reopen the file in rw with `oo+`
EOF
RUN

NAME=write-on-ro-then-cache
FILE=bins/elf/analysis/pie
CMDS=<<EOF
e log.origin=true
w hello
ps
e io.cache=1
w hello\x00
ps
EOF
EXPECT=<<EOF
1\xed^\x89\xe1\x83\xe4\xf0PTR\xe8"
hello
EOF
EXPECT_ERR=<<EOF
WARN: run r2 with -e bin.cache=true to fix relocations in disassembly
WARN: Cannot resolve symbol address _ITM_deregisterTMCloneTable
WARN: Cannot resolve symbol address _Jv_RegisterClasses
WARN: Cannot resolve symbol address _ITM_registerTMCloneTable
ERROR: [cmd_write_fail] Cannot write. Use `omf`, `io.cache` or reopen the file in rw with `oo+`
EOF
RUN
