public void CorrectyParseStacktraceCrash() { var logLines = new[] { "2020/07/15 15:31:30.887 23271 23292 Error AndroidRuntime at libunity.0x0041e340(Native Method)", "2019-05-17 12:00:58.830 30759-30803/? E/CRASH: \t#00 pc 0041e340 /data/app/com.mygame==/lib/arm/libunity.so", "2020/07/15 15:31:30.887 23271 23292 Error AndroidRuntime at libunity.0x1234567890123456(Native Method)", "2019-05-17 12:00:58.830 30759-30803/? E/CRASH: \t#00 pc 1234567890123456 /data/app/com.mygame==/lib/arm/libunity.so", }; var regexs = new List <ReordableListItem>(); foreach (var r in AndroidLogcatSettings.kAddressResolveRegex) { regexs.Add(new ReordableListItem() { Enabled = true, Name = r }); } foreach (var line in logLines) { string address; string libName; var result = AndroidLogcatUtilities.ParseCrashLine(regexs, line, out address, out libName); Assert.IsTrue(result, "Failed to parse " + line); Assert.IsTrue(address.Equals("0041e340") || address.Equals("1234567890123456")); Assert.IsTrue(libName.Equals("libunity.so")); } }
public void CorrectyParseStacktraceCrash() { var logLines = new[] { "2020/07/15 15:31:30.887 23271 23292 Error AndroidRuntime at libunity.0x0041e340(Native Method)", "2019-05-17 12:00:58.830 30759-30803/? E/CRASH: \t#00 pc 0041e340 /data/app/com.mygame==/lib/arm/libunity.so", "2019-05-17 12:00:58.830 30759-30803/? E/CRASH: \t#00 pc 0041e340 /data/app/com.mygame==/lib/x86/libunity.so", "2020/07/15 15:31:30.887 23271 23292 Error AndroidRuntime at libunity.0x1234567890123456(Native Method)", "2019-05-17 12:00:58.830 30759-30803/? E/CRASH: \t#00 pc 1234567890123456 /data/app/com.mygame==/lib/arm64/libunity.so", "2019-05-17 12:00:58.830 30759-30803/? E/CRASH: \t#00 pc 1234567890123456 /data/app/com.mygame==/lib/x86_64/libunity.so", }; var regexs = new List <ReordableListItem>(); foreach (var r in AndroidLogcatSettings.kAddressResolveRegex) { regexs.Add(new ReordableListItem() { Enabled = true, Name = r }); } for (int i = 0; i < logLines.Length; i++) { string expectedABI = string.Empty; switch (i) { case 1: expectedABI = AndroidLogcatUtilities.kAbiArmV7; break; case 2: expectedABI = AndroidLogcatUtilities.kAbiX86; break; case 4: expectedABI = AndroidLogcatUtilities.kAbiArm64; break; case 5: expectedABI = AndroidLogcatUtilities.kAbiX86_64; break; } var line = logLines[i]; string address; string libName; string abi; var result = AndroidLogcatUtilities.ParseCrashLine(regexs, line, out abi, out address, out libName); Assert.IsTrue(result, "Failed to parse " + line); Assert.IsTrue(address.Equals("0041e340") || address.Equals("1234567890123456")); Assert.AreEqual("libunity.so", libName); Assert.AreEqual(expectedABI, abi); } }