This is a smoke test of dex conversion, which ensures that the
conversion runs without failure, though the contents of the converted
file are not checked for correctness. This test is of a classfile with
just an abstract instance method.
