NAME=pp-android
FILE=bins/android/mafia/libapp.so
CMDS=<<EOF
L ../src/r2/core_flutter.dylib
L ../src/r2/core_flutter.so
r2flutter -q -p
EOF
EXPECT=<<EOF
vaddr=0x385154 paddr=0x385154
EOF
RUN

NAME=pp-json-android
FILE=bins/android/mafia/libapp.so
CMDS=<<EOF
L ../src/r2/core_flutter.dylib
L ../src/r2/core_flutter.so
r2flutter -q -j -p~{=}base,vaddr,paddr,kind,cluster_index,pool_ref,length,size,word_size,source_addr.paddr
EOF
EXPECT=<<EOF
json.base = 3690836;
json.vaddr = 3690836;
json.paddr = 3690836;
json.kind = "synthetic";
json.pp_addr.vaddr = 3690836;
json.pp_addr.paddr = 3690836;
json.source_addr.vaddr = 3690836;
json.source_addr.paddr = 3690836;
json.snapshot_base = 19072;
json.data_image_base = 4890624;
json.cluster_index = 1088;
json.pool_ref = 195985;
json.length = 46569;
json.size = 419144;
json.word_size = 8;
EOF
RUN

NAME=pp-r2-android
FILE=bins/android/mafia/libapp.so
CMDS=<<EOF
L ../src/r2/core_flutter.dylib
L ../src/r2/core_flutter.so
r2flutter -q -r -p~malloc://,anal.gp,anal.roregs,x27=,PP =,dart.pp
EOF
EXPECT=<<EOF
o malloc://0x66548 0x385154 rw
e anal.gp=0x385154
e anal.roregs=
dr x27=0x385154
e anal.roregs=x27,gp,zero
f PP = 0x385154
f dart.pp 0x66548 @ 0x385154
f dart.pp.entries 0x5af48 @ 0x385164
f dart.pp.entry_bits 0xb5e9 @ 0x3e00ac
EOF
RUN

NAME=pp-plugin-android
FILE=bins/android/mafia/libapp.so
CMDS=<<EOF
L ../src/r2/core_flutter.dylib
L ../src/r2/core_flutter.so
r2flutter -q -p
EOF
EXPECT=<<EOF
vaddr=0x385154 paddr=0x385154
EOF
RUN

NAME=pp-plugin-rebased-android
FILE=bins/android/mafia/libapp.so
ARGS=-B 0x70000000
CMDS=<<EOF
L ../src/r2/core_flutter.dylib
L ../src/r2/core_flutter.so
r2flutter -q -p
EOF
EXPECT=<<EOF
vaddr=0x70385154 paddr=0x385154
EOF
RUN

NAME=pp-json-ios
FILE=bins/ios/Runner.app/Frameworks/App.framework/App
CMDS=<<EOF
L ../src/r2/core_flutter.dylib
L ../src/r2/core_flutter.so
r2flutter -q -j -p~{=}base,vaddr,paddr,kind,cluster_index,pool_ref,length,size,word_size,source_addr.paddr
EOF
EXPECT=<<EOF
json.base = 2282193;
json.vaddr = 2282193;
json.paddr = 2282193;
json.kind = "synthetic";
json.pp_addr.vaddr = 2282193;
json.pp_addr.paddr = 2282193;
json.source_addr.vaddr = 2265809;
json.source_addr.paddr = 2282193;
json.snapshot_base = 1807872;
json.data_image_base = 2344128;
json.cluster_index = 320;
json.pool_ref = 41741;
json.length = 8435;
json.size = 75936;
json.word_size = 8;
EOF
RUN
