buildroot/support/testing/tests/download/test_ssh.py

63 lines
1.9 KiB
Python

import os
import shutil
import tests.download.sshd
import infra
class SSHTestBase(infra.basetest.BRConfigTest):
config = infra.basetest.MINIMAL_CONFIG + '''
BR2_BACKUP_SITE=""
'''
sshd_test_dir = infra.filepath("tests/download/sshd")
sshd = None
def setUp(self):
super(SSHTestBase, self).setUp()
self.show_msg("Generating keys")
tests.download.sshd.generate_keys(self.builddir, self.logtofile)
self.show_msg("Starting sshd")
self.sshd = tests.download.sshd.OpenSSHDaemon(self.builddir,
self.logtofile)
def tearDown(self):
self.show_msg("Stopping sshd")
if self.sshd:
self.sshd.stop()
super(SSHTestBase, self).tearDown()
def download_package(self, package):
self.show_msg("Downloading {}".format(package))
# store downloaded tarball inside the output dir so the test infra
# cleans it up at the end
dl_dir = os.path.join(self.builddir, "dl")
ssh_identity = os.path.join(self.builddir,
tests.download.sshd.SSH_CLIENT_KEY)
# enforce that we test the download
if os.path.exists(dl_dir):
shutil.rmtree(dl_dir)
env = {"BR2_DL_DIR": dl_dir,
"SSHD_PORT_NUMBER": str(self.sshd.port),
"SSHD_TEST_DIR": self.sshd_test_dir,
"SSH_IDENTITY": ssh_identity}
self.b.build(["{}-dirclean".format(package),
"{}-source".format(package)],
env)
class TestSCP(SSHTestBase):
br2_external = [infra.filepath("tests/download/br2-external/ssh")]
def test_run(self):
self.download_package("scp")
class TestSFTP(SSHTestBase):
br2_external = [infra.filepath("tests/download/br2-external/ssh")]
def test_run(self):
self.download_package("sftp")