Example #1
0
    def _createState(self):
        state = State()

        self._mExpectedStateData[EStateElementType.Memory] = state_transition_test_utils.addRandomMemoryStateElements(self, state, RandomUtils.random32(0, 20))
        self._mExpectedStateData[EStateElementType.GPR] = state_transition_test_utils.addRandomGprStateElements(self, state, RandomUtils.random32(0, 20))
        self._mExpectedStateData[EStateElementType.FloatingPointRegister] = state_transition_test_utils.addRandomFloatingPointRegisterStateElements(self, state, RandomUtils.random32(0, 20))
        self._mExpectedStateData[EStateElementType.PC] = state_transition_test_utils.addRandomPcStateElement(self, state)

        return state
Example #2
0
    def _createState(self):
        state = State()

        self._mExpectedStateData[
            EStateElementType.
            PC] = state_transition_test_utils.addRandomPcStateElement(
                self, state)
        self._mExpectedStateData[
            EStateElementType.
            FloatingPointRegister] = state_transition_test_utils.addRandomFloatingPointRegisterStateElements(
                self, state, RandomUtils.random32(0, 20))
        self._mExpectedStateData[
            EStateElementType.
            GPR] = state_transition_test_utils.addRandomGprStateElements(
                self, state, RandomUtils.random32(0, 20))
        self._mExpectedStateData[
            EStateElementType.
            Memory] = state_transition_test_utils.addRandomMemoryStateElements(
                self, state, RandomUtils.random32(0, 20))

        expected_sys_reg_state_data = []
        mscratch_val = RandomUtils.random64()
        state.addRegisterStateElement('mscratch', (mscratch_val, ))
        expected_sys_reg_state_data.append(('mscratch', mscratch_val))
        mepc_val = UtilityFunctions.getAlignedValue(RandomUtils.random64(), 4)
        state.addRegisterStateElement('mepc', (mepc_val, ))
        expected_sys_reg_state_data.append(('mepc', mepc_val))
        self._mExpectedStateData[
            EStateElementType.SystemRegister] = expected_sys_reg_state_data

        expected_vm_context_state_data = []
        mode_val = self.choice((0, 8, 9))
        state.addVmContextStateElement('satp', 'MODE', mode_val)
        expected_vm_context_state_data.append(('satp', 'MODE', mode_val))
        mpp_val = self.choice((0, 1, 3))
        state.addVmContextStateElement('mstatus', 'MPP', mpp_val)
        expected_vm_context_state_data.append(('mstatus', 'MPP', mpp_val))
        sum_val = RandomUtils.random32(0, 1)
        state.addVmContextStateElement('mstatus', 'SUM', sum_val)
        expected_vm_context_state_data.append(('mstatus', 'SUM', sum_val))
        self._mExpectedStateData[
            EStateElementType.VmContext] = expected_vm_context_state_data

        self._mExpectedStateData[
            EStateElementType.
            VectorRegister] = state_transition_test_utils.addRandomVectorRegisterStateElements(
                self, state, RandomUtils.random32(0, 20))

        return state
Example #3
0
    def _createState(self):
        state = State()

        expected_sys_reg_state_data = []

        mcause_name = 'mcause'
        exception_code_var_val = RandomUtils.random32(0, 9)
        state.addSystemRegisterStateElementByField(mcause_name,
                                                   'EXCEPTION CODE_VAR',
                                                   exception_code_var_val)
        self.randomInitializeRegister(mcause_name)
        (mcause_val, valid) = self.readRegister(mcause_name)
        state_transition_test_utils.assertValidRegisterValue(
            self, mcause_name, valid)
        mcause_val = state_transition_test_utils.combineRegisterValueWithFieldValue(
            self, mcause_name, mcause_val, 'EXCEPTION CODE_VAR',
            exception_code_var_val)
        expected_sys_reg_state_data.append((mcause_name, mcause_val))

        mtvec_name = 'mtvec'
        mode_val = RandomUtils.random32(0, 1)
        state.addSystemRegisterStateElementByField('mtvec', 'MODE', mode_val)
        self.randomInitializeRegister(mtvec_name)
        (mtvec_val, valid) = self.readRegister(mtvec_name)
        state_transition_test_utils.assertValidRegisterValue(
            self, mtvec_name, valid)
        mtvec_val = state_transition_test_utils.combineRegisterValueWithFieldValue(
            self, mtvec_name, mtvec_val, 'MODE', mode_val)
        expected_sys_reg_state_data.append((mtvec_name, mtvec_val))

        self._mExpectedStateData[
            EStateElementType.SystemRegister] = expected_sys_reg_state_data

        self._mExpectedStateData[
            EStateElementType.
            GPR] = state_transition_test_utils.addRandomGprStateElements(
                self, state, RandomUtils.random32(0, 5))
        self._mExpectedStateData[
            EStateElementType.
            PC] = state_transition_test_utils.addRandomPcStateElement(
                self, state)

        return state