TODO 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. TODO
  2. ====
  3. The following are considered bugs in Check. If you have a fix, please
  4. post it as a pull request on GitHub at
  5. https://github.com/libcheck/check/pulls
  6. Bug fixing is considered more important than feature requests at this
  7. point. Please check the GitHub issue tracker before submitting.
  8. Documentation
  9. =============
  10. [0.9.4] * Convert to info format and update.
  11. [0.9.4] * Remove old SGML documentation.
  12. [0.9.4] * Fix building of documentation that relies on diff
  13. [0.9.4] * Add html generation of Texinfo docs.
  14. [0.9.4] * Create initial and final versions of money example.
  15. [0.9.4] * Update tutorial so that it works with modern tools.
  16. [0.9.5] * Clarify looping tests and give example of usage.
  17. [ ] * Document pkg-config usage, note that old macro usage is not recommended.
  18. [0.9.9] * Document selective running of tests with CK_RUN_SUITE and CK_RUN_CASE
  19. environment variables.
  20. [ ] * Update tutorial to match with the API changes: TTest* instead of TFun.
  21. Interface
  22. =========
  23. [ ] * Change check not to clobber things in the global namespace.
  24. Prepend CHECK_ to all constants, check_ to all exported symbols,
  25. and _check to all internal functions. Currently fail() is
  26. causing a problem. Deprecate the old API in a nice way.
  27. Build issues:
  28. =============
  29. [ ] * Add AC_PROG_CC_C99 in configure.ac when autoconf2.60b is
  30. commonly availabe. Add checks in src/check.h.in for macro
  31. varargs support.
  32. [0.9.4] * Convert Check to use Libtool
  33. [ ] * Figure out if we need stamp-h.in or not
  34. [ ] * use AC_CONFIG_MACRO_DIR([m4]) and create an m4/ dir for check.m4
  35. aclocaldir = $(datadir)/aclocal
  36. aclocal_DATA = mymacro.m4 myothermacro.m4
  37. ACLOCAL_AMFLAGS = -I m4 # put in top-level Makefile.am
  38. [ ] * Fix overriding CFLAGS in configure.ac
  39. [ ] * Use AC_DEFINE to define version number stuff?
  40. [ ] * Change MICRO to ALPHA? probably not
  41. [ ] * Add std-options to AM_INIT_AUTOMAKE
  42. [ ] * Investigate subdir-objects option to AM_INIT_AUTOMAKE
  43. [ ] * Use filename-length-max=99 in AM_INIT_AUTOMAKE
  44. [0.9.4] * Make sure libcheck.(l)a works as a dependency, don't call $(MAKE)
  45. [0.9.4] * Build tests/ dirs after everything else
  46. [0.9.4] * Fix AM_PATH_CHECK by deprecating it; use pkg-config instead
  47. [0.9.6] * make Check pass its own unit tests: make (dist)check can fail.
  48. [ ] * Make the docs pass 'make distcheck'
  49. [ ] * use stricter CFLAGS for compiling Check
  50. [ ] * use ax_cflags_gcc_option to add to CFLAGS to Check
  51. [ ] * prune unused checks from configure.ac
  52. [ ] * Add option BUILD_DOCUMENTATION to CMake (Github #217).
  53. [ ] * Missing function check in CMake creates def HAVE_FOO=0.
  54. There should be no HAVE_FOO (Github #195).
  55. [ ] * CMake and Autotools should check if compiler supports __attribute__ ((format (a, b, c)))
  56. to decide if CK_ATTRIBUTE_FORMAT can be defined
  57. https://www.gnu.org/software/autoconf-archive/ax_gcc_func_attribute.html
  58. Check source code:
  59. ============
  60. [0.13.0] * Eliminate abbreviations like nf for number_failed
  61. [0.9.13] * Run indent on everything, make sure it works well.
  62. [0.13.0] * Fix START_TEST/END_TEST to look like valid C code.
  63. [ ] * Document things way more.
  64. [ ] * Create check.h automatically using makeheaders.c (not sure)
  65. [ ] * Eliminate check_ prefix from files in src/ ... not needed
  66. Internal Check tests
  67. ======================
  68. [0.9.3] * Use gcov to test and expand coverage of existing unit tests
  69. [ ] * Increase tests for more non-public modules
  70. [0.8.0] * Refactor to allow better unit testing of printing functionality.
  71. [ ] * Document things way more.
  72. [ ] * Clarify what all the different tests mean, whether they are
  73. meant to fail or not --- setting all CK_SILENT to CK_VERBOSE
  74. makes it seem like there are lots of errors being produced!
  75. [ ] * Fix timeout tests. Currently, on some processors, a test that
  76. asserts no timeout within 2 seconds fails unless the default
  77. timeout is set to 4 or more seconds. A higher resolution
  78. might help, and there could also be issues with multiple
  79. processes on SMP machines.
  80. Packaging
  81. =========
  82. [0.7.2] * Automate RPM production
  83. [0.7.2] * Debian packaging
  84. [0.9.2] * Get Check into Debian Sid
  85. [0.9.4] * Eliminate .deb and .rpm packaging for vendors --- not necessary
  86. Website
  87. =======
  88. [ ] * Fix: NEWS tab causes download (Github #1)
  89. The following enhancements are being considered for Check. Please
  90. send an email to <check-devel at lists dot sourceforge dot net> if you
  91. would like to assist in any of these, or if you would like to suggest
  92. additional enhancements. Also please check the various trackers at
  93. the Check project website.
  94. Printing and Logging
  95. ====================
  96. [ ] * Allow unit test output (stdout and stderr) to be captured and logged
  97. [0.9.1] * Add XML as option for test output
  98. [ ] * Open the API for printing/logging customization
  99. [ ] * JUnit-style UI?
  100. Unit test writing
  101. =================
  102. [0.8.0] * Allow fail and friends to be used within fixture
  103. setup/teardown functions
  104. [0.8.0] * Allow forkless running of suites, to allow debugging
  105. [0.9.2] * Allow unit tests that expect signals
  106. [ ] * Allow unit tests to write to the log
  107. [ ] * Allow unit tests that expect output (see stdout logging above) (but
  108. maybe perl/sh/expect/dejagnu are better tools)
  109. [ ] * Autoproduce unit testing framework from header files
  110. [ ] * Count the number of START_TEST macros and check that each function
  111. is added to some suite; issue a warning message otherwise. Maybe the
  112. best way to do this is to put each function onto a list or
  113. table as its defined, and then remove it once its added
  114. somewhere. Then, when finished, print out what remains on the list /
  115. in the table. This might require some ugly macro hackery...
  116. [ ] * Better macro for START_TEST. It would be nice to pass in
  117. three separate arguments, something like:
  118. 1) a numeric ID for the tests function
  119. 2) the exact name of the function being tested
  120. 3) the name of the feature in (2) being tested for
  121. [ ] * Find a way to create setup/teardown macros such that global
  122. variables aren't necessary, and they're really just blocks
  123. that get added at the beginning and ending of tests.
  124. [ ] * Some mechanism to profile execution times, and assert that the time
  125. a test takes to complete scales according to some big-O notation.
  126. [ ] * Fork entire test cases, and then fork individual tests from
  127. within each test case, so that unchecked fixtures can in
  128. fact do unsafe things without bringing down the entire test
  129. program.
  130. Check Internals
  131. ===============
  132. [0.8.0] * Implement message passing between unit test and test
  133. programs using pipes, rather than SysV IPC, to allow support
  134. under cygwin.
  135. [ ] * Abstract the forking and message passing implementation to
  136. allow Win32 compatibility.
  137. [0.9.12] * Incorporate existing Win32 support as mentioned here:
  138. http://opendarwin.org/pipermail/cvs-libfoundation-all/2005-March/000177.html
  139. [0.9.11] * Get Cygwin to work, with forking
  140. [0.9.11] * Get MinGW to work, even without forking
  141. [0.9.12] * Get MSVC to work, even without forking