Handle interface methods in JNI invocation

Change-Id: I7c9d25177fc6fdf9512beb2a882969a9aaf835ba
diff --git a/src/common_test.h b/src/common_test.h
index 1b0404e..e56a3a0 100644
--- a/src/common_test.h
+++ b/src/common_test.h
@@ -349,30 +349,69 @@
 //    }
 //}
 static const char kFibonacciDex[] =
-"ZGV4CjAzNQBaslnMUQxaXYgC3gD9FGHjVb8cHZ60G8ckBQAAcAAAAHhWNBIAAAAAAAAAAIQEAAAa"
-"AAAAcAAAAAsAAADYAAAABgAAAAQBAAABAAAATAEAAAcAAABUAQAAAgAAAIwBAABYAwAAzAEAAPoC"
-"AAACAwAAEgMAABUDAAAZAwAAHQMAACoDAAAuAwAAMwMAAEoDAABfAwAAggMAAJYDAACqAwAAvgMA"
-"AMsDAADOAwAA0gMAAOcDAAD8AwAABwQAABoEAAAgBAAAJQQAAC8EAAA3BAAAAgAAAAUAAAAIAAAA"
-"CQAAAAoAAAALAAAADAAAAA0AAAAPAAAAEQAAABIAAAADAAAAAAAAANwCAAAEAAAAAAAAAOQCAAAH"
-"AAAAAgAAAOwCAAAGAAAAAwAAANwCAAAPAAAACAAAAAAAAAAQAAAACAAAAPQCAAAHAAIAFgAAAAEA"
-"BAAAAAAAAQAAABMAAAABAAUAFQAAAAIAAgAYAAAAAwABABcAAAADAAMAGQAAAAUABAAAAAAABQAA"
-"AAEAAAD/////AAAAAA4AAAAAAAAAaAQAAAAAAAABAAAAAAAAAAUAAAAAAAAAAQAAAAAAAAByBAAA"
-"AAAAAAEAAQAAAAAAQAQAAAEAAAAOAAAAAQABAAEAAABFBAAABAAAAHAQBgAAAA4ABQABAAAAAABK"
-"BAAAEwAAABIROQQEABIADwASMAESARMBAQEwNkH6/7AC2AEBAQEjAQIBMCj4AAAIAAEAAwABAFcE"
-"AABIAAAAEhEhcDMQQwASAEYABwBxEAQAAAAKAHEQAQAAAAoBYgIAABoDFAASJCNECQASBXEQBQAA"
-"AAwGTQYEBRIVcRAFAAEADAFNAQQFbjADADIE2AEAAXEQAQABAAoBYgIAABoDFAASJCNECQASBXEQ"
-"BQAAAAwATQAEBRIQcRAFAAEADAFNAQQAbjADADIEDgANACj+AQAAAEQAAQABAQRGAQAAAAAAAAAB"
-"AAAABgAAAAIAAAAGAAkAAQAAAAoABjxpbml0PgAORmlib25hY2NpLmphdmEAAUkAAklJAAJJTAAL"
-"TEZpYm9uYWNjaTsAAkxJAANMTEwAFUxqYXZhL2lvL1ByaW50U3RyZWFtOwATTGphdmEvbGFuZy9J"
-"bnRlZ2VyOwAhTGphdmEvbGFuZy9OdW1iZXJGb3JtYXRFeGNlcHRpb247ABJMamF2YS9sYW5nL09i"
-"amVjdDsAEkxqYXZhL2xhbmcvU3RyaW5nOwASTGphdmEvbGFuZy9TeXN0ZW07AAtPYmplY3QuamF2"
-"YQABVgACVkwAE1tMamF2YS9sYW5nL09iamVjdDsAE1tMamF2YS9sYW5nL1N0cmluZzsACWZpYm9u"
-"YWNjaQARZmlib25hY2NpKCVkKT0lZAoABG1haW4AA291dAAIcGFyc2VJbnQABnByaW50ZgAHdmFs"
-"dWVPZgADAAcOAAEABw4ADwEABx0tJgJ7HXgcAB4BAAcdPHhLARgPaQEYERwAAAABAAaBgATMAwAA"
-"AwAAgIAE4AMBCPgDAQmwBA0AAAAAAAAAAQAAAAAAAAABAAAAGgAAAHAAAAACAAAACwAAANgAAAAD"
-"AAAABgAAAAQBAAAEAAAAAQAAAEwBAAAFAAAABwAAAFQBAAAGAAAAAgAAAIwBAAABIAAABAAAAMwB"
-"AAABEAAABAAAANwCAAACIAAAGgAAAPoCAAADIAAABAAAAEAEAAAAIAAAAgAAAGgEAAAAEAAAAQAA"
-"AIQEAAA=";
+  "ZGV4CjAzNQBaslnMUQxaXYgC3gD9FGHjVb8cHZ60G8ckBQAAcAAAAHhWNBIAAAAAAAAAAIQEAAAa"
+  "AAAAcAAAAAsAAADYAAAABgAAAAQBAAABAAAATAEAAAcAAABUAQAAAgAAAIwBAABYAwAAzAEAAPoC"
+  "AAACAwAAEgMAABUDAAAZAwAAHQMAACoDAAAuAwAAMwMAAEoDAABfAwAAggMAAJYDAACqAwAAvgMA"
+  "AMsDAADOAwAA0gMAAOcDAAD8AwAABwQAABoEAAAgBAAAJQQAAC8EAAA3BAAAAgAAAAUAAAAIAAAA"
+  "CQAAAAoAAAALAAAADAAAAA0AAAAPAAAAEQAAABIAAAADAAAAAAAAANwCAAAEAAAAAAAAAOQCAAAH"
+  "AAAAAgAAAOwCAAAGAAAAAwAAANwCAAAPAAAACAAAAAAAAAAQAAAACAAAAPQCAAAHAAIAFgAAAAEA"
+  "BAAAAAAAAQAAABMAAAABAAUAFQAAAAIAAgAYAAAAAwABABcAAAADAAMAGQAAAAUABAAAAAAABQAA"
+  "AAEAAAD/////AAAAAA4AAAAAAAAAaAQAAAAAAAABAAAAAAAAAAUAAAAAAAAAAQAAAAAAAAByBAAA"
+  "AAAAAAEAAQAAAAAAQAQAAAEAAAAOAAAAAQABAAEAAABFBAAABAAAAHAQBgAAAA4ABQABAAAAAABK"
+  "BAAAEwAAABIROQQEABIADwASMAESARMBAQEwNkH6/7AC2AEBAQEjAQIBMCj4AAAIAAEAAwABAFcE"
+  "AABIAAAAEhEhcDMQQwASAEYABwBxEAQAAAAKAHEQAQAAAAoBYgIAABoDFAASJCNECQASBXEQBQAA"
+  "AAwGTQYEBRIVcRAFAAEADAFNAQQFbjADADIE2AEAAXEQAQABAAoBYgIAABoDFAASJCNECQASBXEQ"
+  "BQAAAAwATQAEBRIQcRAFAAEADAFNAQQAbjADADIEDgANACj+AQAAAEQAAQABAQRGAQAAAAAAAAAB"
+  "AAAABgAAAAIAAAAGAAkAAQAAAAoABjxpbml0PgAORmlib25hY2NpLmphdmEAAUkAAklJAAJJTAAL"
+  "TEZpYm9uYWNjaTsAAkxJAANMTEwAFUxqYXZhL2lvL1ByaW50U3RyZWFtOwATTGphdmEvbGFuZy9J"
+  "bnRlZ2VyOwAhTGphdmEvbGFuZy9OdW1iZXJGb3JtYXRFeGNlcHRpb247ABJMamF2YS9sYW5nL09i"
+  "amVjdDsAEkxqYXZhL2xhbmcvU3RyaW5nOwASTGphdmEvbGFuZy9TeXN0ZW07AAtPYmplY3QuamF2"
+  "YQABVgACVkwAE1tMamF2YS9sYW5nL09iamVjdDsAE1tMamF2YS9sYW5nL1N0cmluZzsACWZpYm9u"
+  "YWNjaQARZmlib25hY2NpKCVkKT0lZAoABG1haW4AA291dAAIcGFyc2VJbnQABnByaW50ZgAHdmFs"
+  "dWVPZgADAAcOAAEABw4ADwEABx0tJgJ7HXgcAB4BAAcdPHhLARgPaQEYERwAAAABAAaBgATMAwAA"
+  "AwAAgIAE4AMBCPgDAQmwBA0AAAAAAAAAAQAAAAAAAAABAAAAGgAAAHAAAAACAAAACwAAANgAAAAD"
+  "AAAABgAAAAQBAAAEAAAAAQAAAEwBAAAFAAAABwAAAFQBAAAGAAAAAgAAAIwBAAABIAAABAAAAMwB"
+  "AAABEAAABAAAANwCAAACIAAAGgAAAPoCAAADIAAABAAAAEAEAAAAIAAAAgAAAGgEAAAAEAAAAQAA"
+  "AIQEAAA=";
+
+// class Interfaces {
+//   interface I {
+//     public void i();
+//   }
+//   interface J {
+//     public void j1();
+//     public void j2();
+//   }
+//   class A implements I, J {
+//     public void i() {};
+//     public void j1() {};
+//     public void j2() {};
+//   }
+// }
+static const char kInterfacesDex[] =
+  "ZGV4CjAzNQCRmX4RyqEIAGU0Pzgm7w3FvyUvYlel/coUBQAAcAAAAHhWNBIAAAAAAAAAAFAEAAAW"
+  "AAAAcAAAAAkAAADIAAAAAgAAAOwAAAABAAAABAEAAAkAAAAMAQAABAAAAFQBAABAAwAA1AEAAL4C"
+  "AADGAgAAyQIAAMwCAADdAgAA4AIAAPACAAAAAwAAEAMAAB4DAABCAwAAYgMAAIUDAACZAwAAnAMA"
+  "AKADAACtAwAAsAMAALQDAAC4AwAAvgMAAMYDAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAA"
+  "DAAAAA0AAAANAAAACAAAAAAAAAAOAAAACAAAALgCAAAAAAMAFAAAAAAAAQAAAAAAAAAAABAAAAAA"
+  "AAAAEQAAAAAAAAASAAAAAQAAABAAAAACAAAAEQAAAAIAAAASAAAAAwAAAAAAAAAHAAAAAAAAAAEA"
+  "AAAABgAABwAAAAAAAAADAAAAcAIAABcEAAAAAAAAAgAAAAAGAAAHAAAAAAAAAAMAAACAAgAAHwQA"
+  "AAAAAAAAAAAAAAAAAAcAAACwAgAAAwAAAJACAAArBAAAAAAAAAMAAAAAAAAABwAAAAAAAAADAAAA"
+  "oAIAAEQEAAAAAAAAAgAAAOgDAADuAwAAAgAAAOgDAAD4AwAAAgAAAOgDAAACBAAAAQAAAAsEAAAC"
+  "AAIAAQAAAM0DAAAGAAAAWwEAAHAQCAAAAA4AAQABAAAAAADTAwAAAQAAAA4AAAABAAEAAAAAANgD"
+  "AAABAAAADgAAAAEAAQAAAAAA3QMAAAEAAAAOAAAAAQABAAEAAADiAwAABAAAAHAQCAAAAA4A1AEA"
+  "AAAAAAAAAAAAAAAAAOABAAAAAAAAAAAAAAAAAADsAQAAAAAAAAAAAAAAAAAA+AEAAAAAAAAAAAAA"
+  "AAAAAAIAAAABAAIAAQAAAAMABjxpbml0PgABQQABSQAPSW50ZXJmYWNlcy5qYXZhAAFKAA5MSW50"
+  "ZXJmYWNlcyRBOwAOTEludGVyZmFjZXMkSTsADkxJbnRlcmZhY2VzJEo7AAxMSW50ZXJmYWNlczsA"
+  "IkxkYWx2aWsvYW5ub3RhdGlvbi9FbmNsb3NpbmdDbGFzczsAHkxkYWx2aWsvYW5ub3RhdGlvbi9J"
+  "bm5lckNsYXNzOwAhTGRhbHZpay9hbm5vdGF0aW9uL01lbWJlckNsYXNzZXM7ABJMamF2YS9sYW5n"
+  "L09iamVjdDsAAVYAAlZMAAthY2Nlc3NGbGFncwABaQACajEAAmoyAARuYW1lAAZ0aGlzJDAABXZh"
+  "bHVlAAoBAAcOAAsABw4ADAAHDgANAAcOAAIABw5DAAIEARUYAwIFAg8kCAYTFwICBQIPJAgGExcE"
+  "AgUCDwQAExcBAgYBFRwDGAAYAhgBAAAAAQSBCAAAAAACBYEIAAGBCAAAAQEDAJAgAICABIAEAQGc"
+  "BAEBsAQBAcQEAAABAAeAgATYBAAAEAAAAAAAAAABAAAAAAAAAAEAAAAWAAAAcAAAAAIAAAAJAAAA"
+  "yAAAAAMAAAACAAAA7AAAAAQAAAABAAAABAEAAAUAAAAJAAAADAEAAAYAAAAEAAAAVAEAAAMQAAAE"
+  "AAAA1AEAAAEgAAAFAAAAAAIAAAYgAAAEAAAAcAIAAAEQAAACAAAAsAIAAAIgAAAWAAAAvgIAAAMg"
+  "AAAFAAAAzQMAAAQgAAAFAAAA6AMAAAAgAAAEAAAAFwQAAAAQAAABAAAAUAQAAA==";
 
 static inline DexFile* OpenDexFileBase64(const char* base64,
                                          const std::string& location) {