summaryrefslogtreecommitdiff
path: root/src/testdir/test87.in
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2013-02-13 14:17:08 +0100
committerBram Moolenaar <Bram@vim.org>2013-02-13 14:17:08 +0100
commit76d711c3b5397b749a67d229150d3c1ff3f33add (patch)
treeca5c0745ab1f3995faacee77be1bf4369ae4765d /src/testdir/test87.in
parent51971b33988e590901b9f6ad14a5a36f276afd0b (diff)
downloadvim-76d711c3b5397b749a67d229150d3c1ff3f33add.zip
updated for version 7.3.808
Problem: Python threads still do not work properly. Solution: Fix both Python 2 and 3. Add tests. (Ken Takata)
Diffstat (limited to 'src/testdir/test87.in')
-rw-r--r--src/testdir/test87.in48
1 files changed, 48 insertions, 0 deletions
diff --git a/src/testdir/test87.in b/src/testdir/test87.in
index 1d7ccedd5..5115e5be7 100644
--- a/src/testdir/test87.in
+++ b/src/testdir/test87.in
@@ -267,6 +267,54 @@ EOF
: $put =toput
: endtry
:endfor
+:"
+:" threading
+:let l = [0]
+:py3 l=vim.bindeval('l')
+:py3 <<EOF
+import threading
+import time
+
+class T(threading.Thread):
+ def __init__(self):
+ threading.Thread.__init__(self)
+ self.t = 0
+ self.running = True
+
+ def run(self):
+ while self.running:
+ self.t += 1
+ time.sleep(0.1)
+
+t = T()
+t.start()
+EOF
+:sleep 1
+:py3 t.running = False
+:py3 t.join()
+:py3 l[0] = t.t > 8 # check if the background thread is working
+:$put =string(l)
+:"
+:" settrace
+:let l = []
+:py3 l=vim.bindeval('l')
+:py3 <<EOF
+import sys
+
+def traceit(frame, event, arg):
+ global l
+ if event == "line":
+ l += [frame.f_lineno]
+ return traceit
+
+def trace_main():
+ for i in range(5):
+ pass
+EOF
+:py3 sys.settrace(traceit)
+:py3 trace_main()
+:py3 sys.settrace(None)
+:$put =string(l)
:endfun
:"
:call Test()