lean4-htt/tests/lean/run/kernelInterrupt.lean
Sebastian Ullrich 7f00767b1e
fix: adapt kernel interruption to new cancellation system (#4584)
Kernel checks were not canceled on edit after #3014
2024-07-01 14:52:42 +00:00

27 lines
747 B
Text

import Lean.CoreM
/-!
Check that C++ exceptions are properly translated to Lean data.
In particular, runtime exceptions such as `interrupted_exception` should properly transition from
`libInit_shared` to `libleanshared`, which requires correct linking of the unwinding library.
-/
open Lean
/-- info: -/
#guard_msgs in
#eval show CoreM _ from do
let env ← getEnv
let envPromise ← IO.Promise.new
let tk ← IO.CancelToken.new
let t := Task.spawn fun _ =>
let env := envPromise.result.get
let decl := .axiomDecl {
name := `test
levelParams := []
type := mkConst `Nat
isUnsafe := false
}
env.addDeclCore 1000 decl tk
tk.set
envPromise.resolve env
assert! t.get matches .error .interrupted