You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
19 lines
1.0 KiB
19 lines
1.0 KiB
This is a smoke test of dex conversion, which checks to see that uses
|
|
of a known-null in contexts that require a specific type end up getting
|
|
converted to the type in question. When executed, this sort of code
|
|
will inevitably throw a NullPointerException, but if the opcode weren't
|
|
correct, they would instead incorrectly fail verification.
|
|
|
|
If you inspect the expected output of this test, you will see that
|
|
there are some surprising instructions in there, such as using
|
|
aget-byte for what was a boolean[] in the source code. In these cases,
|
|
the resulting output is still correct (passes verification and will
|
|
throw a NullPointerException if ever executed). However, it happens
|
|
that during translation there simply wasn't enough information to
|
|
recover the "true" original meaning at the level of actual opcode
|
|
selection.
|
|
|
|
This test compares emitted code against a known-good (via eyeballing)
|
|
version, so it is possible for this test to spuriously fail if other
|
|
aspects of conversion end up altering the output in innocuous ways.
|