63 lines
1.9 KiB
Python
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")
|