示例#1
0
def do_minimal_vm(romfile, romhex=COMPAT_FALSE, memory_size=1<<21):
    vm = create_vm(size=0, registersize=32)
    if romhex:
        load_hex_program(vm, romfile)
    else:
        load_program(vm, romfile)
    grow_memory(vm, memory_size)
    execute_vm(vm)
示例#2
0
 def execute_fuzz_test(self):
     vm = create_vm(
         size=0,
         registersize=self.registersize,
         tapefile1=self.get_tape1_file_path(),
         tapefile2=self.tape_02_temp_file_path,
         stdin=self.get_stdin_for_vm(self.input_bytes),
         stdout=BytesIO(),
     )
     self.load_encoding_rom(vm)
     grow_memory(vm, self.get_end_of_memory())
     execute_vm(vm, optimize=self.optimize, halt_print=False)
示例#3
0
 def finish_setup(self, input_file_fd):
     self.py_vm = create_vm(
         size=0, registersize=LILITH_REGISTER_SIZE,
         tapefile1=self.tape_01_filename,
         tapefile2=self.tape_02_filename,
         stdin=input_file_fd,
         stdout=self.output_mem_buffer,
     )
     load_program(self.py_vm, self.binary_rom_filename)
     self.program_size = len(self.py_vm[MEM])
     grow_memory(self.py_vm, self.vm_size)
     
     self.rom_name_string_buffer = create_string_buffer(
         self.binary_rom_filename.encode('ascii') )
     self.c_vm.load_lilith(self.rom_name_string_buffer)
示例#4
0
    def execute_test_hex_load(self, stage0hexfile, sha256hex):
        output_mem_buffer = BytesIO()

        with open(get_stage0_file(stage0hexfile), 'rb') as input_file_fd:
            vm = create_vm(
                size=0,
                registersize=self.registersize,
                tapefile1=self.get_tape1_file_path(input_file_fd),
                tapefile2=self.tape_02_temp_file_path,
                stdin=self.get_stdin_for_vm(input_file_fd),
                stdout=output_mem_buffer,
            )
            self.load_encoding_rom(vm)
            self.assertEqual(self.encoding_rom_binary.getbuffer(),
                             vm[MEM].tobytes())
            grow_memory(vm, self.get_end_of_memory())
            execute_vm(vm, optimize=self.optimize, halt_print=False)

        with open(self.get_output_file_path(), 'rb') as tape_file:
            checksum = sha256(tape_file.read())

        self.assertEqual(checksum.hexdigest(), sha256hex, stage0hexfile)
 def setUp(self):
     self.vm = create_vm(size=0, registersize=self.registersize)
     self.vm[MEM].frombytes(bytes.fromhex('E0002D10'))  # LOADI r0
示例#6
0
 def setUp(self):
     self.vm = create_vm(size=0, registersize=self.registersize)