70 lines
2.4 KiB
Plaintext
70 lines
2.4 KiB
Plaintext
type State { Empty
|
|
Label(text: Text) }
|
|
|
|
label(value: null, active: Bool) (answer: Text) {
|
|
dever.task.sleep(0)
|
|
answer = "none"
|
|
}
|
|
label(value: Text, active: true) (answer: Text) {
|
|
pending = run(dever.task.sleep(60000))
|
|
dever.task.sleep(0)
|
|
answer = value + ":on"
|
|
stop(pending)
|
|
}
|
|
label(value: Text, active: false) (answer: Text) {
|
|
dever.task.sleep(0)
|
|
answer = value + ":off"
|
|
}
|
|
|
|
read(value: null) (answer: Text) { dever.task.sleep(0)
|
|
answer = "absent" }
|
|
read(value: State.Empty) (answer: Text) { dever.task.sleep(0)
|
|
answer = "empty" }
|
|
read(value: State.Label(text)) (answer: Text) { dever.task.sleep(0)
|
|
answer = text }
|
|
|
|
axis(left: true, right: Int < 0) (answer: Int) { dever.task.sleep(0)
|
|
answer = 1 }
|
|
axis(left: true, right: other) (answer: Int) { dever.task.sleep(0)
|
|
answer = 2 }
|
|
axis(left: other, right: Int < 0) (answer: Int) { dever.task.sleep(0)
|
|
answer = 3 }
|
|
axis(left: other, right: other) (answer: Int) { dever.task.sleep(0)
|
|
answer = 4 }
|
|
|
|
attempt(fail_now: true) () {
|
|
pending = run(dever.task.sleep(60000))
|
|
fail(dever.time.SleepResult.Failed("expected"))
|
|
}
|
|
attempt(fail_now: false) () {
|
|
pending = run(dever.task.sleep(60000))
|
|
stop(pending)
|
|
}
|
|
|
|
failed(value: dever.time.SleepResult.Done) (answer: Bool) recover("检查捕获结果") { answer = false }
|
|
failed(value: dever.time.SleepResult.Failed(message)) (answer: Bool) recover("检查捕获结果") { answer = message == "expected" }
|
|
|
|
verify() (answer: Bool) {
|
|
original = State.Label("雪")
|
|
missing = label(null, true)
|
|
enabled = wait(run(label("a", true)))
|
|
disabled = label("b", false)
|
|
absent = read(null)
|
|
empty = read(State.Empty)
|
|
named = wait(run(read(original)))
|
|
first = axis(true, -1)
|
|
second = axis(true, 0)
|
|
third = axis(false, -1)
|
|
fourth = axis(false, 0)
|
|
present_number = wait(run(number(7)))
|
|
absent_number = wait(run(number(null)))
|
|
observed = failed(result(attempt(true)))
|
|
completed = failed(result(attempt(false)))
|
|
answer = missing == "none" and enabled == "a:on" and disabled == "b:off" and absent == "absent" and empty == "empty" and named == "雪" and original == State.Label("雪") and first == 1 and second == 2 and third == 3 and fourth == 4 and present_number == 7 and absent_number == -1 and observed and not completed
|
|
}
|
|
|
|
number(value: null) (answer: Int) { dever.task.sleep(0)
|
|
answer = -1 }
|
|
number(value: Int) (answer: Int) { dever.task.sleep(0)
|
|
answer = value }
|