1import os 2 3import infra.basetest 4 5 6class TestOpensshBase(infra.basetest.BRTest): 7 passwd = "testpwd" 8 opensshconfig = \ 9 """ 10 BR2_TARGET_GENERIC_ROOT_PASSWD="{}" 11 BR2_PACKAGE_OPENSSH=y 12 BR2_PACKAGE_SSHPASS=y 13 BR2_ROOTFS_POST_BUILD_SCRIPT="{}" 14 # BR2_TARGET_ROOTFS_TAR is not set 15 """.format( 16 passwd, 17 infra.filepath("tests/package/test_openssh/post-build.sh")) 18 19 def openssh_test(self): 20 img = os.path.join(self.builddir, "images", "rootfs.cpio") 21 self.emulator.boot(arch="armv5", 22 kernel="builtin", 23 options=["-initrd", img, 24 "-net", "none"]) 25 self.emulator.login(self.passwd) 26 27 cmd = "netstat -ltn 2>/dev/null | grep 0.0.0.0:22" 28 self.assertRunOk(cmd) 29 30 cmd = "sshpass -p {} ssh -oStrictHostKeyChecking=no localhost /bin/true".format(self.passwd) 31 self.assertRunOk(cmd) 32 33 34class TestOpenSshuClibc(TestOpensshBase): 35 config = \ 36 TestOpensshBase.opensshconfig + \ 37 """ 38 BR2_arm=y 39 BR2_TOOLCHAIN_EXTERNAL=y 40 BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y 41 BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV5_EABI_UCLIBC_STABLE=y 42 BR2_TARGET_ROOTFS_CPIO=y 43 """ 44 45 def test_run(self): 46 self.openssh_test() 47 48 49class TestOpenSshGlibc(TestOpensshBase): 50 51 config = \ 52 TestOpensshBase.opensshconfig + \ 53 """ 54 BR2_arm=y 55 BR2_TOOLCHAIN_EXTERNAL=y 56 BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y 57 BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV5_EABI_GLIBC_BLEEDING_EDGE=y 58 BR2_PACKAGE_RNG_TOOLS=y 59 BR2_TARGET_ROOTFS_CPIO=y 60 """ 61 62 def test_run(self): 63 self.openssh_test() 64