aboutsummaryrefslogtreecommitdiff
path: root/src/test/test_channel.c
AgeCommit message (Collapse)Author
2017-11-22test: Fix channel lifecycle and lifecycle_2David Goulet
They were broken due to previous commit. Fixes are trivial. Signed-off-by: David Goulet <dgoulet@torproject.org>
2017-11-22test: Add outbound channel cell testDavid Goulet
Signed-off-by: David Goulet <dgoulet@torproject.org>
2017-11-22test: Improve the inbound channel cell testDavid Goulet
First, that test was broken from the previous commit because the channel_queue_cell() has been removed. This now tests the channel_process_cell() directly. Second, it wasn't testing much except if the channel subsystem actually went through the cell handler. This commit adds more checks on the state of a channel going from open, receiving a cell and closing. Third, this and the id_map unit test are working, not the others so they've been marked as not working and future commit will improve and fix those. Signed-off-by: David Goulet <dgoulet@torproject.org>
2017-11-22channel: Remove unused write cell functionsDavid Goulet
The channel_write_cell() and channel_write_var_cell() can't be possibly called nor are used by tor. We only write on the connection outbuf packed cell coming from the scheduler that takes them from the circuit queue. This makes channel_write_packed_cell() the only usable function. It is simplify and now returns a code value. The reason for this is that in the next commit(s), we'll re-queue the cell onto the circuit queue if the write fails. Finally, channel unit tests are being removed with this commit because they do not match the new semantic. They will be re-written in future commits. Signed-off-by: David Goulet <dgoulet@torproject.org>
2017-11-22channel: Remove everything related to queue sizeDavid Goulet
The channel subsystem was doing a whole lot to track and try to predict the channel queue size but they are gone due to previous commit. Signed-off-by: David Goulet <dgoulet@torproject.org>
2017-11-22channel: Remove incoming/outgoing queueDavid Goulet
For the rationale, see ticket #23709. This is a pretty massive commit. Those queues were everywhere in channel.c and it turns out that it was used by lots of dead code. The channel subsystem *never* handles variable size cell (var_cell_t) or unpacked cells (cell_t). The variable ones are only handled in channeltls and outbound cells are always packed from the circuit queue so this commit removes code related to variable and unpacked cells. However, inbound cells are unpacked (cell_t), that is untouched and is handled via channel_process_cell() function. In order to make the commit compile, test have been modified but not passing at this commit. Also, many tests have been removed but better improved ones get added in future commits. This commit also adds a XXX: which indicates that the handling process of outbound cells isn't fully working. This as well is fixed in a future commit. Finally, at this commit, more dead code remains, it will be cleanup in future commits. Fixes #23709 Signed-off-by: David Goulet <dgoulet@torproject.org>
2017-08-24Ensure that `make check-spaces` is happy.Alexander Færøy
The `test-operator-cleanup` patch, and related coccinelle patches, don't do any checks for line length. This patch fixes the line length issues caused by the previous commits.
2017-08-24apply ahf's test_assert_null.cocciNick Mathewson
2017-08-24apply ahf's test_assert_int.cocciNick Mathewson
2017-08-24Fix operator usage in src/test/*.cAlexander Færøy
This patch fixes the operator usage in src/test/*.c to use the symbolic operators instead of the normal C comparison operators. This patch was generated using: ./scripts/coccinelle/test-operator-cleanup src/test/*.[ch]
2017-06-21Extract channel_do_open_actions() from non-open _change_state casesNick Mathewson
This reduces the size of the largest SCC in the callgraph by 30 functions, from 58 to 28.
2017-03-15Run the copyright update script.Nick Mathewson
2016-12-08Fix a completely stupid stack-protector warning in test_channels.cNick Mathewson
This was breaking the build on debian precise, since it thought that using a 'const int' to dimension an array made that array variable-size, and made us not get protection. Bug not in any released version of Tor. I will insist that this one wasn't my fault. "Variables won't. Constants aren't." -- Osborn's Law
2016-12-08Unit tests for channel identity map codeNick Mathewson
2016-11-03Fix BUG message in channel/queue_impossibleNick Mathewson
2016-06-11Add -Wmissing-variable-declarations, with attendant fixesNick Mathewson
This is a big-ish patch, but it's very straightforward. Under this clang warning, we're not actually allowed to have a global variable without a previous extern declaration for it. The cases where we violated this rule fall into three roughly equal groups: * Stuff that should have been static. * Stuff that was global but where the extern was local to some other C file. * Stuff that was only global when built for the unit tests, that needed a conditional extern in the headers. The first two were IMO genuine problems; the last is a wart of how we build tests.
2016-06-11Resolve some warnings from OSX clang.Nick Mathewson
2016-06-11Use -Wdouble-promotion in GCC >= 4.6Nick Mathewson
This warning triggers on silently promoting a float to a double. In our code, it's just a sign that somebody used a float by mistake, since we always prefer double.
2016-03-21Merge branch 'bug18570_027'Nick Mathewson
2016-03-21Add new channel/queue_incoming unit tests; modify channel unit tests for new ↵Andrea Shepard
clarified handling of alloc/free responsibility for queued incoming cells
2016-02-27Update the copyright year.Nick Mathewson
2015-05-26Fix unit tests on MSVC2013.Nick Mathewson
Patch from "NewEraCracker." Fixes bug16030; bugfix on 0.2.6.2-alpha.
2015-02-23Remove lingering mempool codecypherpunks
2015-01-02Bump copyright dates to 2015, in case someday this matters.Nick Mathewson
2014-12-26Add another cellintptr use; fixes 14031Nick Mathewson
2014-12-22Tweak channel unit tests so we don't see coverity complaintsNick Mathewson
channel_write_*_cell() can delete its argument, so coverity doesn't like us doing pointer comparison against that argument later. Silly.
2014-12-22Fix a bunch of memory leaks in the unit tests. Found with valgrindNick Mathewson
2014-12-22Fix some coverity issues in the unit testsNick Mathewson
2014-12-04Fix more 64/32 warnings in test_channel.cNick Mathewson
2014-11-28Fix some 32-bit build issues in the testsNick Mathewson
When comparing 64-bit types, you need to use tt_[ui]64_op(). Found by Jenkins
2014-09-30Update test_channel.c for recent test suite changes and --enable-mempools ↵Andrea Shepard
support
2014-09-30Limited unit test for channel_dump_statistics()Andrea Shepard
2014-09-30Add channel/dumpstats unit testAndrea Shepard
2014-09-30Check queueing case in channel/flushmux unit test tooAndrea Shepard
2014-09-30Add channel/flushmux unit testAndrea Shepard
2014-09-30Add channel/incoming unit testAndrea Shepard
2014-09-30Add unknown cell queue entry type case to channel/queue_impossible unit testAndrea Shepard
2014-09-30Small channel unit test improvementsAndrea Shepard
2014-09-30Unit test for unusual channel lifecyclesAndrea Shepard
2014-09-30Check some can't-happen cases draining channel cell queuesAndrea Shepard
2014-09-30Add scheduler_channel_has_waiting_cells_mock() and some mock counter queriesAndrea Shepard
2014-09-30Expose a useful mock from test_channel.cAndrea Shepard
2014-09-30Expose fake channel utility functions in test suite in fakechans.h, and fix ↵Andrea Shepard
a test_channel.c bug
2014-09-30Implement channel flush unit testAndrea Shepard
2014-09-30Add channel lifecycle testAndrea Shepard
2014-09-30Implement two-channel queue estimate testAndrea Shepard
2014-09-30Implement channel queue size estimate unit testAndrea Shepard
2014-09-30Unit tests for channel_get_cell_queue_entry_size() and channel_write_*() ↵Andrea Shepard
functions