summaryrefslogtreecommitdiffstats
path: root/lldb/third_party/Python/module/pexpect-4.6/tools/display-maxcanon.py
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/third_party/Python/module/pexpect-4.6/tools/display-maxcanon.py')
-rw-r--r--lldb/third_party/Python/module/pexpect-4.6/tools/display-maxcanon.py80
1 files changed, 0 insertions, 80 deletions
diff --git a/lldb/third_party/Python/module/pexpect-4.6/tools/display-maxcanon.py b/lldb/third_party/Python/module/pexpect-4.6/tools/display-maxcanon.py
deleted file mode 100644
index cbd664ffec7..00000000000
--- a/lldb/third_party/Python/module/pexpect-4.6/tools/display-maxcanon.py
+++ /dev/null
@@ -1,80 +0,0 @@
-#!/usr/bin/env python
-"""
-This tool uses pexpect to test expected Canonical mode length.
-
-All systems use the value of MAX_CANON which can be found using
-fpathconf(3) value PC_MAX_CANON -- with the exception of Linux
-and FreeBSD.
-
-Linux, though defining a value of 255, actually honors the value
-of 4096 from linux kernel include file tty.h definition
-N_TTY_BUF_SIZE.
-
-Linux also does not honor IMAXBEL. termios(3) states, "Linux does not
-implement this bit, and acts as if it is always set." Although these
-tests ensure it is enabled, this is a non-op for Linux.
-
-FreeBSD supports neither, and instead uses a fraction (1/5) of the tty
-speed which is always 9600. Therefor, the maximum limited input line
-length is 9600 / 5 = 1920.
-
-These tests only ensure the correctness of the behavior described by
-the sendline() docstring -- the values listed there, and above should
-be equal to the output of the given OS described, but no promises!
-"""
-# std import
-from __future__ import print_function
-import sys
-import os
-
-
-def detect_maxcanon():
- import pexpect
- bashrc = os.path.join(
- # re-use pexpect/replwrap.py's bashrc file,
- os.path.dirname(__file__), os.path.pardir, 'pexpect', 'bashrc.sh')
-
- child = pexpect.spawn('bash', ['--rcfile', bashrc],
- echo=True, encoding='utf8', timeout=3)
-
- child.sendline(u'echo -n READY_; echo GO')
- child.expect_exact(u'READY_GO')
-
- child.sendline(u'stty icanon imaxbel erase ^H; echo -n retval: $?')
- child.expect_exact(u'retval: 0')
-
- child.sendline(u'echo -n GO_; echo AGAIN')
- child.expect_exact(u'GO_AGAIN')
- child.sendline(u'cat')
-
- child.delaybeforesend = 0
-
- column, blocksize = 0, 64
- ch_marker = u'_'
-
- print('auto-detecting MAX_CANON: ', end='')
- sys.stdout.flush()
-
- while True:
- child.send(ch_marker * blocksize)
- result = child.expect([ch_marker * blocksize, u'\a'])
- if result == 0:
- # entire block fit without emitting bel
- column += blocksize
- elif result == 1:
- # an '\a' was emitted, count the number of ch_markers
- # found since last blocksize, determining our MAX_CANON
- column += child.before.count(ch_marker)
- break
- print(column)
-
-if __name__ == '__main__':
- try:
- detect_maxcanon()
- except ImportError:
- # we'd like to use this with CI -- but until we integrate
- # with tox, we can't determine a period in testing when
- # the pexpect module has been installed
- print('warning: pexpect not in module path, MAX_CANON '
- 'could not be determined by systems test.',
- file=sys.stderr)
OpenPOWER on IntegriCloud