Nick Mathewson
a671a1c9d6
Tweak tor_gmtime_r test.
...
On openbsd64, I'm seeing a warning that the log isn't saying what
I'd expect, but I'm not seeing what the answer actually _is_ here.
2016-09-11 17:13:51 -04:00
Nick Mathewson
63e34e9e49
Reinstate a couple of teardown_capture_of_logs that I missed
...
Patch from rubiate. See #19999
2016-09-08 19:49:21 -04:00
Nick Mathewson
deb294ff53
Simplify log_test_helpers interface
...
Previously, you needed to store the previous log severity in a local
variable, and it wasn't clear if you were allowed to call these
functions more than once.
2016-09-08 15:03:11 -04:00
Nick Mathewson
f9cb9d8990
more consistent use of expect_log_msg_containing
2016-09-08 11:16:09 -04:00
Nick Mathewson
a49fee1c29
Capture and enforce bug warnings in util/time test
2016-09-07 12:15:46 -04:00
Nick Mathewson
3823d0aa7d
Capture and detect the BUG() warnings in test_util_parse_integer.
2016-09-06 21:01:52 -04:00
Nick Mathewson
2a4a815f58
Fix a unit test bug for passing arguments to tor_parse_ulong.
...
We wanted to make sure -50 was a bad input, but instead we were
passing a 'min' that was greater than 'max'.
2016-09-06 20:29:55 -04:00
Nick Mathewson
7ba47ca1fd
Split tor_parse_{some_int} testing into separate fn. Code movement only.
2016-09-06 20:25:54 -04:00
Andrea Shepard
341a159ab4
Appease make check-spaces
2016-09-05 17:47:39 +00:00
Nick Mathewson
cfc62e2374
Initialize monotonic timer code before using it in the tests
2016-08-31 14:34:49 -04:00
Nick Mathewson
d4f05dcd0e
Detect and suppress bug message from zlib compression bomb test
2016-08-31 14:30:34 -04:00
Nick Mathewson
d5614b2102
Use setup_full_capture_of_logs() where appropriate.
2016-08-31 12:53:18 -04:00
Nick Mathewson
9fe6fea1cc
Fix a huge pile of -Wshadow warnings.
...
These appeared on some of the Jenkins platforms. Apparently some
GCCs care when you shadow globals, and some don't.
2016-07-28 10:22:10 -04:00
Nick Mathewson
a8676b1ede
Merge branch 'bug18902_squashed'
2016-07-28 06:59:03 -04:00
Nick Mathewson
4757303873
Fix all -Wshadow warnings on Linux
...
This is a partial fix for 18902.
2016-07-28 06:58:44 -04:00
Nick Mathewson
09c25697d7
Add a function to simplify a fraction.
...
Apparently remembering euclid's algorithm does pay off sooner or later.
2016-07-26 11:23:34 -04:00
Nick Mathewson
90ca446048
Remove windows debugging prints: it was an integer overflow hitting ftrapv
2016-07-26 11:07:53 -04:00
Nick Mathewson
e77c23e455
Redux: Temporarily add windows verbosity to track down jenkins failures
2016-07-26 09:24:53 -04:00
Nick Mathewson
abcb8ce25d
Unit tests for monotonic time
2016-07-19 11:40:47 +02:00
Nick Mathewson
08cc0ef832
Capture the LOG_ERR messages in our tests that had logged errors.
...
(It's confusing for the test to write an expected error to stdout,
and then tell the user "OK".)
2016-07-06 13:01:08 -04:00
teor (Tim Wilson-Brown)
69535f1284
Add tv_udiff and tv_mdiff unit tests with negative values
2016-06-30 09:29:18 +10:00
teor (Tim Wilson-Brown)
d36a0c4d22
Add more unit tests for tv_udiff and tv_mdiff
2016-06-29 17:23:42 +10:00
Nick Mathewson
603cb712ef
Small coverage improvements on compat.c
2016-06-20 11:03:13 -04:00
U+039b
58e6a6aaeb
Fix #19063 : Add check in utility macro
2016-06-19 12:34:49 -04:00
Nick Mathewson
81cfd5c9a1
Merge branch 'zlib_coverage_squashed'
2016-06-19 12:20:38 -04:00
Nick Mathewson
d937b86699
Unindent block
2016-06-19 12:20:24 -04:00
Nick Mathewson
808015316a
Remove support for zlib <= 1.1
...
zlib 1.2 came out in 2003; earlier versions should be dead by now.
Our workaround code was only preventing us from using the gzip
encoding (if we decide to do so), and having some dead code linger
around in torgzip.c
2016-06-19 12:20:24 -04:00
Nick Mathewson
a418904962
Coverage on parse_config_line_from_str_verbose.
2016-06-16 15:52:19 -04:00
Nick Mathewson
c9ea9de806
Remove parse_config_line_from_str alias
...
All of our code just uses parse_config_line_from_str_verbose.
2016-06-16 15:40:56 -04:00
Nick Mathewson
128ab31c64
Mark code unreachable in unescape_string()
...
Also, add tests for it in case someday it does become reachable.
2016-06-16 15:36:08 -04:00
Nick Mathewson
dd73787190
On Windows, tv_sec is long, not time_t.
...
I'm not angry, Windows: just very disappointed.
2016-06-16 13:57:16 -04:00
Nick Mathewson
6ceb37971e
Try to fix memarea test on 32-bit systems
2016-06-16 11:59:51 -04:00
Nick Mathewson
79370914d1
tests for size_mul_check__()
...
it's important, and we should make sure we got it right.
2016-06-16 10:43:01 -04:00
Nick Mathewson
41cb26c169
Correct the rounding behavior on tv_mdiff.
...
Fix for bug 19428.
2016-06-16 10:16:04 -04:00
Nick Mathewson
f05a213fe1
Improve coverage on tv_udiff, and tv_mdiff.
...
I found some bugs in tv_mdiff; separate commit for that
2016-06-16 10:07:44 -04:00
Nick Mathewson
6dc2b605b8
Improve coverage on esc_for_log, esc_for_log_len
2016-06-16 09:58:53 -04:00
Nick Mathewson
f986e26850
Reach 100% line coverage on memarea.c
2016-06-16 09:37:44 -04:00
Nick Mathewson
d6b2af7a3a
Merge branch 'bug19180_easy_squashed'
2016-06-11 10:15:40 -04:00
Nick Mathewson
c3adbf755b
Resolve some warnings from OSX clang.
2016-06-11 10:11:53 -04:00
Nick Mathewson
493499a339
Add -Wfloat-conversion for GCC >= 4.9
...
This caught quite a few minor issues in our unit tests and elsewhere
in our code.
2016-06-11 10:11:52 -04:00
Nick Mathewson
f016213f7f
Unit tests for our zlib code to test and reject compression bombs.
2016-06-08 18:08:30 -04:00
Nick Mathewson
b458a81cc5
Merge branch 'maint-0.2.8'
2016-06-02 10:13:35 -04:00
Nick Mathewson
a32ca313c4
Merge branch 'maint-0.2.7' into maint-0.2.8
2016-06-02 10:12:56 -04:00
Nick Mathewson
5854b19816
Use tor_sscanf, not sscanf, in test_util.c.
...
Fixes the 0.2.7 case of bug #19213 , which prevented mingw64 from
working.
2016-06-02 10:11:29 -04:00
Nick Mathewson
f2205071f0
Remove round_int64_to_next_multiple_of: It is now unused.
2016-05-19 21:21:24 -04:00
Nick Mathewson
a7207329a8
Run tor_sscanf test in subprocess, in hopes of coaxing more info from jenkins
2016-05-12 13:37:05 -04:00
Nick Mathewson
d7a0382ba3
Don't call the system toupper or tolower.
...
Yes, we could cast to unsigned char first, but it's probably safest
to just use our own (in test_util), or remove bad-idea features that
we don't use (in readpassphrase.c).
Fixes 18728.
2016-04-05 23:22:28 -04:00
Nick Mathewson
32e8886314
One more test that didnt pass on windows. See #18665 .
2016-03-28 08:57:29 -04:00
Nick Mathewson
c0568a89d9
Whitespace fixes
2016-03-26 09:54:31 -04:00
Nick Mathewson
24c0c5ef19
Disable failing broken time format case for windows.
2016-03-25 22:00:20 -04:00
Nick Mathewson
4f86d75a4b
try to fix a test failure for sizeof(time_t)==4.
2016-03-24 12:26:46 -04:00
Nick Mathewson
6256c61d95
Merge branch 'timegm_overflow_squashed'
2016-03-24 10:18:00 -04:00
teor (Tim Wilson-Brown)
19fb86a2dc
Add a missing UL on a long in a unit test
2016-03-24 10:17:48 -04:00
teor (Tim Wilson-Brown)
b99bd3e7ff
Add unit tests with dates from 2035 to 2039
...
Platforms with 32-bit time_t sometimes give different results.
They don't always indicate failure on overflow, #18480 should
fix these.
2016-03-24 10:17:48 -04:00
Nick Mathewson
57699de005
Update the copyright year.
2016-02-27 18:48:19 +01:00
Nick Mathewson
1318c1611f
Another clang+_FORTIFY_SOURCE issue
...
There was a parenthesis issue in test_util that clang found
confusing. This part was only in master.
Closes issue 14821.
2016-02-23 14:06:45 -05:00
Nick Mathewson
16840e52e5
Make the touch_file unit test work around FS/system time sync issues
...
Sometimes you can call time() and then touch a file, and have the
second come out a little before the first. See #18025 for way more
information than you necessarily wanted.
2016-01-11 10:03:00 -05:00
Nick Mathewson
62bc4a199a
Fix #18012 harder.
2016-01-07 09:58:48 -08:00
Nick Mathewson
b5ce332958
Try to fix windows test build ( #18012 )
2016-01-07 09:25:44 -08:00
Nick Mathewson
7660471054
Unit tests for getpw* functions
2016-01-03 09:00:30 -08:00
Nick Mathewson
c941240f32
clean up the "skip this util test on windows" logic.
2016-01-03 08:47:14 -08:00
Nick Mathewson
8aa9ee73da
Add a test for touch_file
2016-01-03 08:37:14 -08:00
Nick Mathewson
35bfd782ea
Merge remote-tracking branch 'teor/bug17632-no-ipv4-no-localhost-squashed'
2015-11-19 11:19:31 -05:00
teor (Tim Wilson-Brown)
f19d6b81c8
Fixup #17638 : ignore EINVAL from FreeBSD jails without ::1
...
In my testing, an IPv6-only FreeBSD jail without ::1 returned EINVAL
from tor_ersatz_socketpair. Let's not fail the unit test because of
this - it would only ever use tor_socketpair() anyway.
2015-11-19 19:20:01 +11:00
teor (Tim Wilson-Brown)
53ec840bdf
Make tor_ersatz_socketpair work on IPv6-only systems
...
(But it won't work on some systems without IPv4/IPv6 localhost
(some BSD jails) by design, to avoid creating sockets on routable
IP addresses. However, those systems likely have the AF_UNIX socketpair,
which tor prefers.)
Fixes bug #17638 ; bugfix on a very early tor version,
earlier than 22dba27d8d
(23 Nov 2004) / svn:r2943.
Patch by "teor".
2015-11-19 19:08:22 +11:00
teor (Tim Wilson-Brown)
71fd66c866
Fix unit tests on systems without IPv4 or localhost addresses
...
Make unit tests pass on IPv6-only systems, and systems without
localhost addresses (like some FreeBSD jails).
Fixes:
* get_if_addrs_ifaddrs: systems without localhost
* get_if_addrs_ioctl: only works on IPv4 systems
* socket: check IPv4 and IPv6, skip on EPROTONOSUPPORT
* socketpair_ersatz: uses IPv4, skip on EPROTONOSUPPORT
Fixes bug #17632 ; bugfix on unit tests in 0.2.7.3-rc.
c464a36772
was a partial fix for this issue in #17255 ;
it was released in unit tests in 0.2.7.4-rc.
Patch by "teor".
2015-11-19 00:41:06 +11:00
teor (Tim Wilson-Brown)
a1ce111d32
Really Really Fixup 86eba14ac5
: Windows support, error return values
2015-11-19 00:13:58 +11:00
teor (Tim Wilson-Brown)
eed86892dd
Really Fixup 86eba14ac5
: error return values are negative
2015-11-18 23:54:26 +11:00
teor (Tim Wilson-Brown)
3351f69c75
Fixup 86eba14ac5
: add errno.h for EPROTONOSUPPORT
2015-11-18 23:47:12 +11:00
teor (Tim Wilson-Brown)
86eba14ac5
Fix unit tests on systems without IPv4 or localhost addresses
...
Make unit tests pass on IPv6-only systems, and systems without
localhost addresses (like some FreeBSD jails).
Fixes:
* get_if_addrs_ifaddrs: systems without localhost
* get_if_addrs_ioctl: only works on IPv4 systems
* socket: check IPv4 and IPv6, skip on EPROTONOSUPPORT
* socketpair_ersatz: uses IPv4, skip on EPROTONOSUPPORT
Fixes bug #17632 ; bugfix on unit tests in 0.2.7.3-rc.
c464a36772
was a partial fix for this issue in #17255 ;
it was released in unit tests in 0.2.7.4-rc.
Patch by "teor".
2015-11-18 23:25:21 +11:00
Nick Mathewson
d20a3d07e3
Merge branch 'karsten_bug13192_026_03_teor'
2015-11-12 11:40:58 -05:00
Nick Mathewson
1f7ba115a4
Rename cast_double_to_int64 to clamp_double_to_int64
2015-11-12 11:33:48 -05:00
Nick Mathewson
0694263b75
Make round_to_next_multiple_of always round upwards.
...
Yes, even if it has to return a non-multiple. This prevents us from
ever having a bug where we try to use it for allocation, and under-allocate.
2015-11-12 11:32:14 -05:00
Sebastian Hahn
5cf24ff3af
Fix a bunch of check-spaces complaints
2015-08-21 10:36:53 -04:00
Nick Mathewson
7f9a33a800
Bring the dimap tests up to 100%
2015-08-17 12:52:01 -04:00
Nick Mathewson
3fdc07df5b
Fix a 32-bit compilation warning
2015-08-11 09:07:27 -04:00
Nick Mathewson
50049df0d4
Add a compat function to check how much disk space is free.
...
Closes ticket 16734.
2015-08-05 14:01:49 -04:00
Yawning Angel
da6aa7bfa5
Allow a single trailing .
when validating FQDNs from SOCKS.
...
URI syntax (and DNS syntax) allows for a single trailing `.` to
explicitly distinguish between a relative and absolute
(fully-qualified) domain name. While this is redundant in that RFC 1928
DOMAINNAME addresses are *always* fully-qualified, certain clients
blindly pass the trailing `.` along in the request.
Fixes bug 16674; bugfix on 0.2.6.2-alpha.
2015-07-27 12:58:40 +00:00
Yawning Angel
3f336966a2
Work around nytimes.com's broken hostnames in our SOCKS checks.
...
RFC 952 is approximately 30 years old, and people are failing to comply,
by serving A records with '_' as part of the hostname. Since relaxing
the check is a QOL improvement for our userbase, relax the check to
allow such abominations as destinations, especially since there are
likely to be other similarly misconfigured domains out there.
2015-06-24 13:52:29 +00:00
teor
e0477de0e2
Remove undefined directive-in-macro in test_util_writepid
...
clang 3.7 complains that using a preprocessor directive inside
a macro invocation in test_util_writepid in test_util.c is undefined.
Fix on 79e85313aa
on 0.2.7.1-alpha.
2015-06-03 04:19:05 +10:00
Nick Mathewson
e086db7952
Merge branch 'writing_tests'
2015-05-07 15:29:56 -04:00
Nick Mathewson
79e85313aa
Write the outlines of a WritingTests.txt document
...
Also, add some sample tests to be examples.
2015-05-07 15:29:16 -04:00
teor
75fc4d5511
Remove test for strclear as it no longer exists in the codebase
2015-05-06 18:27:26 +10:00
teor
e60c612447
Use standard float.h header and resolve undefined left shift behaviour
2015-05-06 18:09:10 +10:00
teor
0fcd150959
Add unit tests for cast_double_to_int64().
2015-05-06 18:08:18 +10:00
Karsten Loesing
dad5eb7e1f
Tweak teor's and dgoulet's #13192 patches.
...
- Rewrite changes file.
- Avoid float comparison with == and use <= instead.
- Add teor's tor_llround(trunc(...)) back to silence clang warnings.
- Replace tt_assert() with tt_i64_op() and friends.
- Fix whitespace and a comment.
2015-05-06 18:05:16 +10:00
David Goulet
dcf0f808c0
Test: change INT64_MAX to DBL_MAX in laplace test
...
Signed-off-by: David Goulet <dgoulet@ev0ke.net>
2015-05-06 18:05:15 +10:00
David Goulet
aecc354ee7
Test: remove edge cases that assert in laplace test
...
Signed-off-by: David Goulet <dgoulet@ev0ke.net>
2015-05-06 18:05:15 +10:00
teor
09cac24373
Handle edge cases in the round_*_to_next_multiple_of functions
...
Consistently check for overflow in round_*_to_next_multiple_of.
Check all round_*_to_next_multiple_of functions with expected values.
Check all round_*_to_next_multiple_of functions with maximal values.
Related to HS stats in #13192 .
2015-05-06 18:05:15 +10:00
teor
6d54bdbdcf
Handle edge cases in laplace functions
...
Avoid division by zero.
Avoid taking the log of zero.
Silence clang type conversion warnings using round and trunc.
The existing values returned by the laplace functions do not change.
Add tests for laplace edge cases.
These changes pass the existing unit tests without modification.
Related to HS stats in #13192 .
2015-05-06 18:05:15 +10:00
Nick Mathewson
0dde4d6fa2
Merge remote-tracking branch 'yawning/bug14922'
2015-02-25 08:56:34 -05:00
cypherpunks
5246e8f992
Remove lingering mempool code
2015-02-23 11:19:31 -05:00
Yawning Angel
cbd26157c5
Remove tor_strclear(), and replace previous calls with memwipe().
2015-02-17 18:53:33 +00:00
Nick Mathewson
6f331645c7
Remove mempools and buf freelists
...
They have been off-by-default since 0.2.5 and nobody has complained. :)
Also remove the buf_shrink() function, which hasn't done anything
since we first stopped using contiguous memory to store buffers.
Closes ticket 14848.
2015-02-11 09:03:50 -05:00
Nick Mathewson
7322de15dc
Split the slow unit tests into their own binary
...
This can run in parallel with the faster ones and the other tests.
2015-01-23 11:15:53 -05:00
Nick Mathewson
23fc1691b6
Merge branch 'better_workqueue_v3_squashed'
2015-01-21 14:47:16 -05:00
George Kadianakis
bb56fd1f8f
unittests: use tt_i64_op() instead of tt_int_op() in laplace tests.
...
Do this in even more places to try to fix the build.
2015-01-15 11:08:22 -05:00
George Kadianakis
354ddf8712
unittests: use tt_i64_op() instead of tt_int_op() in laplace tests.
2015-01-15 15:14:33 +00:00
George Kadianakis
25e7821bb1
unittests: Change some tt_assert()s to tt_int_op()s.
2015-01-15 14:43:58 +00:00
George Kadianakis
45bc5a0743
Restrict sample values of the Laplace distribution to int64_t.
...
This helps avoid undefined behavior from casting big double values to
int64_t. Fixes #14090 .
2015-01-15 14:43:58 +00:00
Nick Mathewson
7a63005220
Basic unit test for condition variables.
2015-01-14 11:17:09 -05:00
Nick Mathewson
74b782645a
Move thread tests into their own module
2015-01-14 11:09:47 -05:00
Nick Mathewson
6f171003ce
fix new mingw64 compilation warnings
2015-01-08 10:44:30 -05:00
Nick Mathewson
cb54cd6745
Merge branch 'bug9286_v3_squashed'
2015-01-07 10:06:50 -05:00
Nick Mathewson
7984fc1531
Stop accepting milliseconds in various directory contexts
...
Have clients and authorities both have new behavior, since the
fix for bug 11243 has gone in. But make clients still accept
accept old bogus HSDir descriptors, to avoid fingerprinting trickery.
Fixes bug 9286.
2015-01-07 10:05:55 -05:00
Nick Mathewson
cf2ac8e255
Merge remote-tracking branch 'public/feature11791'
2015-01-06 13:52:54 -05:00
Nick Mathewson
f54e54b0b4
Bump copyright dates to 2015, in case someday this matters.
2015-01-02 14:27:39 -05:00
Nick Mathewson
3d85df9569
LLONG_MIN => INT64_MIN.
2014-12-19 14:12:35 -05:00
Karsten Loesing
816e6f2eac
Fix unit test.
...
Looks like we forgot to update unit tests when we switched from 32-bit to
64-bit ints while tweaking 7cd53b7
.
2014-12-19 18:37:43 +01:00
Karsten Loesing
7cd53b75c1
Add better support to obfuscate statistics.
2014-12-10 11:16:26 +01:00
Nick Mathewson
734ba5cb0a
Use smaller zlib objects when under memory pressure
...
We add a compression level argument to tor_zlib_new, and use it to
determine how much memory to allocate for the zlib object. We use the
existing level by default, but shift to smaller levels for small
requests when we have been over 3/4 of our memory usage in the past
half-hour.
Closes ticket 11791.
2014-11-17 11:43:50 -05:00
Nick Mathewson
4ac5175109
Fix wide lines (from 13172)
2014-11-12 13:42:01 -05:00
Nick Mathewson
a3dafd3f58
Replace operators used as macro arguments with OP_XX macros
...
Part of fix for 13172
2014-11-12 13:28:07 -05:00
Nick Mathewson
60c86a3b79
Merge branch 'bug13315_squashed'
...
Conflicts:
src/or/buffers.c
2014-11-04 00:48:25 -05:00
rl1987
e8e45ff13e
Introducing helper function to validate IPv4 address strings.
2014-11-04 00:36:37 -05:00
rl1987
1ea9a6fd72
Introducing helper function to validate DNS name strings.
2014-11-04 00:35:43 -05:00
Nick Mathewson
fcdcb377a4
Add another year to our copyright dates.
...
Because in 95 years, we or our successors will surely care about
enforcing the BSD license terms on this code. Right?
2014-10-28 15:30:16 -04:00
Nick Mathewson
ac4dd248e1
Switch new time tests to use SIZEOF_TIME_T, not sizeof(time_t)
...
Otherwise, we get implicit conversion warning on some platforms.
2014-10-22 12:57:21 -04:00
teor
a1c6a40c22
Conditionally compile time testing code based on integer size
2014-10-21 08:44:10 +11:00
teor
879b39e1a8
Further unit test tor_timegm and parse_rfc1123_time
...
Add unit tests for tor_timegm signed overflow,
tor_timegm and parse_rfc1123_time validity checks,
and correct_tm year clamping.
Unit tests (visible) fixes in bug 13476.
2014-10-20 02:52:21 +11:00
Nick Mathewson
21fe945ebd
Define a strnlen replacement on platforms (win32) that lack it
...
Right now this is only needed for test_util_format_time_interval, so
define it as a static function. We can move it into compat later if
we need to.
2014-10-13 14:59:17 -04:00
Nick Mathewson
f1782d9c4c
Clean whitespace in last patch.
2014-10-13 13:20:07 -04:00
teor
f51418aabc
Avoid overflow in format_time_interval, create unit tests
...
Fix an instance of integer overflow in format_time_interval() when
taking the absolute value of the supplied signed interval value.
Fixes bug 13393.
Create unit tests for format_time_interval().
2014-10-12 20:50:10 +11:00
Nick Mathewson
15b0bf0aad
Whitespace fixes on 13291 fix
2014-09-29 09:39:21 -04:00
Nick Mathewson
0a985af072
Parenthesize macro arguments for 13291 fix
2014-09-29 09:38:50 -04:00
teor
b827a08284
Stop spawn test failures due to a race condition with SIGCHLD on process exit
...
When a spawned process forks, fails, then exits very quickly, (this
typically occurs when exec fails), there is a race condition between the
SIGCHLD handler updating the process_handle's fields, and checking the
process status in those fields. The update can occur before or after the
spawn tests check the process status.
We check whether the process is running or not running (rather than just
checking if it is running) to avoid this issue.
2014-09-29 09:37:53 -04:00
Nick Mathewson
3f9fac7ee4
Fix a windows unused-arg warning
2014-09-17 11:00:27 -04:00
Nick Mathewson
ea72b4f60a
clean up eol whitespace from coccinelle-generated patches
2014-09-16 09:40:38 -04:00
Nick Mathewson
a6627fdb80
Remove the legacy_test_helper and legacy_setup wrappers
...
These wrappers went into place when the default type for our unit
test functions changed from "void fn(void)" to "void fn(void *arg)".
To generate this patch, I did the same hokey-pokey as before with
replacing all operators used as macro arguments, then I ran a
coccinelle script, then I ran perl script to fix up everything that
used legacy_test_helper, then I manually removed the
legacy_test_helper functions, then I ran a final perl script to put
the operators back how they were.
==============================
#!/usr/bin/perl -w -i -p
s/==,/_X_EQ_,/g;
s/!=,/_X_NE_,/g;
s/<,/_X_LT_,/g;
s/>,/_X_GT_,/g;
s/>=,/_X_GEQ_,/g;
s/<=,/_X_LEQ_,/g;
--------------------
@@
identifier func =~ "test_.*$";
statement S, S2;
@@
static void func (
-void
+void *arg
)
{
... when != S2
+(void) arg;
S
...
}
--------------------
#!/usr/bin/perl -w -i -p
s/, *legacy_test_helper, *([^,]+), *\&legacy_setup, *([^\}]+) *}/, $2, $1, NULL, NULL }/g;
--------------------
#!/usr/bin/perl -w -i -p
s/_X_NEQ_/!=/g;
s/_X_NE_/!=/g;
s/_X_EQ_/==/g;
s/_X_GT_/>/g;
s/_X_LT_/</g;
s/_X_GEQ_/>=/g;
s/_X_LEQ_/<=/g;
--------------------
2014-09-16 09:30:22 -04:00
Nick Mathewson
34bf9b3690
Replace the remaining test_assert instances
2014-09-15 21:29:48 -04:00
Nick Mathewson
1146a6a1c5
Replace the remaining test_n?eq_ptr calls
2014-09-15 21:25:27 -04:00
Nick Mathewson
0243895792
Use coccinelle scripts to clean up our unit tests
...
This should get rid of most of the users of the old test_*
functions. Some are in macros and will need manual cleanup, though.
This patch is for 13119, and was automatically generated with these
scripts. The perl scripts are there because coccinelle hates
operators as macro arguments.
------------------------------
s/==,/_X_EQ_,/g;
s/!=,/_X_NE_,/g;
s/<,/_X_LT_,/g;
s/>,/_X_GT_,/g;
s/>=,/_X_GEQ_,/g;
s/<=,/_X_LEQ_,/g;
------------------------------
@@
expression a;
identifier func;
@@
func (...) {
<...
-test_fail_msg
+TT_DIE
(
+(
a
+)
)
...>
}
@@
identifier func;
@@
func (...) {
<...
-test_fail()
+TT_DIE(("Assertion failed."))
...>
}
@@
expression a;
identifier func;
@@
func (...) {
<...
-test_assert
+tt_assert
(a)
...>
}
@@
expression a, b;
identifier func;
@@
func (...) {
<...
-test_eq
+tt_int_op
(a,
+_X_EQ_,
b)
...>
}
@@
expression a, b;
identifier func;
@@
func (...) {
<...
-test_neq
+tt_int_op
(a,
+_X_NEQ_,
b)
...>
}
@@
expression a, b;
identifier func;
@@
func (...) {
<...
-test_streq
+tt_str_op
(a,
+_X_EQ_,
b)
...>
}
@@
expression a, b;
identifier func;
@@
func (...) {
<...
-test_strneq
+tt_str_op
(a,
+_X_NEQ_,
b)
...>
}
@@
expression a, b;
identifier func;
@@
func (...) {
<...
-test_eq_ptr
+tt_ptr_op
(a,
+_X_EQ_,
b)
...>
}
@@
expression a, b;
identifier func;
@@
func() {
<...
-test_neq_ptr
+tt_ptr_op
(a,
+_X_NEQ_,
b)
...>
}
@@
expression a, b, len;
identifier func;
@@
func (...) {
<...
-test_memeq
+tt_mem_op
(a,
+_X_EQ_,
b, len)
...>
}
@@
expression a, b, len;
identifier func;
@@
func (...) {
<...
-test_memneq
+tt_mem_op
(a,
+_X_NEQ_,
b, len)
...>
}
------------------------------
@@
char a, b;
identifier func;
@@
func (...) {
<...
-tt_assert
+tt_int_op
(
-a == b
+a, _X_EQ_, b
)
...>
}
@@
int a, b;
identifier func;
@@
func (...) {
<...
-tt_assert
+tt_int_op
(
-a == b
+a, _X_EQ_, b
)
...>
}
@@
long a, b;
identifier func;
@@
func (...) {
<...
-tt_assert
+tt_int_op
(
-a == b
+a, _X_EQ_, b
)
...>
}
@@
unsigned int a, b;
identifier func;
@@
func (...) {
<...
-tt_assert
+tt_uint_op
(
-a == b
+a, _X_EQ_, b
)
...>
}
@@
unsigned long a, b;
identifier func;
@@
func (...) {
<...
-tt_assert
+tt_uint_op
(
-a == b
+a, _X_EQ_, b
)
...>
}
@@
char a, b;
identifier func;
@@
func (...) {
<...
-tt_assert
+tt_int_op
(
-a != b
+a, _X_NEQ_, b
)
...>
}
@@
int a, b;
identifier func;
@@
func (...) {
<...
-tt_assert
+tt_int_op
(
-a != b
+a, _X_NEQ_, b
)
...>
}
@@
long a, b;
identifier func;
@@
func (...) {
<...
-tt_assert
+tt_int_op
(
-a != b
+a, _X_NEQ_, b
)
...>
}
@@
unsigned int a, b;
identifier func;
@@
func (...) {
<...
-tt_assert
+tt_uint_op
(
-a != b
+a, _X_NEQ_, b
)
...>
}
@@
unsigned long a, b;
identifier func;
@@
func (...) {
<...
-tt_assert
+tt_uint_op
(
-a != b
+a, _X_NEQ_, b
)
...>
}
@@
char a, b;
identifier func;
@@
func (...) {
<...
-tt_assert
+tt_int_op
(
-a >= b
+a, _X_GEQ_, b
)
...>
}
@@
int a, b;
identifier func;
@@
func (...) {
<...
-tt_assert
+tt_int_op
(
-a >= b
+a, _X_GEQ_, b
)
...>
}
@@
long a, b;
identifier func;
@@
func (...) {
<...
-tt_assert
+tt_int_op
(
-a >= b
+a, _X_GEQ_, b
)
...>
}
@@
unsigned int a, b;
identifier func;
@@
func (...) {
<...
-tt_assert
+tt_uint_op
(
-a >= b
+a, _X_GEQ_, b
)
...>
}
@@
unsigned long a, b;
identifier func;
@@
func (...) {
<...
-tt_assert
+tt_uint_op
(
-a >= b
+a, _X_GEQ_, b
)
...>
}
@@
char a, b;
identifier func;
@@
func (...) {
<...
-tt_assert
+tt_int_op
(
-a <= b
+a, _X_LEQ_, b
)
...>
}
@@
int a, b;
identifier func;
@@
func (...) {
<...
-tt_assert
+tt_int_op
(
-a <= b
+a, _X_LEQ_, b
)
...>
}
@@
long a, b;
identifier func;
@@
func (...) {
<...
-tt_assert
+tt_int_op
(
-a <= b
+a, _X_LEQ_, b
)
...>
}
@@
unsigned int a, b;
identifier func;
@@
func (...) {
<...
-tt_assert
+tt_uint_op
(
-a <= b
+a, _X_LEQ_, b
)
...>
}
@@
unsigned long a, b;
identifier func;
@@
func (...) {
<...
-tt_assert
+tt_uint_op
(
-a <= b
+a, _X_LEQ_, b
)
...>
}
@@
char a, b;
identifier func;
@@
func (...) {
<...
-tt_assert
+tt_int_op
(
-a > b
+a, _X_GT_, b
)
...>
}
@@
int a, b;
identifier func;
@@
func (...) {
<...
-tt_assert
+tt_int_op
(
-a > b
+a, _X_GT_, b
)
...>
}
@@
long a, b;
identifier func;
@@
func (...) {
<...
-tt_assert
+tt_int_op
(
-a > b
+a, _X_GT_, b
)
...>
}
@@
unsigned int a, b;
identifier func;
@@
func (...) {
<...
-tt_assert
+tt_uint_op
(
-a > b
+a, _X_GT_, b
)
...>
}
@@
unsigned long a, b;
identifier func;
@@
func (...) {
<...
-tt_assert
+tt_uint_op
(
-a > b
+a, _X_GT_, b
)
...>
}
@@
char a, b;
identifier func;
@@
func (...) {
<...
-tt_assert
+tt_int_op
(
-a < b
+a, _X_LT_, b
)
...>
}
@@
int a, b;
identifier func;
@@
func (...) {
<...
-tt_assert
+tt_int_op
(
-a < b
+a, _X_LT_, b
)
...>
}
@@
long a, b;
identifier func;
@@
func (...) {
<...
-tt_assert
+tt_int_op
(
-a < b
+a, _X_LT_, b
)
...>
}
@@
unsigned int a, b;
identifier func;
@@
func (...) {
<...
-tt_assert
+tt_uint_op
(
-a < b
+a, _X_LT_, b
)
...>
}
@@
unsigned long a, b;
identifier func;
@@
func (...) {
<...
-tt_assert
+tt_uint_op
(
-a < b
+a, _X_LT_, b
)
...>
}
------------------------------
s/_X_NEQ_/!=/g;
s/_X_NE_/!=/g;
s/_X_EQ_/==/g;
s/_X_GT_/>/g;
s/_X_LT_/</g;
s/_X_GEQ_/>=/g;
s/_X_LEQ_/<=/g;
s/test_mem_op\(/tt_mem_op\(/g;
2014-09-15 21:18:21 -04:00
Nick Mathewson
0bd220adcb
Don't pass invalid memory regions to digestmap_set/get in test_routerlist
...
Fixes bug in c887e20e6a5a2c17c65; bug in no released Tor version.
2014-09-15 14:04:19 -04:00
Nick Mathewson
53a94c4b4b
Clear up another clangalyzer issue
...
"The NULL pointer warnings on the return value of
tor_addr_to_in6_addr32() are incorrect. But clang can't work this
out itself due to limited analysis depth. To teach the analyser that
the return value is safe to dereference, I applied tor_assert to the
return value."
Patch from teor. Part of 13157.
2014-09-15 13:52:13 -04:00
Nick Mathewson
89e32c7c08
One more whitespace fix
2014-09-11 14:40:24 -04:00
Nick Mathewson
32f75c870e
Whitespace cleanups in test_util
2014-09-11 14:37:12 -04:00
Nick Mathewson
121f4a9ca4
Merge remote-tracking branch 'public/bug13104_025'
2014-09-11 08:30:41 -04:00
Nick Mathewson
d02937a203
Fix "comparison is always false" warnings in new test_util_di_ops
...
Having a constant zero means that unsigned < 0 is always false.
2014-09-11 08:28:46 -04:00
Nick Mathewson
48558ed1aa
Merge remote-tracking branch 'public/bug13104_025'
2014-09-11 00:11:26 -04:00
Nick Mathewson
2491eadf00
C90 compliance for #13104 fixes
2014-09-11 00:10:53 -04:00
Nick Mathewson
284cc9a224
Avoid an overflow on negation in format_helper_exit_status
...
Part of 13104; patch from teor.
2014-09-11 00:00:13 -04:00
Nick Mathewson
5126bc2ebd
Extra tests for tor_memeq and memcmp
...
(Patch from teor; part of 13104)
2014-09-10 23:58:02 -04:00
Nick Mathewson
d2463c0cfe
Avoid overflows and underflows in sscanf and friends
...
(Patch from teor on 13104)
2014-09-10 23:57:31 -04:00
Nick Mathewson
07a16b3372
Add an assertion to read_file_to_str_until_eof
...
The clangalyzer doesn't believe our math here. I'm pretty sure our
math is right. Also, add some unit tests.
2014-09-02 13:29:11 -04:00
Nick Mathewson
2bfd92d0d1
Apply coccinelle script to replace malloc(a*b)->calloc(a,b)
2014-08-13 10:39:56 -04:00
Peter Palfrader
f8cbba7a33
Cast long long arguments to (int) for tt_int_op()
2014-07-28 15:42:20 -04:00
Nick Mathewson
867f5e6a76
Add a tor_ftruncate to replace ftruncate.
...
(Windows doesn't have ftruncate, and some ftruncates do not move the
file pointer to the start of the file.)
2014-07-16 13:58:55 +02:00
cypherpunks
6150741791
Fixed fgets_eagain unit test.
...
On a non-blocking pipe fgets sets EAGAIN when it encounters partial lines. No
error is set on full lines or EOF. EOF is reached when the writing end of the
pipe is closed. Partial lines and full lines are both returned by fgets, EOF
results in NULL.
Mention of this behaviour can be found in #1903 and #2045 .
2014-07-16 09:50:09 +02:00
Nick Mathewson
58f4200789
Thread support is now required
...
Long ago we supported systems where there was no support for
threads, or where the threading library was broken. We shouldn't
have do that any more: on every OS that matters, threads exist, and
the OS supports running threads across multiple CPUs.
This resolves tickets 9495 and 12439. It's a prerequisite to making
our workqueue code work better, since sensible workqueue
implementations don't split across multiple processes.
2014-06-20 10:20:10 -04:00
Nick Mathewson
a7cafb1ea9
Merge branch 'bug8746_v2_squashed'
...
Conflicts:
src/common/include.am
2014-06-14 11:46:38 -04:00