Ejemplo n.º 1
0
class UbootExpectTestCase(unittest.TestCase):
    
    @classmethod
    def setUpClass(cls):
        verbose = True
        dryrun = False
        logger = utils.logger.init_global_logger('UbootExpect')
        logger.setLevel(logging.DEBUG)
        streamhandler = logging.StreamHandler()
        streamhandler.setFormatter(logging.Formatter('%(msg)s'))
        if verbose:
            streamhandler.setLevel(logging.DEBUG)
        else:
            streamhandler.setLevel(logging.INFO)
        logger.addHandler(streamhandler)
        utils.executer.init_global_executer(dryrun=dryrun, enable_colors=False,
                                            verbose=verbose)
    
    def setUp(self):
        dryrun = False
        self.uboot = UbootExpect()
        self.uboot.console_logger = utils.logger.get_global_logger()
        self.uboot.dryrun = dryrun
        cmd = 'termnet %s %s' % (test_telnet_host, test_telnet_port)
        ret = self.uboot.open_comm(cmd)
        self.assertTrue(ret)
        ret = self.uboot.sync()
        self.assertTrue(ret)
    
    def tearDown(self):
        self.uboot.close_comm()

    def test_cmd(self):
        cmd = 'nand info'
        self.uboot.cmd(cmd)
        cmd = 'dhcp'
        self.uboot.cmd(cmd, prompt_timeout=None)
        self.uboot.cancel_cmd()
        
    def test_expect(self):
        cmd = 'nand info'
        response = 'Device 0'
        self.uboot.cmd(cmd, prompt_timeout=None)
        found, line = self.uboot.expect(response)
        self.assertTrue(found)
        if found:
            print 'Found line: %s' % line
    
    def test_env(self):
        var = 'foo'
        value = 'bar'
        self.uboot.set_env(var, value)
        if self.uboot.dryrun is False:
            self.assertEqual(self.uboot.get_env(var), value)        
        var = "bootcmd"
        value = "'nboot 0x82000000 0 \${kernel_offset}'"
        self.uboot.set_env(var, value)
        if self.uboot.dryrun is False:
            self.assertEqual(self.uboot.get_env(var), 'nboot 0x82000000 0 ${kernel_offset}')
        self.uboot.save_env()
Ejemplo n.º 2
0
class NandInstallerTFTPTestCase(unittest.TestCase):
    @classmethod
    def setUpClass(cls):
        verbose = True
        dryrun = False
        logger = utils.logger.init_global_logger('NandInstaller')
        logger.setLevel(logging.DEBUG)
        streamhandler = logging.StreamHandler()
        streamhandler.setFormatter(logging.Formatter('%(msg)s'))
        if verbose:
            streamhandler.setLevel(logging.DEBUG)
        else:
            streamhandler.setLevel(logging.INFO)
        logger.addHandler(streamhandler)
        utils.executer.init_global_executer(dryrun=dryrun,
                                            enable_colors=False,
                                            verbose=verbose)

    def setUp(self):
        dryrun = False
        self.uboot = UbootExpect()
        self.uboot.console_logger = utils.logger.get_global_logger()
        self.uboot.dryrun = dryrun
        cmd = 'termnet %s %s' % (test_host_ip_addr, test_port)
        ret = self.uboot.open_comm(cmd)
        self.assertTrue(ret)
        ret = self.uboot.sync()
        self.assertTrue(ret)

        self.loader = TftpRamLoader(self.uboot, TftpRamLoader.MODE_DHCP)
        self.loader.dir = test_tftp_dir
        self.loader.port = 69
        self.loader.host_ipaddr = test_host_ip_addr
        self.loader.dryrun = dryrun

        self.env_inst = EnvInstaller(uboot=self.uboot)
        self.env_inst.dryrun = dryrun

        self.board = BoardFactory().make(test_board)

        self.inst = NandInstaller(uboot=self.uboot,
                                  board=self.board,
                                  loader=self.loader)
        self.inst.ram_load_addr = test_ram_load_addr
        self.inst.verbose = True
        self.inst.dryrun = dryrun
        self.inst.read_partitions(test_mmap_file)

    def tearDown(self):
        self.uboot.close_comm()

# ==========================================================================
# Test cases - Others
# ==========================================================================

    def test_nand_block_size(self):
        print "---- test_nand_block_size ----"
        test_nbs = False
        if test_nbs:
            # Set a value manually
            self.inst.nand_block_size = 15
            self.assertEqual(self.inst.nand_block_size, 15)
            # Force to query uboot - block size = 128 KB for a leo dm368
            self.inst.nand_block_size = 0
            self.assertEqual(self.inst.nand_block_size, 131072)

    def test_nand_page_size(self):
        print "---- test_nand_page_size ----"
        test_nps = False
        if test_nps:
            # Set a value manually
            self.inst.nand_page_size = 15
            self.assertEqual(self.inst.nand_page_size, 15)
            # Force to query uboot - page size = 0x800 (2048) for a leo dm368
            self.inst.nand_page_size = 0
            self.assertEqual(self.inst.nand_page_size, 2048)

    def test_tftp_settings(self):
        print "---- test_tftp_settings ----"
        test_tftp = False
        if test_tftp:
            ret = self.inst._check_tftp_settings()
            self.assertTrue(ret)

    def test_tftp_dhcp(self):
        print "---- test_dhcp ----"
        test_dhcp = False
        if test_dhcp:
            ret = self.inst.setup_uboot_network()
            self.assertTrue(ret)

    def test_load_file_to_ram(self):
        print "---- test_load_to_ram ----"
        test_load_to_ram = False
        if test_load_to_ram:
            ret = self.inst.setup_uboot_network()
            self.assertTrue(ret)
            boot_img = "%s/images/bootloader" % devdir
            ret = self.inst._load_file_to_ram(boot_img, test_uboot_load_addr)
            self.assertTrue(ret)

    def test_read_partitions(self):
        print "---- test_nand_block_size ----"
        test_read_part = False
        if test_read_part:
            self.inst.read_partitions('%s/images/nand-mmap.config' % devdir)

    def test_mtdparts(self):
        print "---- test_mtdparts ----"
        test_mtd_parts = False
        if test_mtd_parts:
            self.inst._generate_mtdparts('davinci_nand.0')

# ==========================================================================
# Install methods
# ==========================================================================

    def setup_network(self):
        print "---- Setting up network ----"
        self.loader.setup_uboot_network()
        self.uboot.set_env('autostart', 'yes')
        self.uboot.save_env()

    def load_uboot(self):
        print "---- Loading uboot to RAM ----"
        uboot_img = "%s/images/bootloader" % devdir
        self.inst.load_uboot_to_ram(uboot_img, test_uboot_load_addr)

    def install_bootloader(self):
        print "---- Installing bootloader ----"
        self.inst.install_ipl()
        self.inst.install_bootloader()

    def install_kernel(self):
        print "---- Installing kernel ----"
        self.inst.install_kernel(force=True)

    def install_fs(self):
        print "---- Installing fs ----"
        self.inst.install_fs(force=True)

    def install_cmdline(self):
        print "---- Installing cmdline ----"
        # cmdline for ubifs
        if test_board == 'dm36x-leopard':
            cmdline = "davinci_enc_mngr.ch0_output=COMPONENT davinci_enc_mngr.ch0_mode=1080I-30 davinci_display.cont2_bufsize=13631488 vpfe_capture.cont_bufoffset=13631488 vpfe_capture.cont_bufsize=12582912 video=davincifb:osd1=0x0x8:osd0=1920x1080x16,4050K@0,0:vid0=off:vid1=off console=ttyS0,115200n8 dm365_imp.oper_mode=0 mem=83M ubi.mtd=ROOTFS root=ubi0:rootfs rootfstype=ubifs mtdparts=davinci_nand.0:128k@128k(UBL),384k@3200k(UBOOT),4736k@4096k(KERNEL),204800k@8832k(ROOTFS)"
        elif test_board == 'dm816x':
            cmdline = "console=ttyO2,115200n8 notifyk.vpssm3_sva=0xBF900000 ubi.mtd=ROOTFS root=ubi0:rootfs rootfstype=ubifs mem=364M@0x80000000 mem=320M@0x9FC00000 vmalloc=512M vram=81M mtdparts=omap2-nand.0:256k@0k(UBOOT-MIN),256k@256k(UBOOT),4352k@2560k(KERNEL),63232k@6912k(ROOTFS)"
        elif test_board == 'dm814x':
            cmdline = "console=ttyO0,115200n8  notifyk.vpssm3_sva=0xBF900000 root=/dev/nfs nfsroot=%s:%s/fs/fs rw ip=dhcp  mem=364M@0x80000000 mem=320M@0x9FC00000 vmalloc=512M vram=81M  mtdparts=omap2-nand.0:128k@0k(UBOOT-MIN),256k@128k(UBOOT),4352k@2560k(KERNEL)" % (
                test_host_ip_addr, devdir)
        self.env_inst.install_variable('bootargs', cmdline, force=True)

    def install_bootcmd(self):
        print "---- Installing bootcmd ----"
        bootcmd = "'nboot 0x82000000 0 \${kernel_offset}'"
        self.env_inst.install_variable('bootcmd', bootcmd)

    def install_mtdparts(self):
        print "---- Installing mtdparts ----"
        if test_board == 'dm36x-leopard':
            mtdparts = "mtdparts=davinci_nand.0:128k@128k(UBL),384k@3200k(UBOOT),4736k@4096k(KERNEL),204800k@8832k(ROOTFS)"
        elif test_board == 'dm816x':
            mtdparts = "mtdparts=omap2-nand.0:256k@0k(UBOOT-MIN),256k@256k(UBOOT),4352k@2560k(KERNEL),63232k@6912k(ROOTFS)"
        elif test_board == 'dm814x':
            mtdparts = "mtdparts=omap2-nand.0:128k@0k(UBOOT-MIN),256k@128k(UBOOT),4352k@2560k(KERNEL)"
        self.env_inst.install_variable('mtdparts', mtdparts, force=True)


# ==========================================================================
# Test cases - Install methods
# ==========================================================================

    def test_install_bootloader(self):
        test_install_uboot = False
        if test_install_uboot:
            self.setup_network()
            self.load_uboot()
            self.install_bootloader()

    def test_install_kernel(self):
        test_install_k = False
        if test_install_k:
            self.setup_network()
            self.load_uboot()
            self.install_kernel()

    def test_install_fs(self):
        test_fs = False
        if test_fs:
            self.setup_network()
            self.load_uboot()
            self.install_fs()

    def test_install_cmdline(self):
        test_cmdline = False
        if test_cmdline:
            self.install_cmdline()

    def test_install_bootcmd(self):
        test_bootcmd = False
        if test_bootcmd:
            self.install_bootcmd()

    def test_install_mtdparts(self):
        test_mtdparts = False
        if test_mtdparts:
            self.install_mtdparts()

    def test_install_all(self):
        install_all = True
        if install_all:
            self.setup_network()
            self.load_uboot()
            self.install_bootloader()
            self.install_kernel()
            self.install_fs()
            self.install_cmdline()
            self.install_bootcmd()
            self.install_mtdparts()
            self.uboot.set_env('autostart', 'yes')
            self.uboot.save_env()
            self.uboot.cmd('echo Installation complete')
Ejemplo n.º 3
0
class UbootExpectTestCase(unittest.TestCase):
    @classmethod
    def setUpClass(cls):
        verbose = True
        dryrun = False
        logger = utils.logger.init_global_logger('UbootExpect')
        logger.setLevel(logging.DEBUG)
        streamhandler = logging.StreamHandler()
        streamhandler.setFormatter(logging.Formatter('%(msg)s'))
        if verbose:
            streamhandler.setLevel(logging.DEBUG)
        else:
            streamhandler.setLevel(logging.INFO)
        logger.addHandler(streamhandler)
        utils.executer.init_global_executer(dryrun=dryrun,
                                            enable_colors=False,
                                            verbose=verbose)

    def setUp(self):
        dryrun = False
        self.uboot = UbootExpect()
        self.uboot.console_logger = utils.logger.get_global_logger()
        self.uboot.dryrun = dryrun
        cmd = 'termnet %s %s' % (test_telnet_host, test_telnet_port)
        ret = self.uboot.open_comm(cmd)
        self.assertTrue(ret)
        ret = self.uboot.sync()
        self.assertTrue(ret)

    def tearDown(self):
        self.uboot.close_comm()

    def test_cmd(self):
        cmd = 'nand info'
        self.uboot.cmd(cmd)
        cmd = 'dhcp'
        self.uboot.cmd(cmd, prompt_timeout=None)
        self.uboot.cancel_cmd()

    def test_expect(self):
        cmd = 'nand info'
        response = 'Device 0'
        self.uboot.cmd(cmd, prompt_timeout=None)
        found, line = self.uboot.expect(response)
        self.assertTrue(found)
        if found:
            print 'Found line: %s' % line

    def test_env(self):
        var = 'foo'
        value = 'bar'
        self.uboot.set_env(var, value)
        if self.uboot.dryrun is False:
            self.assertEqual(self.uboot.get_env(var), value)
        var = "bootcmd"
        value = "'nboot 0x82000000 0 \${kernel_offset}'"
        self.uboot.set_env(var, value)
        if self.uboot.dryrun is False:
            self.assertEqual(self.uboot.get_env(var),
                             'nboot 0x82000000 0 ${kernel_offset}')
        self.uboot.save_env()
Ejemplo n.º 4
0
class NandInstallerTFTPTestCase(unittest.TestCase):
    
    @classmethod
    def setUpClass(cls):
        verbose = True
        dryrun = False
        logger = utils.logger.init_global_logger('NandInstaller')
        logger.setLevel(logging.DEBUG)
        streamhandler = logging.StreamHandler()
        streamhandler.setFormatter(logging.Formatter('%(msg)s'))
        if verbose:
            streamhandler.setLevel(logging.DEBUG)
        else:
            streamhandler.setLevel(logging.INFO)
        logger.addHandler(streamhandler)
        utils.executer.init_global_executer(dryrun=dryrun, enable_colors=False,
                                            verbose=verbose)
    
    def setUp(self):
        dryrun = False
        self.uboot = UbootExpect()
        self.uboot.console_logger = utils.logger.get_global_logger()
        self.uboot.dryrun = dryrun
        cmd = 'termnet %s %s' % (test_host_ip_addr, test_port)
        ret = self.uboot.open_comm(cmd)
        self.assertTrue(ret)
        ret = self.uboot.sync()
        self.assertTrue(ret)
        
        self.loader = TftpRamLoader(self.uboot, TftpRamLoader.MODE_DHCP)
        self.loader.dir = test_tftp_dir
        self.loader.port = 69
        self.loader.host_ipaddr = test_host_ip_addr
        self.loader.dryrun = dryrun
        
        self.env_inst = EnvInstaller(uboot=self.uboot)
        self.env_inst.dryrun = dryrun
        
        self.board = BoardFactory().make(test_board)
        
        self.inst = NandInstaller(uboot=self.uboot, board=self.board,
                                  loader=self.loader)
        self.inst.ram_load_addr = test_ram_load_addr
        self.inst.verbose = True
        self.inst.dryrun = dryrun
        self.inst.read_partitions(test_mmap_file)
        
    def tearDown(self):
        self.uboot.close_comm()
    
# ==========================================================================
# Test cases - Others 
# ==========================================================================
    
    def test_nand_block_size(self):
        print "---- test_nand_block_size ----"
        test_nbs = False
        if test_nbs:
            # Set a value manually
            self.inst.nand_block_size = 15
            self.assertEqual(self.inst.nand_block_size, 15)
            # Force to query uboot - block size = 128 KB for a leo dm368
            self.inst.nand_block_size = 0
            self.assertEqual(self.inst.nand_block_size, 131072)
        
    def test_nand_page_size(self):
        print "---- test_nand_page_size ----"
        test_nps = False
        if test_nps:
            # Set a value manually
            self.inst.nand_page_size = 15
            self.assertEqual(self.inst.nand_page_size, 15)
            # Force to query uboot - page size = 0x800 (2048) for a leo dm368
            self.inst.nand_page_size = 0
            self.assertEqual(self.inst.nand_page_size, 2048)
    
    def test_tftp_settings(self):
        print "---- test_tftp_settings ----"
        test_tftp = False
        if test_tftp:
            ret = self.inst._check_tftp_settings()
            self.assertTrue(ret)

    def test_tftp_dhcp(self):
        print "---- test_dhcp ----"
        test_dhcp = False
        if test_dhcp:
            ret = self.inst.setup_uboot_network()
            self.assertTrue(ret)

    def test_load_file_to_ram(self):
        print "---- test_load_to_ram ----"
        test_load_to_ram = False
        if test_load_to_ram:
            ret = self.inst.setup_uboot_network()
            self.assertTrue(ret)
            boot_img = "%s/images/bootloader" % devdir
            ret = self.inst._load_file_to_ram(boot_img, test_uboot_load_addr)
            self.assertTrue(ret)
    
    def test_read_partitions(self):
        print "---- test_nand_block_size ----"
        test_read_part = False
        if test_read_part:
            self.inst.read_partitions('%s/images/nand-mmap.config' % devdir)
    
    def test_mtdparts(self):
        print "---- test_mtdparts ----"
        test_mtd_parts = False
        if test_mtd_parts:
            self.inst._generate_mtdparts('davinci_nand.0')
    
# ==========================================================================
# Install methods
# ==========================================================================
            
    def setup_network(self):
        print "---- Setting up network ----"
        self.loader.setup_uboot_network()
        self.uboot.set_env('autostart', 'yes')
        self.uboot.save_env()
    
    def load_uboot(self):
        print "---- Loading uboot to RAM ----"
        uboot_img = "%s/images/bootloader" % devdir
        self.inst.load_uboot_to_ram(uboot_img, test_uboot_load_addr)
            
    def install_bootloader(self):
        print "---- Installing bootloader ----"
        self.inst.install_ipl()
        self.inst.install_bootloader()
    
    def install_kernel(self):
        print "---- Installing kernel ----"
        self.inst.install_kernel(force=True)
    
    def install_fs(self):
        print "---- Installing fs ----"
        self.inst.install_fs(force=True)
    
    def install_cmdline(self):
        print "---- Installing cmdline ----"
        # cmdline for ubifs
        if test_board == 'dm36x-leopard':
            cmdline = "davinci_enc_mngr.ch0_output=COMPONENT davinci_enc_mngr.ch0_mode=1080I-30 davinci_display.cont2_bufsize=13631488 vpfe_capture.cont_bufoffset=13631488 vpfe_capture.cont_bufsize=12582912 video=davincifb:osd1=0x0x8:osd0=1920x1080x16,4050K@0,0:vid0=off:vid1=off console=ttyS0,115200n8 dm365_imp.oper_mode=0 mem=83M ubi.mtd=ROOTFS root=ubi0:rootfs rootfstype=ubifs mtdparts=davinci_nand.0:128k@128k(UBL),384k@3200k(UBOOT),4736k@4096k(KERNEL),204800k@8832k(ROOTFS)"
        elif test_board == 'dm816x':
            cmdline = "console=ttyO2,115200n8 notifyk.vpssm3_sva=0xBF900000 ubi.mtd=ROOTFS root=ubi0:rootfs rootfstype=ubifs mem=364M@0x80000000 mem=320M@0x9FC00000 vmalloc=512M vram=81M mtdparts=omap2-nand.0:256k@0k(UBOOT-MIN),256k@256k(UBOOT),4352k@2560k(KERNEL),63232k@6912k(ROOTFS)"
        elif test_board == 'dm814x':
            cmdline = "console=ttyO0,115200n8  notifyk.vpssm3_sva=0xBF900000 root=/dev/nfs nfsroot=%s:%s/fs/fs rw ip=dhcp  mem=364M@0x80000000 mem=320M@0x9FC00000 vmalloc=512M vram=81M  mtdparts=omap2-nand.0:128k@0k(UBOOT-MIN),256k@128k(UBOOT),4352k@2560k(KERNEL)" % (test_host_ip_addr, devdir)
        self.env_inst.install_variable('bootargs', cmdline, force=True)
        
    def install_bootcmd(self):
        print "---- Installing bootcmd ----"
        bootcmd = "'nboot 0x82000000 0 \${kernel_offset}'"
        self.env_inst.install_variable('bootcmd', bootcmd)
        
    def install_mtdparts(self):
        print "---- Installing mtdparts ----"
        if test_board == 'dm36x-leopard':
            mtdparts = "mtdparts=davinci_nand.0:128k@128k(UBL),384k@3200k(UBOOT),4736k@4096k(KERNEL),204800k@8832k(ROOTFS)"
        elif test_board == 'dm816x':
            mtdparts = "mtdparts=omap2-nand.0:256k@0k(UBOOT-MIN),256k@256k(UBOOT),4352k@2560k(KERNEL),63232k@6912k(ROOTFS)"
        elif test_board == 'dm814x':
            mtdparts = "mtdparts=omap2-nand.0:128k@0k(UBOOT-MIN),256k@128k(UBOOT),4352k@2560k(KERNEL)"
        self.env_inst.install_variable('mtdparts', mtdparts, force=True)

# ==========================================================================
# Test cases - Install methods 
# ==========================================================================

    def test_install_bootloader(self):
        test_install_uboot = False
        if test_install_uboot:
            self.setup_network()
            self.load_uboot()
            self.install_bootloader()
            
    def test_install_kernel(self):
        test_install_k = False
        if test_install_k:
            self.setup_network()
            self.load_uboot()
            self.install_kernel()

    def test_install_fs(self):
        test_fs = False
        if test_fs:
            self.setup_network()
            self.load_uboot()
            self.install_fs()

    def test_install_cmdline(self):
        test_cmdline = False
        if test_cmdline:
            self.install_cmdline()
            
    def test_install_bootcmd(self):
        test_bootcmd = False
        if test_bootcmd:
            self.install_bootcmd()
            
    def test_install_mtdparts(self):
        test_mtdparts = False
        if test_mtdparts:
            self.install_mtdparts()
            
    def test_install_all(self):
        install_all = True
        if install_all:
            self.setup_network()
            self.load_uboot()
            self.install_bootloader()
            self.install_kernel()
            self.install_fs()
            self.install_cmdline()
            self.install_bootcmd()
            self.install_mtdparts()
            self.uboot.set_env('autostart', 'yes')
            self.uboot.save_env()
            self.uboot.cmd('echo Installation complete')