pietrobraione / jbse

A symbolic Java virtual machine for program analysis, verification and test generation
http://pietrobraione.github.io/jbse/
GNU General Public License v3.0
103 stars 29 forks source link

Report Bugs: trigger rules are discarded in the latest implementation #32

Closed zyf0726 closed 4 years ago

zyf0726 commented 4 years ago

Hi, I I am facing an issue on executing triggers. In jbse.jvm.EngineParameters.java, method getTriggerRulesRepo returns a clone of this.triggerRulesRepo but not this.triggerRulesRepo itself.

public TriggerRulesRepo getTriggerRulesRepo() {
    final TriggerRulesRepo retVal = this.triggerRulesRepo.clone();
    if (getUseHashMapModel()) {
        retVal.addExpandTo("java/util/HashMap", "(?!{°}*java/util/HashMap:initialMap{EOL}){°}*", "java/util/HashMap", new Signature("java/util/HashMap", "(Ljava/util/HashMap;)V", "initSymbolic"), "{$REF}");
    }
    return retVal;
}

This makes the operation in method fillEngineParameters of jbse.apps.settings.SettingsReader.java ineffective, since trigger rules are added to the temporary clone.

public void fillEngineParameters(EngineParameters params) {
    fillRulesTrigger(params.getTriggerRulesRepo());
    fillExpansionBackdoor(params.getExpansionBackdoor());
}
pietrobraione commented 4 years ago

Thank you for the report, and sorry for the late feedback.

pietrobraione commented 4 years ago

Closed by pull request #36.