public void CanCorrectlyPickSymbol() { if (!AndroidBridge.AndroidExtensionsInstalled) { System.Console.WriteLine("Test ignored, because Android Support is not installed"); return; } if (!AndroidLogcatTestsSetup.AndroidSDKAndNDKAvailable()) { System.Console.WriteLine("Test ignored, SDK & NDK are not available."); return; } var tools = new AndroidTools(); var playerPackage = BuildPipeline.GetPlaybackEngineDirectory(BuildTarget.Android, BuildOptions.None); var symbolsDirectory = Path.Combine(playerPackage, $"Variations/il2cpp/Development/Symbols"); var symbolPaths = new List <ReordableListItem>(new[] { new ReordableListItem() { Enabled = true, Name = symbolsDirectory } }); var symbolPathsArmV7 = new List <ReordableListItem>(new[] { new ReordableListItem() { Enabled = true, Name = Path.Combine(symbolsDirectory, AndroidLogcatUtilities.kAbiArmV7) } }); var symbolPathsArm64 = new List <ReordableListItem>(new[] { new ReordableListItem() { Enabled = true, Name = Path.Combine(symbolsDirectory, AndroidLogcatUtilities.kAbiArm64) } }); var libunity = "libunity"; AssertStringContains(libunity, AndroidLogcatUtilities.GetSymbolFile(symbolPathsArmV7, string.Empty, libunity + ".so")); AssertStringContains(libunity, AndroidLogcatUtilities.GetSymbolFile(symbolPathsArm64, string.Empty, libunity + ".so")); // Since ABI is empty, we cannot resolve symbol path, thus the result will be empty Assert.AreEqual(string.Empty, AndroidLogcatUtilities.GetSymbolFile(symbolPaths, string.Empty, libunity + ".so")); var armv7Result = AndroidLogcatUtilities.GetSymbolFile(symbolPaths, AndroidLogcatUtilities.kAbiArmV7, libunity + ".so"); AssertStringContains(libunity, armv7Result); AssertStringContains(AndroidLogcatUtilities.kAbiArmV7, armv7Result); var arm64Result = AndroidLogcatUtilities.GetSymbolFile(symbolPaths, AndroidLogcatUtilities.kAbiArm64, libunity + ".so"); AssertStringContains(libunity, arm64Result); AssertStringContains(AndroidLogcatUtilities.kAbiArm64, arm64Result); }
private static string GetSymbolPath(string abi, string libraryFile) { var playerPackage = BuildPipeline.GetPlaybackEngineDirectory(BuildTarget.Android, BuildOptions.None); return(AndroidLogcatUtilities.GetSymbolFile(Path.Combine(playerPackage, $"Variations/il2cpp/Development/Symbols/{abi}"), libraryFile)); }