static void test_query (QofQuery *q) { SCM scm_q; QofQuery *q2; scm_q = gnc_query2scm (q); q2 = gnc_scm2query (scm_q); if (!qof_query_equal (q, q2)) { failure ("queries don't match"); scm_display (scm_q, SCM_UNDEFINED); scm_newline (SCM_UNDEFINED); scm_q = gnc_query2scm (q2); scm_display (scm_q, SCM_UNDEFINED); scm_newline (SCM_UNDEFINED); exit (1); } else { success ("queries match"); } qof_query_destroy (q2); }
static void test_query (Query *q, SCM val2str) { SCM scm_q; SCM str_q; SCM res_q; SCM args = SCM_EOL; Query *q2; gchar *str2 = NULL; scm_q = gnc_query2scm (q); args = scm_cons (scm_q, SCM_EOL); str_q = scm_apply (val2str, args, SCM_EOL); args = scm_cons (scm_from_utf8_string ("'"), scm_cons (str_q, SCM_EOL)); str_q = scm_string_append (args); str2 = gnc_scm_to_utf8_string (str_q); if (str2) { res_q = scm_c_eval_string (str2); } else { res_q = SCM_BOOL_F; } q2 = gnc_scm2query (res_q); if (!qof_query_equal (q, q2)) { failure ("queries don't match"); fprintf (stderr, "%s\n\n", str2 ? str2 : "(null)"); scm_q = gnc_query2scm (q2); scm_display (scm_q, SCM_UNDEFINED); scm_newline (SCM_UNDEFINED); g_free(str2); exit (1); } else { success ("queries match"); } g_free(str2); if (q2) qof_query_destroy (q2); }
static void test_query (Query *q, SCM val2str) { SCM scm_q; SCM str_q; SCM args = SCM_EOL; scm_q = gnc_query2scm (q); args = scm_cons (scm_q, SCM_EOL); str_q = scm_apply (val2str, args, SCM_EOL); args = scm_cons (scm_makfrom0str ("'"), scm_cons (str_q, SCM_EOL)); str_q = scm_string_append (args); scm_display (str_q, SCM_UNDEFINED); scm_newline (SCM_UNDEFINED); scm_newline (SCM_UNDEFINED); }