#include "test.h" #include void app_perror(const char *msg, pj_status_t rc) { char errbuf[256]; PJ_CHECK_STACK(); pj_strerror(rc, errbuf, sizeof(errbuf)); PJ_LOG(1,("test", "%s: [pj_status_t=%d] %s", msg, rc, errbuf)); } #define DO_TEST(test) do { \ PJ_LOG(3, ("test", "Running %s...", #test)); \ rc = test; \ PJ_LOG(3, ("test", \ "%s(%d)", \ (char*)(rc ? "..ERROR" : "..success"), rc)); \ if (rc!=0) goto on_return; \ } while (0) pj_pool_factory *mem; static int test_inner(void) { pj_caching_pool caching_pool; int rc = 0; mem = &caching_pool.factory; pj_log_set_level(3); pj_log_set_decor(PJ_LOG_HAS_NEWLINE | PJ_LOG_HAS_TIME | PJ_LOG_HAS_MICRO_SEC); rc = pj_init(); if (rc != 0) { app_perror("pj_init() error!!", rc); return rc; } pj_dump_config(); pj_caching_pool_init( &caching_pool, &pj_pool_factory_default_policy, 0 ); DO_TEST(xml_test()); on_return: return rc; } int test_main(void) { PJ_USE_EXCEPTION; PJ_TRY { return test_inner(); } PJ_DEFAULT { int id = PJ_GET_EXCEPTION(); PJ_LOG(3,("test", "FATAL: unhandled exception id %d (%s)", id, pj_exception_id_name(id))); } PJ_END; return -1; }