test_big.c 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. /*
  2. * test_big.c
  3. *
  4. * Test for SourceForge bug #3022803 - problem with variable argument lists
  5. * for strings longer than 1024 characters.
  6. *
  7. * This test logs into /dev/null.
  8. */
  9. #ifdef HAVE_CONFIG_H
  10. #include "config.h"
  11. #endif
  12. #include <stdlib.h>
  13. #include <log4c.h>
  14. #include <sd/test.h>
  15. static log4c_category_t* root = NULL;
  16. static log4c_appender_t* appender = NULL;
  17. static int test_big(sd_test_t* a_test, int argc, char *argv[]) {
  18. char *buf;
  19. size_t i;
  20. buf = malloc(1500);
  21. for (i = 0; i < 1500-1; i++) buf[i] = 'A';
  22. buf[i] = 0;
  23. log4c_category_log(root, LOG4C_PRIORITY_INFO, "%s", buf);
  24. free(buf);
  25. return 1;
  26. }
  27. int main(int argc, char *argv[]) {
  28. sd_test_t *t;
  29. int ret;
  30. FILE *f;
  31. t = sd_test_new(argc, argv);
  32. log4c_init();
  33. appender = log4c_appender_get("stream");
  34. f = fopen("/dev/null", "w+");
  35. log4c_appender_set_udata(appender, f);
  36. root = log4c_category_get("root");
  37. log4c_category_set_appender(root, appender);
  38. log4c_category_set_priority(root, LOG4C_PRIORITY_TRACE);
  39. sd_test_add(t, test_big);
  40. ret = sd_test_run(t, argc, argv);
  41. log4c_appender_set_udata(appender, NULL);
  42. fclose(f);
  43. sd_test_delete(t);
  44. log4c_fini();
  45. return ! ret;
  46. }