esp-idf/tools/ci/test_autocomplete.py
2020-11-13 15:22:46 +01:00

57 lines
2.5 KiB
Python
Executable File

#!/usr/bin/env python
import os
import sys
import pexpect
import unittest
class Test(unittest.TestCase):
def test_fish(self):
os.environ["TERM"] = "vt100"
child = pexpect.spawn("fish -i")
with open(os.environ["IDF_PATH"] + "/fish" + str(sys.version_info.major) + ".out", "wb") as output:
child.logfile = output
child.sendline('. ./export.fish')
result = child.expect(
["Go to the project directory and run.*idf\\.py build", pexpect.EOF,
pexpect.TIMEOUT], timeout=40)
self.assertEqual(result, 0, "Export was not successful!")
child.send("idf.py \t\t")
result = child.expect(["all.*app.*app-flash.*bootloader.*", pexpect.EOF, pexpect.TIMEOUT], timeout=40)
self.assertEqual(result, 0, "Autocompletion for idf.py failed in fish!")
def test_bash(self):
os.environ["TERM"] = "xterm-256color"
child = pexpect.spawn("bash -i")
with open(os.environ["IDF_PATH"] + "/bash" + str(sys.version_info.major) + ".out", "wb") as output:
child.logfile = output
child.sendline('. ./export.sh')
child.send("idf.py \t\t")
result = child.expect(
["Go to the project directory and run.*idf\\.py build", pexpect.EOF,
pexpect.TIMEOUT], timeout=40)
self.assertEqual(result, 0, "Export was not successful!")
result = child.expect(
["all.*app.*app-flash.*bootloader.*bootloader-flash.*build-system-targets.*clean.*", pexpect.EOF,
pexpect.TIMEOUT], timeout=40)
self.assertEqual(result, 0, "Autocompletion for idf.py failed in bash!")
def test_zsh(self):
child = pexpect.spawn("zsh -i")
with open(os.environ["IDF_PATH"] + "/zsh" + str(sys.version_info.major) + ".out", "wb") as output:
child.logfile = output
child.sendline('. ./export.sh')
result = child.expect(
["Go to the project directory and run.*idf\\.py build", pexpect.EOF,
pexpect.TIMEOUT], timeout=40)
self.assertEqual(result, 0, "Export was not successful!")
child.send("idf.py \t\t")
result = child.expect(
["all.*app.*app-flash.*bootloader.*bootloader-flash.*build-system-targets.*clean.*", pexpect.EOF,
pexpect.TIMEOUT], timeout=40)
self.assertEqual(result, 0, "Autocompletion for idf.py failed in zsh!")
if __name__ == '__main__':
unittest.main()