Merge branch 'bugfix/fix-autocomplete-tests' into 'master'

Add waiting for export script finish

Closes IDFCI-218

See merge request espressif/esp-idf!11216
This commit is contained in:
Angus Gratton 2020-11-17 07:33:16 +08:00
commit c9fdc8a167
2 changed files with 36 additions and 26 deletions

View File

@ -291,7 +291,7 @@ test_docs:
- ${IDF_PATH}/tools/ci/multirun_with_pyenv.sh -p 3.6.10 ./test_docs.py
- ${IDF_PATH}/tools/ci/multirun_with_pyenv.sh -p 3.6.10 ./test_sphinx_idf_extensions.py
.test_autocomplete:
test_autocomplete:
extends: .host_test_template
image: $CI_DOCKER_REGISTRY/linux-shells:1
artifacts:

View File

@ -1,5 +1,6 @@
#!/usr/bin/env python
import os
import sys
import pexpect
import unittest
@ -8,38 +9,47 @@ class Test(unittest.TestCase):
def test_fish(self):
os.environ["TERM"] = "vt100"
child = pexpect.spawn("fish -i")
child.logfile = open(os.environ["IDF_PATH"] + "/fish.out", "wb")
child.sendline(
'. {$IDF_PATH}/export.fish >> {$IDF_PATH}/debug.out')
child.send("idf.py \t\t")
result = child.expect(["all.*app.*app-flash.*bootloader.*", pexpect.EOF, pexpect.TIMEOUT], timeout=5)
self.assertEqual(result, 0, "Autocompletion for idf.py failed in fish!")
result = child.expect(["bootloader-flash.*build-system-targets.*clean.*", pexpect.EOF, pexpect.TIMEOUT],
timeout=5)
self.assertEqual(result, 0, "Autocompletion for idf.py failed in fish!")
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")
child.logfile = open(os.environ["IDF_PATH"] + "/bash.out", "wb")
child.sendline(
'. ${IDF_PATH}/export.sh >> ${IDF_PATH}/debug.out')
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=5)
self.assertEqual(result, 0, "Autocompletion for idf.py failed in bash!")
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")
child.logfile = open(os.environ["IDF_PATH"] + "/zsh.out", "wb")
child.sendline(
'. ${IDF_PATH}/export.sh >> ${IDF_PATH}/debug.out ')
child.send("idf.py \t")
result = child.expect(
["all.*app.*app-flash.*bootloader.*bootloader-flash.*build-system-targets.*clean.*", pexpect.EOF,
pexpect.TIMEOUT], timeout=5)
self.assertEqual(result, 0, "Autocompletion for idf.py failed in zsh!")
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__':