[IR][tests] More precise IrLinkageError checks
This commit is contained in:
@@ -2,8 +2,8 @@
|
|||||||
fun test1(d: D): String {
|
fun test1(d: D): String {
|
||||||
try {
|
try {
|
||||||
d.bar()
|
d.bar()
|
||||||
} catch(ex: Throwable) {
|
} catch(e: Throwable) {
|
||||||
return "O"
|
if (e.isLinkageError("/E.<init>")) return "O"
|
||||||
}
|
}
|
||||||
|
|
||||||
return "FAIL2"
|
return "FAIL2"
|
||||||
@@ -16,4 +16,7 @@ fun test2(d: D): String {
|
|||||||
|
|
||||||
fun box(): String {
|
fun box(): String {
|
||||||
return test1(D()) + test2(D())
|
return test1(D()) + test2(D())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun Throwable.isLinkageError(symbolName: String): Boolean =
|
||||||
|
this::class.simpleName == "IrLinkageError" && message?.startsWith("Unlinked IR symbol $symbolName|") == true
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
fun test1(d: D): String {
|
fun test1(d: D): String {
|
||||||
try {
|
try {
|
||||||
d.bar()
|
d.bar()
|
||||||
} catch(ex: Throwable) {
|
} catch(e: Throwable) {
|
||||||
return "O"
|
if (e.isLinkageError("/D.exp")) return "O"
|
||||||
}
|
}
|
||||||
|
|
||||||
return "FAIL2"
|
return "FAIL2"
|
||||||
@@ -16,4 +16,7 @@ fun test2(d: D): String {
|
|||||||
|
|
||||||
fun box(): String {
|
fun box(): String {
|
||||||
return test1(D()) + test2(D())
|
return test1(D()) + test2(D())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun Throwable.isLinkageError(symbolName: String): Boolean =
|
||||||
|
this::class.simpleName == "IrLinkageError" && message?.startsWith("Unlinked type in signature of IR symbol $symbolName|") == true
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
fun test1(d: D): String {
|
fun test1(d: D): String {
|
||||||
try {
|
try {
|
||||||
d.bar()
|
d.bar()
|
||||||
} catch(ex: Throwable) {
|
} catch(e: Throwable) {
|
||||||
return "O"
|
if (e.isLinkageError("/D.exp")) return "O"
|
||||||
}
|
}
|
||||||
|
|
||||||
return "FAIL2"
|
return "FAIL2"
|
||||||
@@ -16,4 +16,7 @@ fun test2(d: D): String {
|
|||||||
|
|
||||||
fun box(): String {
|
fun box(): String {
|
||||||
return test1(D()) + test2(D())
|
return test1(D()) + test2(D())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun Throwable.isLinkageError(symbolName: String): Boolean =
|
||||||
|
this::class.simpleName == "IrLinkageError" && message?.startsWith("Unlinked type in signature of IR symbol $symbolName|") == true
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
fun test1(d: D): String {
|
fun test1(d: D): String {
|
||||||
try {
|
try {
|
||||||
d.bar()
|
d.bar()
|
||||||
} catch(ex: Throwable) {
|
} catch(e: Throwable) {
|
||||||
return "O"
|
if (e.isLinkageError("/D.exp")) return "O"
|
||||||
}
|
}
|
||||||
|
|
||||||
return "FAIL2"
|
return "FAIL2"
|
||||||
@@ -16,4 +16,7 @@ fun test2(d: D): String {
|
|||||||
|
|
||||||
fun box(): String {
|
fun box(): String {
|
||||||
return test1(D()) + test2(D())
|
return test1(D()) + test2(D())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun Throwable.isLinkageError(symbolName: String): Boolean =
|
||||||
|
this::class.simpleName == "IrLinkageError" && message?.startsWith("Unlinked type in signature of IR symbol $symbolName|") == true
|
||||||
|
|||||||
+6
-4
@@ -1,9 +1,8 @@
|
|||||||
|
|
||||||
fun test1(): String {
|
fun test1(): String {
|
||||||
try {
|
try {
|
||||||
return qux(true)
|
return qux(true)
|
||||||
} catch(ex: Throwable) {
|
} catch(e: Throwable) {
|
||||||
return "O"
|
if (e.isLinkageError("/exp_foo")) return "O"
|
||||||
}
|
}
|
||||||
|
|
||||||
return "FAIL2"
|
return "FAIL2"
|
||||||
@@ -13,4 +12,7 @@ fun test2(): String = qux(false)
|
|||||||
|
|
||||||
fun box(): String {
|
fun box(): String {
|
||||||
return test1() + test2()
|
return test1() + test2()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun Throwable.isLinkageError(symbolName: String): Boolean =
|
||||||
|
this::class.simpleName == "IrLinkageError" && message?.startsWith("Unlinked IR symbol $symbolName|") == true
|
||||||
|
|||||||
Reference in New Issue
Block a user