Beispiel #1
0
 def __load_program(self, program):
     try:
         self.__program = read_solver_bin(program)
     except RuntimeError:
         self.__program = None
     try:
         RB_WD = tempfile.mkdtemp()
         zfd = zipfile.ZipFile(program, 'r')
         zfd.extractall(RB_WD)
         self.__sim = None
         bin_prefix = None
         for r, d, fl in os.walk(RB_WD):
             for f in fl:
                 if f == 'arch.json':
                     if self.__verbose:
                         print 'Initializing simulator with config file'
                     self.__sim = SolverSim(os.path.join(r, f))
                 if f.endswith('.cp.imem_init'):
                     bin_prefix = os.path.join(r,
                                               f[:f.find('.cp.imem_init')])
         if not self.__sim:
             if self.__verbose:
                 print 'Initializing simulator with default arch'
             self.__sim = SolverSim('baseline')
         if not bin_prefix: raise RuntimeError('No binary file found')
         self.__sim.add_program_init(bin_prefix)
     finally:
         if RB_WD: shutil.rmtree(RB_WD)
     self.__sim.reset()