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