Commit Graph
4866 Commits
Author SHA1 Message Date
jfreegman dfa7a0183f Refactor toxav_call_control
Control logic is now placed in control-specific helper functions
instead of having one giant confusing function that does everything
2022-01-13 17:50:39 -05:00
iphydf 28b5e512a2 fix: Fix toxav_basic_test buffer overflow.
We should pass the number of samples, not the byte size of `PCM`.
2022-01-13 22:36:53 +00:00
sudden6 2073d02c33 fix: don't count filetransfer as sending until accepted
This fixes high CPU load in c-toxcore due to started but not accepted
file transfers causing lots of iterations in do_all_filetransfers(...).
Additionally this skips expensive calls max_speed_reached(...).
2022-01-13 21:41:12 +00:00
iphydf 4a2cb37e4b fix: Fix some uninitialised memory errors found by valgrind and msan.
Also added a valgrind build to run it on every pull request. I've had to
disable a few tests because valgrind makes those run infinitely slowly,
consistently timing them out.
2022-01-13 20:15:21 +00:00
iphydf 46a443f188 chore: Ignore failures from bazel-tsan and bazel-asan.
Also increased memory limits so it doesn't OOM.
2022-01-13 00:36:34 +00:00
iphydf 685b78d31d chore: Add asan/tsan bazel builds.
These have all dependencies built with asan/tsan, so they can do deeper
sanity checks such as checking what opus is doing with our buffers.

The asan check currently fails for me locally, so these are not yet set
to be required for PRs to be merged.
2022-01-12 20:33:21 +00:00
jfreegman 360acd0f42 Replace all instances of atoi with strtol
atoi doesn't check if the conversion from string to int succeeded
which doesn't allow us to do proper error handling.

We also now make sure that the port argument is a valid port
in addition to being properly converted
2022-01-12 14:08:45 -05:00
iphydf 9b7279ab24 chore: Run tokstyle with 3 cores.
This seems to be the sweet spot for the current tokstyle implementation.
4 cores gives the same speedup, 5 also, 6 makes it slower, and 2 also
makes it slower.
2022-01-12 18:52:46 +00:00
iphydf f5f22a5c76 chore: Enable layering check in all c-toxcore build files. 2022-01-12 18:33:13 +00:00
Maxim Biro ce4b01df94 Fix the compiled out code too
Has the same double-unlock issue as the previous commit.

It also looks like rtp_free_msg() is gone and free() should be used
instead.
2022-01-12 10:49:33 -05:00
Maxim Biro dbcfc8265e Fix a double-unlocking mutex
Fixes #1694

Thanks to @ryancaicse for the pointer!
2022-01-12 10:49:30 -05:00
iphydf cfb0aa8f25 cleanup: Remove extra parens around function arguments. 2022-01-12 07:02:29 +00:00
iphydf c1b32bd7a1 chore: Enable compiler layering check.
This ensures that we're explicit about what we depend on and avoids
transitive dependencies.
2022-01-11 15:26:32 +00:00
iphydf eebc516d55 chore: Disable the OpenMP cracker in bazel for now.
I broke it. I'll re-enable it if/when I fix omp support in the bazel
build.
2022-01-11 13:29:53 +00:00
sudden6 faf39ef94f update tox-bootstrapd.sha256
__LINE__ macros were changed due to inserting #ifdef
2022-01-10 21:05:51 +01:00
sudden6 e04b890817 add scripts to run the fuzzing process
This adds scripts and Dockerfiles to run the fuzzing process standalone
or with OSS-Fuzz/ClusterFuzzLite integrations.
2022-01-10 21:05:51 +01:00
sudden6 7dd8dbd897 intercept network, crypto and time
This fuzzing harness must be as deterministic as possible for the fuzzer
to detect additional coverage reliably.
2022-01-10 21:05:49 +01:00
sudden6 9eb88798a3 add fuzzing harnesses
Toxsave harness ported to libFuzzer interface.
New harness for bootstrap phase.
2022-01-10 20:57:00 +01:00
iphydf 210ea9e25c chore: Retry asan/tsan tests a few more times.
These are somewhat flaky. A few more retries should make them pass unless
they are properly broken. Most of the time they time out and one more
attempt would pass it. I've added 2 more attempts.
2022-01-10 14:46:58 +00:00
iphydf f46f51e554 cleanup: Don't use memcpy where assignment can be used.
See https://github.com/TokTok/hs-tokstyle/pull/104.
2022-01-10 10:58:42 +00:00
Robin Linden 7411f70109 Output test logs on failure in Conan build 2022-01-10 02:27:13 +01:00
Robin Linden 23df660fd2 Remove always-true check in receivepacket error handling 2022-01-10 02:27:13 +01:00
Robin Linden f78c741790 Update MSVC auto test disables to match what somewhat reliably works 2022-01-10 02:27:13 +01:00
Robin Linden 091dc6c833 Fix many MSVC auto tests failing due to WSAECONNRESET 2022-01-10 02:27:13 +01:00
Robin Linden d2ef514569 Disable building cracker with MSVC
It uses OpenMP features MSVC doesn't support.
2022-01-10 02:27:13 +01:00
Robin Linden 11c9c05213 Don't ignore build/test failures in Appveyor 2022-01-10 02:27:12 +01:00
iphydf 5ab301ecab chore: Remove all references to Travis CI.
Travis gave up on FOSS, so no more free advertisement for Travis.
2022-01-10 01:17:46 +00:00
iphydf 73484d8995 cleanup: Use calloc instead of malloc for struct allocations.
`malloc` is used only for byte/int arrays. Also, we no longer allow plain
`void *` allocations. Every allocation should have a real value type.
2022-01-09 22:42:50 +00:00
iphydf 9ab77e015d cleanup: Fix calloc argument order.
See https://github.com/TokTok/hs-tokstyle/pull/102
2022-01-09 18:42:20 +00:00
iphydf 83d5d0d280 cleanup: Remove useless parentheses. 2022-01-06 20:36:03 +00:00
Robin Linden fe7b467df4 Add a GH Actions code coverage job 2022-01-06 16:39:48 +01:00
sudden6 d2bf72479c fix: use correct sample size in toxav_basic_test 2022-01-04 21:12:57 +01:00
jfreegman 0385315200 Make struct typedefs have the same name as their struct 2022-01-04 11:36:28 -05:00
iphydf e848853968 chore: Remove old travis docker scripts.
These aren't useful anymore. We don't have travis anymore, so there's no
need to simulate the travis CI environment.
2022-01-02 19:41:46 +00:00
iphydf 277f512dbb chore: Add bazel-debug build.
This has in the already found real bugs that only happen when compiling
with stack protector and no optimisations.
2022-01-02 03:15:39 +00:00
jfreegman 7318127dca Remove dead code
Neither of these clauses can ever be reached.

Also attempt to fix travis Windows build
2022-01-01 19:44:11 -05:00
jfreegman 53bd3c86df Fix possible unintended negative loop bound 2022-01-01 16:01:29 -05:00
jfreegman e6d671eeab Add ability for autotests to use TCP connections
This also allows us to set other tox options
2022-01-01 15:43:59 -05:00
iphydf 8cd4827a14 cleanup: Reduce the scope of for-loop iterator variables.
Found by tokstyle after https://github.com/TokTok/hs-tokstyle/pull/95.
2022-01-01 03:26:41 +00:00
iphydf 6f61de54d3 chore: Add "tcc" and "compcert" compiler targets.
It's nice we are able to compile with `tcc`. Let's not break that.
CompCert is also neat, but its interpreter mode doesn't work on tox, so
we only use the compiler.
2021-12-30 23:09:23 +00:00
zugz (tox) 64a48c0e78 cleanup: Remove hardening code from DHT 2021-12-30 00:00:01 +00:00
iphydf eb4dc4326a refactor: Extract some functions from the big run_auto_test function.
This reduces complexity of the single function. Also reduced duplication
a bit.
2021-12-29 00:50:12 +00:00
iphydf 8ce2ae0fcb chore: Add macOS build. 2021-12-28 23:28:48 +00:00
jfreegman d8397c93c8 Put breaks inside case bracers 2021-12-25 12:30:39 -05:00
iphydf b8c7c2a923 chore: Login to dockerhub before trying to push to dockerhub. 2021-12-23 17:26:17 +00:00
iphydf 1639703c62 chore: Only push versioned docker image on tag builds. 2021-12-23 16:49:57 +00:00
iphydf 1e11865c4c chore: Add bootstrap daemon docker image build.
This will also push to dockerhub on merge.
2021-12-23 15:54:24 +00:00
iphydf 29eb3dd490 chore: Remove apidsl comment from tox.h.
There is no more apidsl, so you can edit tox.h manually now.
2021-12-23 15:33:03 +00:00
iphydf 2f546a9710 chore: Rename test source to match standard.
All tests should end in `_test.c` or `_test.cc` for unit tests.
2021-12-23 03:50:16 +00:00
iphydf 93fa988a9d chore: Don't run CI on master branch pushes.
All pushes have already been checked in the pull request. This is just
duplicate work, wasting GH action runners.
2021-12-22 11:03:13 +00:00