void symex_parseoptionst::report_properties( const path_searcht::property_mapt &property_map) { for(path_searcht::property_mapt::const_iterator it=property_map.begin(); it!=property_map.end(); it++) { if(get_ui()==ui_message_handlert::XML_UI) { xmlt xml_result("result"); xml_result.set_attribute("claim", id2string(it->first)); std::string status_string; switch(it->second.status) { case path_searcht::PASS: status_string="OK"; break; case path_searcht::FAIL: status_string="FAILURE"; break; case path_searcht::NOT_REACHED: status_string="OK"; break; } xml_result.set_attribute("status", status_string); std::cout << xml_result << "\n"; } else { status() << "[" << it->first << "] " << it->second.description << ": "; switch(it->second.status) { case path_searcht::PASS: status() << "OK"; break; case path_searcht::FAIL: status() << "FAILED"; break; case path_searcht::NOT_REACHED: status() << "OK"; break; } status() << eom; } if(cmdline.isset("show-trace") && it->second.status==path_searcht::FAIL) show_counterexample(it->second.error_trace); } if(!cmdline.isset("property")) { status() << eom; unsigned failed=0; for(path_searcht::property_mapt::const_iterator it=property_map.begin(); it!=property_map.end(); it++) if(it->second.status==path_searcht::FAIL) failed++; status() << "** " << failed << " of " << property_map.size() << " failed" << eom; } }