def test_stp_stats_aware_parser(self): stdout = """ ASSERT( const_arr8_0x43ff170[0x0000017B] = 0xC0 ); ASSERT( arr6_n_args_0x1fd58b0[0x00000000] = 0x04 ); sat""" stderr = """ statistics Transforming: 1 [247ms] Simplifying: 8 [3309ms] Parsing: 1 [163ms] CNF Conversion: 10 [99ms] Bit Blasting: 10 [808ms] SAT Solving: 10 [740ms] Sending to SAT Solver: 10 [175ms] Counter Example Generation: 10 [132ms] Constant Bit Propagation: 3 [550ms] Array Read Refinement: 9 [26ms] Applying Substitutions: 4 [70ms] Remove Unconstrained: 2 [131ms] Pure Literals: 2 [27ms] ITE Contexts: 1 [561ms] Interval Propagation: 2 [30ms] Statistics Total: 7.07s CPU Time Used : 7.29s Peak Memory Used: 134.00MB""" assignment_expected = {"const_arr8_0x43ff170": {379: 192}, "arr6_n_args_0x1fd58b0": {0: 4}} parse_error, is_sat, assignment, stats_data = STPStatsAwareParser(STPParser()).parse(stdout, stderr) assert parse_error is None, parse_error assert is_sat == True, is_sat common.assert_sat_assignments(assignment_expected, assignment) assert stats_data.nof_sat_calls == 10, stats_data assert stats_data.sat_time == 0.74, stats_data assert stats_data.time == 7.07, stats_data
def callbackOK(s, solver_result): assert not ev_ok.is_set() assert solver_result.is_sat common.assert_sat_assignments(solver_result.assignment, common.SAT_QUERY_ASSIGNMENT_SMT) ev_ok.set()
def test_sat_query(self): solver = ProcessSolver(STPParser(), "STP", common.STP_PATH, ["--SMTLIB2", "-p"]) uniq_query = team_solver.interfaces.interfaces.UniqueQuery(123, common.SAT_QUERY_SMT) solver_result = solver.solve(uniq_query) assert solver_result.is_sat common.assert_sat_assignments(solver_result.assignment, common.SAT_QUERY_ASSIGNMENT_SMT)
def test_boolector_stats_aware_parser(self): stdout = """ [btrmain] Boolector 1.4.1 376e6b097a9a63af246339a13dd0e61b8774db77 [btrmain] gcc (Ubuntu/Linaro 4.4.4-14ubuntu5) 4.4.5 [btrmain] -Wall -O3 -DNDEBUG -DBTOR_USE_PRECOSAT [btrmain] released Fri Mar 4 19:52:48 CET 2011 [btrmain] compiled Wed Jun 8 21:43:14 CEST 2011 [btrmain] gcc (Ubuntu/Linaro 4.4.4-14ubuntu5) 4.4.5 [btorsmt] initializing SMT parser [btorsmt] parsing SMT file /home/art_haali/data-backups/coreutils-2h-top-100-smt1/dd-lazy-merge-query3500.smt.smt1 [btorsmt] read 188979 bytes [btorsmt] found 2878 symbols [btorsmt] generated 38210 nodes [btorsmt] extracting expressions [btorsmt] benchmark B_ [btorsmt] found 843 constants [btorsat] PicoSAT Version 936 [btrmain] parsed 7 inputs and 2 outputs [btrmain] logic QF_AUFBV [btrmain] status unknown [btrmain] generating SAT instance [btrmain] added 1 outputs (50%) [btrmain] added 2 outputs (100%) [btorexp] calling SAT [btorsat] refinement iteration 10 [btorsat] refinement iteration 20 [btorsat] refinement iteration 30 [btorsat] refinement iteration 40 [btorsat] refinement iteration 50 [btorsat] refinement iteration 60 [btorsat] refinement iteration 70 [btorsat] refinement iteration 80 [btorsat] refinement iteration 90 [btorsat] refinement iteration 100 [btorsat] refinement iteration 110 [btorsat] refinement iteration 120 [btorsat] refinement iteration 130 [btorsat] refinement iteration 140 [btorsat] refinement iteration 150 [btorsat] refinement iteration 160 [btorsat] refinement iteration 170 [btorsat] refinement iteration 180 [btorsat] refinement iteration 190 [btorsat] refinement iteration 200 [btorsat] refinement iteration 210 [btorsat] refinement iteration 220 [btorsat] refinement iteration 230 sat arr3_arg2_0x20155d0[1] 0 [picosat] 1453 calls <------------nof_sat_calls [picosat] 1 iterations [picosat] 0 restarts [picosat] 35 conflicts [picosat] 0 adc conflicts [picosat] 2658522 decisions [picosat] 35381 fixed variables [picosat] 37909 learned literals [picosat] 13.6% deleted literals [picosat] 38687207 propagations [picosat] 59.0% variables used [picosat] 25.6 seconds in library <--------------sat_time [picosat] 1.5 megaprops/second [picosat] 45 simplifications [picosat] 0 reductions [picosat] 1.1 MB recycled [picosat] 15.8 MB maximally allocated [btorexp] 0/9/8/8 constraints 0/0/0/8 22.4 MB [btorexp] variable substitutions: 0 [btorexp] array substitutions: 0 [btorexp] embedded constraint substitutions: 2 [btorexp] assumptions: 0 [btorexp] [btorexp] lemmas on demand statistics: [btorexp] LOD refinements: 234 [btorexp] array axiom 1 conflicts: 155 [btorexp] array axiom 2 conflicts: 79 [btorexp] average lemma size: 17.3 [btorexp] average linking clause size: 26.2 [btorexp] [btorexp] linear constraint equations: 0 [btorexp] add normalizations: 0 [btorexp] mul normalizations: 0 [btorexp] read over write propagations during construction: 990 [btorexp] synthesis assignment inconsistencies: 2 [btorsat] resetting PicoSAT [btrmain] 28.5 seconds <----------------time [btrmain] 22.9 MB """ assignment_expected = {"arr3_arg2_0x20155d0": {1: 0}} parse_error, is_sat, assignment, stats_data = BoolectorStatsAwareParser(BoolectorParser()).parse(stdout, "") assert parse_error is None, parse_error assert is_sat == True, is_sat common.assert_sat_assignments(assignment_expected, assignment) assert stats_data.nof_sat_calls == 1453, stats_data assert stats_data.sat_time == 25.6, stats_data assert stats_data.time == 28.5, stats_data
def _do_test(self, parser, reply_to_parse): parse_error, is_sat, assignment, stats_data = parser.parse(reply_to_parse, None) assert parse_error is None, parse_error assert is_sat assert stats_data is None common.assert_sat_assignments(assignment_expected, assignment)