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