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)
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)
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)
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
def setUp(self): self.vm = create_vm(size=0, registersize=self.registersize)