NAME=r2-plugin-C-mafia-future
FILE=bins/android/mafia/libapp.so
ARGS=-NN -e bin.relocs.apply=true
CMDS=<<EOF
L ../src/r2/core_flutter.dylib
L ../src/r2/core_flutter.so
r2flutter -C
icqq~dart_Future
EOF
EXPECT=<<EOF
dart_FutureOr
dart_FutureProviderRef
dart_FutureProvider
dart_FutureBuilder
dart_FutureProviderFamilyBuilder
dart_FutureProviderFamily
dart_FutureHandlerProviderElementMixin
dart_FutureProviderElement
dart_Future
EOF
RUN

# Remove BROKEN=1 when radare2 6.2.2 is released.
NAME=r2-plugin-C-mafia-future-method-attributes
BROKEN=1
FILE=bins/android/mafia/libapp.so
ARGS=-NN -e bin.relocs.apply=true
CMDS=<<EOF
L ../src/r2/core_flutter.dylib
L ../src/r2/core_flutter.so
r2flutter -C
ic dart_Future
EOF
EXPECT=<<EOF
class dart_Future
0x00000000 method dart_Future sC   Future_error
0x00000000 method dart_Future sC   Future_
0x00000000 method dart_Future s    _anonymous_closure_
0x00000000 method dart_Future sC   Future_value
0x00000000 method dart_Future s    wait
0x00000000 method dart_Future s    handleError
0x00000000 method dart_Future sC   Future_delayed
0x00000000 method dart_Future sC   Future_microtask
0x00000000 method dart_Future sC   Future_sync
EOF
RUN
