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