NAME=object-inspect-tagged-android
FILE=bins/android/first/libapp.so
CMDS=<<EOF
L ../src/r2/core_flutter.dylib
L ../src/r2/core_flutter.so
r2flutter -q -j -O 0x1651~{=}kind,value.object.addr,value.object.cid,value.object.string.length,value.object.string.value
EOF
EXPECT=<<EOF
json.kind = "object";
json.value.kind = "object";
json.value.object.addr = 5712;
json.value.object.cid = 93;
json.value.object.cid_name = "String";
json.value.object.string.length_raw = 22;
json.value.object.string.length = 11;
json.value.object.string.value_truncated = false;
json.value.object.string.value = "_Uint16List";
json.value.candidates[0].kind = "tagged_heap";
json.value.candidates[1].kind = "raw_address";
EOF
RUN

NAME=object-inspect-pp-mafia
FILE=bins/android/mafia/libapp.so
CMDS=<<EOF
L ../src/r2/core_flutter.dylib
L ../src/r2/core_flutter.so
r2flutter -q -j -O pp+0x68~{=}kind,pp_slot.entry_index,pp_slot.type,pp_slot.resolved_kind,pp_slot.resolved_cid,pp_slot.resolved_name,value.decoded,snapshot.kind,snapshot.value
EOF
EXPECT=<<EOF
json.kind = "object_pool_ref";
json.pp_slot.entry_index = 11;
json.pp_slot.type = "tagged_object";
json.pp_slot.resolved_kind = "string";
json.pp_slot.resolved_name = "getCallbackHandle";
json.pp_slot.resolved_cid = 93;
json.value.decoded = false;
json.value.kind = "object_pool_ref";
json.value.candidates[0].kind = "raw_address";
json.value.candidates[1].kind = "compressed_data_image";
json.snapshot.kind = "string";
json.snapshot.value = "getCallbackHandle";
EOF
RUN

NAME=object-inspect-plugin-android
FILE=bins/android/first/libapp.so
CMDS=<<EOF
L ../src/r2/core_flutter.dylib
L ../src/r2/core_flutter.so
r2flutter -q -O 0x1651
EOF
EXPECT=<<EOF
_Uint16List
EOF
RUN
