Blame TODO

Packit 0b5880
TODO
Packit 0b5880
====
Packit 0b5880
Packit 0b5880
The following are considered bugs in Check.  If you have a fix, please
Packit 0b5880
post it in the patch tracker on http://sourceforge.net/projects/check
Packit 0b5880
or send it to <check-devel at lists dot sourceforge dot net>.  Bug
Packit 0b5880
fixing is considered more important than feature requests at this
Packit 0b5880
point. Please check the Sourceforge trackers before submitting.
Packit 0b5880
Packit 0b5880
Documentation
Packit 0b5880
=============
Packit 0b5880
Packit 0b5880
[0.9.4] * Convert to info format and update.
Packit 0b5880
[0.9.4] * Remove old SGML documentation.
Packit 0b5880
[0.9.4] * Fix building of documentation that relies on diff
Packit 0b5880
[0.9.4] * Add html generation of Texinfo docs. 
Packit 0b5880
[0.9.4] * Create initial and final versions of money example.
Packit 0b5880
[0.9.4] * Update tutorial so that it works with modern tools.
Packit 0b5880
[0.9.5] * Clarify looping tests and give example of usage.
Packit 0b5880
[     ] * Document pkg-config usage, note that old macro usage is not recommended.
Packit 0b5880
[0.9.9] * Document selective running of tests with CK_RUN_SUITE and CK_RUN_CASE
Packit 0b5880
          environment variables.
Packit 0b5880
Packit 0b5880
Interface
Packit 0b5880
=========
Packit 0b5880
Packit 0b5880
[     ] * Change check not to clobber things in the global namespace.
Packit 0b5880
          Prepend CHECK_ to all constants, check_ to all exported symbols, 
Packit 0b5880
  	  and _check to all internal functions.  Currently fail() is
Packit 0b5880
	  causing a problem.  Deprecate the old API in a nice way.
Packit 0b5880
Packit 0b5880
Build issues:
Packit 0b5880
=============
Packit 0b5880
Packit 0b5880
[     ] * Add AC_PROG_CC_C99 in configure.ac when autoconf2.60b is
Packit 0b5880
          commonly availabe. Add checks in src/check.h.in for macro
Packit 0b5880
          varargs support.
Packit 0b5880
[0.9.4] * Convert Check to use Libtool 
Packit 0b5880
[     ] * Figure out if we need stamp-h.in or not
Packit 0b5880
[     ] * use AC_CONFIG_MACRO_DIR([m4]) and create an m4/ dir for check.m4
Packit 0b5880
	    aclocaldir = $(datadir)/aclocal
Packit 0b5880
	    aclocal_DATA = mymacro.m4 myothermacro.m4
Packit 0b5880
	    ACLOCAL_AMFLAGS = -I m4  # put in top-level Makefile.am
Packit 0b5880
[     ] * Fix overriding CFLAGS in configure.ac
Packit 0b5880
[     ] * Use AC_DEFINE to define version number stuff?
Packit 0b5880
[     ] * Change MICRO to ALPHA? probably not
Packit 0b5880
[     ] * Add std-options to AM_INIT_AUTOMAKE
Packit 0b5880
[     ] * Investigate subdir-objects option to AM_INIT_AUTOMAKE
Packit 0b5880
[     ] * Use filename-length-max=99 in AM_INIT_AUTOMAKE
Packit 0b5880
[0.9.4] * Make sure libcheck.(l)a works as a dependency, don't call $(MAKE)
Packit 0b5880
[0.9.4] * Build tests/ dirs after everything else
Packit 0b5880
[0.9.4] * Fix AM_PATH_CHECK by deprecating it; use pkg-config instead
Packit 0b5880
[0.9.6] * make Check pass its own unit tests: make (dist)check can fail.
Packit 0b5880
[     ] * Make the docs pass 'make distcheck'
Packit 0b5880
[     ] * use stricter CFLAGS for compiling Check
Packit 0b5880
[     ] * use ax_cflags_gcc_option to add to CFLAGS to Check
Packit 0b5880
[     ] * prune unused checks from configure.ac
Packit 0b5880
Packit 0b5880
Check source code:
Packit 0b5880
============
Packit 0b5880
Packit 0b5880
[     ] * Eliminate abbreviations like nf for number_failed
Packit 0b5880
[0.9.13] * Run indent on everything, make sure it works well.
Packit 0b5880
[     ] * Fix START_TEST/END_TEST to look like valid C code.
Packit 0b5880
[     ] * Document things way more.
Packit 0b5880
[     ] * Create check.h automatically using makeheaders.c (not sure)
Packit 0b5880
[     ] * Eliminate check_ prefix from files in src/ ... not needed
Packit 0b5880
Packit 0b5880
Internal Check tests
Packit 0b5880
======================
Packit 0b5880
Packit 0b5880
[0.9.3] * Use gcov to test and expand coverage of existing unit tests
Packit 0b5880
[     ] * Increase tests for more non-public modules
Packit 0b5880
[0.8.0] * Refactor to allow better unit testing of printing functionality.
Packit 0b5880
[     ] * Document things way more.
Packit 0b5880
[     ] * Clarify what all the different tests mean, whether they are
Packit 0b5880
          meant to fail or not --- setting all CK_SILENT to CK_VERBOSE
Packit 0b5880
          makes it seem like there are lots of errors being produced!
Packit 0b5880
[     ] * Fix timeout tests.  Currently, on some processors, a test that
Packit 0b5880
          asserts no timeout within 2 seconds fails unless the default
Packit 0b5880
          timeout is set to 4 or more seconds.  A higher resolution 
Packit 0b5880
          might help, and there could also be issues with multiple
Packit 0b5880
          processes on SMP machines.
Packit 0b5880
Packit 0b5880
Packaging
Packit 0b5880
=========
Packit 0b5880
Packit 0b5880
[0.7.2] * Automate RPM production
Packit 0b5880
[0.7.2] * Debian packaging 
Packit 0b5880
[0.9.2] * Get Check into Debian Sid
Packit 0b5880
[0.9.4] * Eliminate .deb and .rpm packaging for vendors --- not necessary
Packit 0b5880
Packit 0b5880
Packit 0b5880
Packit 0b5880
The following enhancements are being considered for Check.  Please
Packit 0b5880
send an email to <check-devel at lists dot sourceforge dot net> if you
Packit 0b5880
would like to assist in any of these, or if you would like to suggest
Packit 0b5880
additional enhancements.  Also please check the various trackers at
Packit 0b5880
the Check project website.
Packit 0b5880
Packit 0b5880
Printing and Logging
Packit 0b5880
====================
Packit 0b5880
Packit 0b5880
[     ] * Allow unit test output (stdout and stderr) to be captured and logged
Packit 0b5880
[0.9.1] * Add XML as option for test output
Packit 0b5880
[     ] * Open the API for printing/logging customization
Packit 0b5880
[     ] * JUnit-style UI?
Packit 0b5880
    
Packit 0b5880
Unit test writing
Packit 0b5880
=================
Packit 0b5880
Packit 0b5880
[0.8.0] * Allow fail and friends to be used within fixture
Packit 0b5880
          setup/teardown functions
Packit 0b5880
[0.8.0] * Allow forkless running of suites, to allow debugging
Packit 0b5880
[0.9.2] * Allow unit tests that expect signals
Packit 0b5880
[     ] * Allow unit tests to write to the log
Packit 0b5880
[     ] * Allow unit tests that expect output (see stdout logging above) (but
Packit 0b5880
          maybe perl/sh/expect/dejagnu are better tools)
Packit 0b5880
[     ] * Autoproduce unit testing framework from header files
Packit 0b5880
[     ] * Count the number of START_TEST macros and check that each function
Packit 0b5880
          is added to some suite; issue a warning message otherwise.  Maybe the
Packit 0b5880
	  best way to do this is to put each function onto a list or
Packit 0b5880
          table as its defined, and then remove it once its added
Packit 0b5880
          somewhere.  Then, when finished, print out what remains on the list /
Packit 0b5880
          in the table.  This might require some ugly macro hackery...
Packit 0b5880
[     ] * Better macro for START_TEST.  It would be nice to pass in
Packit 0b5880
	  three separate arguments, something like: 
Packit 0b5880
            1) a numeric ID for the tests function
Packit 0b5880
            2) the exact name of the function being tested
Packit 0b5880
            3) the name of the feature in (2) being tested for                       
Packit 0b5880
[     ] * Find a way to create setup/teardown macros such that global
Packit 0b5880
	  variables aren't necessary, and they're really just blocks
Packit 0b5880
	  that get added at the beginning and ending of tests.
Packit 0b5880
[     ] * Some mechanism to profile execution times, and assert that the time
Packit 0b5880
	  a test takes to complete scales according to some big-O notation.
Packit 0b5880
[     ] * Fork entire test cases, and then fork individual tests from
Packit 0b5880
          within each test case, so that unchecked fixtures can in
Packit 0b5880
          fact do unsafe things without bringing down the entire test
Packit 0b5880
          program.
Packit 0b5880
    
Packit 0b5880
Check Internals
Packit 0b5880
===============
Packit 0b5880
Packit 0b5880
[0.8.0] * Implement message passing between unit test and test
Packit 0b5880
          programs using pipes, rather than SysV IPC, to allow support
Packit 0b5880
          under cygwin.
Packit 0b5880
[     ] * Abstract the forking and message passing implementation to
Packit 0b5880
          allow Win32 compatibility.
Packit 0b5880
[0.9.12] * Incorporate existing Win32 support as mentioned here:
Packit 0b5880
          http://opendarwin.org/pipermail/cvs-libfoundation-all/2005-March/000177.html
Packit 0b5880
[0.9.11] * Get Cygwin to work, with forking
Packit 0b5880
[0.9.11] * Get MinGW to work, even without forking
Packit 0b5880
[0.9.12] * Get MSVC to work, even without forking