[K/N] Support stacktrace using libbacktrace
This commit is contained in:
+21
@@ -0,0 +1,21 @@
|
||||
/*
|
||||
* Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
inline fun inner2() : Nothing {
|
||||
throw Exception()
|
||||
}
|
||||
|
||||
fun inner1() : Nothing {
|
||||
inner2()
|
||||
}
|
||||
|
||||
fun getStackTrace() : List<String> {
|
||||
try {
|
||||
inner1()
|
||||
} catch (e: Exception) {
|
||||
return e.getStackTrace().toList()
|
||||
}
|
||||
return emptyList()
|
||||
}
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
import Foundation
|
||||
import StacktraceByLibbacktrace
|
||||
|
||||
func testStackTrace() throws {
|
||||
let trace = StacktraceByLibbacktraceKt.getStackTrace()
|
||||
try assertTrue(trace[0].contains("Throwable.kt"))
|
||||
try assertTrue(trace[1].contains("Exceptions.kt"))
|
||||
try assertTrue(trace[2].contains("stacktraceByLibbacktrace.kt:7"))
|
||||
try assertTrue(trace[2].contains("[inlined]"))
|
||||
try assertTrue(trace[3].contains("stacktraceByLibbacktrace.kt:11"))
|
||||
try assertTrue(trace[4].contains("stacktraceByLibbacktrace.kt:16"))
|
||||
try assertTrue(trace[6].contains("stacktraceByLibbacktrace.swift:5"))
|
||||
try assertTrue(trace[7].contains("main.swift:126"))
|
||||
}
|
||||
|
||||
class StacktraceByLibbacktraceTests : TestProvider {
|
||||
var tests: [TestCase] = []
|
||||
|
||||
init() {
|
||||
providers.append(self)
|
||||
tests = [
|
||||
TestCase(name: "Stacktrace", method: withAutorelease(testStackTrace)),
|
||||
]
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user