示例#1
0
    def test_generate_router_report(self):

        # Write a temporary router dat file
        # (assumption is that the filename ends with .dat)
        (routeFile, routeFileName) = tempfile.mkstemp(".dat")
        routeFile = os.fdopen(routeFile, "wb")
        print "Test writing route file to %s" % (routeFileName)

        # Write some random routes
        route_id = 0
        no_routes = 35
        for i in range(0, no_routes):
            compiled = route_id | (no_routes << 16)
            routeValue = randint(0, 0x3F) | (randint(1, 16) << 6)
            maskedkey = (randint(0, 7) << 24 | randint(0, 7) << 16
                         | randint(0, 16) << 11)
            mask = 0xFFFFFC00
            output_me = array('I', [compiled, routeValue, maskedkey, mask])
            output_me.tofile(routeFile)
            route_id += 1

        compiled = mykey = mymask = myroute = 0xFFFFFFFF
        output_me = array('I', [compiled, mykey, mymask, myroute])
        output_me.tofile(routeFile)
        routeFile.close()

        dao = DAO(None, hostname="amu12")
        chip = Chip(dao.machine, 0, 0, None, 16)

        print "Running read of generated route"
        reports.generate_router_report(routeFileName, chip, dao)

        os.remove(routeFileName)
def generate_output(dao):
    """
    Loads the machine objects from the datastore, calls
    :py:func:`pacman103.core.output_generator.generate_output_raw` to generate
    load targets and executable targets, and stores the result in the datastore.

    :param `pacman103.core.dao` dao:
        datastore containing a machine object.

    """
    machine = dao.get_machine()
    #checks if the folders for the binery and reports exists already.
    check_directories_exist(dao)
    generate_output_raw(dao)
    if conf.config.getboolean("Reports", "reportsEnabled"):
        reports.generate_data_generator_reports(dao)
    
    # Pickle outputs for reload
    directory = DAO.get_binaries_directory()
    load_targets_path = os.path.join(directory, "pickled_load_targets")
    executable_targets_path = os.path.join(directory, "pickled_executable_targets")
    mem_write_targets_path = os.path.join(directory, "pickled_mem_write_targets")
    
    try:
        load_targets_file = open(load_targets_path, "wb")
        pickle.dump(dao.load_targets, load_targets_file, protocol=pickle.HIGHEST_PROTOCOL)
        load_targets_file.close()
        executable_targets_file = open(executable_targets_path, "wb")
        pickle.dump(dao.executable_targets, executable_targets_file, protocol=pickle.HIGHEST_PROTOCOL)
        executable_targets_file.close()
        mem_write_targets_file = open(mem_write_targets_path, "wb")
        pickle.dump(dao.mem_write_targets, mem_write_targets_file, protocol=pickle.HIGHEST_PROTOCOL)
        mem_write_targets_file.close()
    except Exception as e:
        print e.message
def reload_output(dao, reload_time):
    logger.info("Reloading targets from %s" % reload_time)
    directory = DAO.get_binaries_directory(reload_time=reload_time)
    load_targets_path = os.path.join(directory, "pickled_load_targets")
    executable_targets_path = os.path.join(directory, "pickled_executable_targets")
    mem_write_targets_path = os.path.join(directory, "pickled_mem_write_targets")
    try:
        load_targets_file = open(load_targets_path, "rb")
        dao.load_targets = pickle.load(load_targets_file)
        load_targets_file.close()
        executable_targets_file = open(executable_targets_path, "rb")
        dao.executable_targets = pickle.load(executable_targets_file)
        executable_targets_file.close()
        mem_write_targets_file = open(mem_write_targets_path, "rb")
        dao.mem_write_targets = pickle.load(mem_write_targets_file)
        mem_write_targets_file.close()
    except Exception as e:
        print e.message
def generate_output(dao):
    """
    Loads the machine objects from the datastore, calls
    :py:func:`pacman103.core.output_generator.generate_output_raw` to generate
    load targets and executable targets, and stores the result in the datastore.

    :param `pacman103.core.dao` dao:
        datastore containing a machine object.

    """
    machine = dao.get_machine()
    #checks if the folders for the binery and reports exists already.
    check_directories_exist(dao)
    generate_output_raw(dao)
    if conf.config.getboolean("Reports", "reportsEnabled"):
        reports.generate_data_generator_reports(dao)

    # Pickle outputs for reload
    directory = DAO.get_binaries_directory()
    load_targets_path = os.path.join(directory, "pickled_load_targets")
    executable_targets_path = os.path.join(directory,
                                           "pickled_executable_targets")
    mem_write_targets_path = os.path.join(directory,
                                          "pickled_mem_write_targets")

    try:
        load_targets_file = open(load_targets_path, "wb")
        pickle.dump(dao.load_targets,
                    load_targets_file,
                    protocol=pickle.HIGHEST_PROTOCOL)
        load_targets_file.close()
        executable_targets_file = open(executable_targets_path, "wb")
        pickle.dump(dao.executable_targets,
                    executable_targets_file,
                    protocol=pickle.HIGHEST_PROTOCOL)
        executable_targets_file.close()
        mem_write_targets_file = open(mem_write_targets_path, "wb")
        pickle.dump(dao.mem_write_targets,
                    mem_write_targets_file,
                    protocol=pickle.HIGHEST_PROTOCOL)
        mem_write_targets_file.close()
    except Exception as e:
        print e.message
def reload_output(dao, reload_time):
    logger.info("Reloading targets from %s" % reload_time)
    directory = DAO.get_binaries_directory(reload_time=reload_time)
    load_targets_path = os.path.join(directory, "pickled_load_targets")
    executable_targets_path = os.path.join(directory,
                                           "pickled_executable_targets")
    mem_write_targets_path = os.path.join(directory,
                                          "pickled_mem_write_targets")
    try:
        load_targets_file = open(load_targets_path, "rb")
        dao.load_targets = pickle.load(load_targets_file)
        load_targets_file.close()
        executable_targets_file = open(executable_targets_path, "rb")
        dao.executable_targets = pickle.load(executable_targets_file)
        executable_targets_file.close()
        mem_write_targets_file = open(mem_write_targets_path, "rb")
        dao.mem_write_targets = pickle.load(mem_write_targets_file)
        mem_write_targets_file.close()
    except Exception as e:
        print e.message