Commit Graph

69 Commits

Author SHA1 Message Date
iphydf ef4897a898 cleanup: Upgrade to clang-tidy-17 and fix some warnings. 2023-12-27 01:05:47 +00:00
iphydf b7f9367f6f test: Upgrade cppcheck, fix some warnings.
Also started teaching it about toxcore's alloc/dealloc functions in
hopes of it catching some errors (it doesn't seem to be very good at
this, but maybe better than nothing?).
2023-12-27 00:00:10 +00:00
iphydf 895a6af122 cleanup: Remove NaCl support.
We now depend on libsodium unconditionally. Future work will require
functions from libsodium, and nobody we're aware of uses the nacl build
for anything other than making sure it still works on CI.
2023-12-25 00:36:38 +00:00
iphydf 572924e924 chore: Build a docker image with coverage info in it.
We can then use that to build a coverage web UI on render.com using the
Dockerfile.nginx build.
2023-12-22 00:25:37 +00:00
iphydf 425216d9ec fix: Correct a use-after-free and fix some memory leaks.
Also: use `find_package` to find gtest. This fixes the coverage build to
include unit tests.
2023-12-21 17:17:51 +00:00
iphydf 19d8f180d6 chore: Update github actions uses.
The old ones are going to stop working soon.
2023-12-19 20:06:15 +00:00
iphydf 68c827609a chore: Move s390x build to post-merge.
It takes 15+ minutes and will very rarely fail, so it's not worth
blocking PRs on it.
2023-12-18 16:45:49 +00:00
iphydf d390947245 chore: Upgrade sonar-scan jvm to java 17.
https://community.sonarsource.com/t/java-11-is-deprecated-as-a-runtime-env-to-scan-your-projects/9659
2023-11-23 11:23:54 +00:00
iphydf 814090f2b8 chore: Cancel old PR builds on docker and sonar-scan workflows.
Also, don't error on test failures on windows (they are very flaky).
2023-11-22 23:38:50 +00:00
iphydf 83efb17367 perf: Add a KVM FreeBSD build on cirrus ci. 2023-11-22 23:17:27 +00:00
iphydf 7155f7f60e test: Add an s390x build (on alpine) for CI.
It doesn't work at all, because we're missing something in the net code
to do with endian conversions. I haven't investigated, yet, but at least
now we have a failing test that can be investigated.

Also moved to cmake 3.5 at minimum. CMake will stop supporting lower
versions than that, soon.

Also moved to C11 from C99 to get `static_assert`.

Also made a network ERROR into a WARNING. It triggers on FreeBSD.
2023-11-22 18:29:26 +00:00
iphydf 6c35cef63f chore: Add a compcert docker run script.
Useful for local runs. Does the same as CI, so if it fails on CI, this
can be used to test locally, avoiding slow CI round trips.
2023-11-18 06:19:21 +00:00
iphydf 41e6ea865e cleanup: Use tcc docker image for CI.
Instead of repeating the instructions in github actions configs.
2023-11-18 03:44:06 +00:00
sudden6 6b5579239b test: enable additional sanitizers for fuzzing 2022-04-14 20:23:29 +02:00
iphydf d539e34f91 chore: Add initial ESP32 docker build.
It won't actually run until we reduce memory consumption by 2 orders of
magnitude, but that'll be the eventual goal.
2022-04-05 20:11:18 +00:00
iphydf 3576df9d79 chore: Add MISRA-2012 check using cppcheck's misra addon.
Disabled a whole bunch of rules from the MISRA-C set. Some of them
should be fixed, but most of the ones we violate have good reasons. This
PR documents those reasons.
2022-04-04 20:29:54 +00:00
iphydf 09575dc05b chore: Clone submodules in clusterfuzzlite Dockerfile.
Needed for the build afterwards.

Also added the cflite Dockerfile to automatic CI builds so changes to it
are checked in pull requests.

Also fixed the tokstyle docker image. It needs clang instead of gcc now.
2022-03-30 18:29:46 +00:00
iphydf ee154da4a9 refactor: Use cmp instead of msgpack-c for events packing.
This library is better in every way.
2022-03-26 23:57:15 +00:00
iphydf 7dde71c4e9 chore: Use "master" as the branch in toktok-fuzzer.
This is the standard across toktok repos. Exceptions are a pain for
automation and tooling.
2022-03-23 23:03:52 +00:00
iphydf 9df7bf7ccd chore: Add testing/Dockerfile to the CI build. 2022-03-08 20:31:39 +00:00
iphydf e1e92c1ac1 docs: Clean up doxygen comments to be more doxygen-like. 2022-03-05 22:30:48 +00:00
iphydf 093927ba4f test: Add mallocfail and proxy test to our coverage runs. 2022-02-25 01:55:28 +00:00
iphydf 2ce6f5b169 fix: Report failure to DHT bootstrap back to the client.
Also reduce log verbosity a bit.
2022-02-24 11:37:47 +00:00
iphydf a6426d7e7a chore: Make coverity scan a nightly job.
Instead of on every push. It only produces results once a day anyway.
2022-02-19 02:47:36 +00:00
iphydf 68f4e5c0fa chore: Simplify and speed up windows builds using docker image. 2022-02-19 00:47:37 +00:00
iphydf c44930d323 chore: Fix build-args in win32/win64 docker build. 2022-02-19 00:46:34 +00:00
iphydf 570485e186 chore: Add docker image builds for windows cross compiler. 2022-02-19 00:08:33 +00:00
iphydf d46091072d chore: Remove msan from all CIs except circleci.
It doesn't work yet and is wasting CI resources.
2022-02-18 22:21:01 +00:00
iphydf 5e724d8909 cleanup: Avoid implicit pointer-to-bool conversion in if in toxav. 2022-02-17 20:33:24 +00:00
iphydf 1d0f6e51e2 cleanup: Add some more error path logging to TCP server code. 2022-02-15 12:08:22 +00:00
sudden6 4d79001991 chore: fine tune fuzzing settings 2022-02-14 13:54:52 +01:00
sudden6 d429d35756 fix: syntax error introduced in 8bf37994fd 2022-02-13 18:36:36 +01:00
sudden6 8bf37994fd chore: add manual trigger to fuzzing builds 2022-02-13 16:01:57 +01:00
sudden6 6400b13754 chore: add continous fuzzing to our CI 2022-02-12 20:19:09 +01:00
Robin Linden dd19856a6c chore: Set up an Android CI job 2022-02-10 23:31:09 +01:00
Maxim Biro e58ee06492 Fix Coverty scan 2022-02-10 10:11:22 -05:00
iphydf 0a2190f28c feat: Add binary packing functions for tox events. 2022-02-07 02:43:24 +00:00
iphydf de4af4c270 feat: Add async event handling (callbacks) code.
Instead of synchronously handling events as they happen in
`tox_iterate`, this first collects all events in a structure and then
lets the client process them. This allows clients to process events in
parallel, since the data structure returned is mostly immutable.

This also makes toxcore compatible with languages that don't (easily)
support callbacks from C into the non-C language.

If we remove the callbacks, this allows us to add fields to the events
without breaking the API.
2022-02-06 17:28:28 +00:00
iphydf 1859d0f44a cleanup: Ensure we limit the system headers included in .h files.
Most system headers contain functions (e.g. `memcpy` in `string.h`)
which aren't needed in our own header files. For the most part, our own
headers should only include types needed to declare our own types and
functions. We now enforce this so we think twice about which headers we
really need in the .h files.
2022-02-04 20:54:37 +00:00
iphydf 71965a0f3b feat: Add WASM build for toxcore and websocket bootstrap node.
The websocket bootstrap node will be running on Heroku.
2022-02-02 16:05:25 +00:00
jfreegman 95d0f5ccbe Use latest toktok-stack msan version 2022-01-31 14:32:50 -05:00
iphydf 2b783c4170 chore: Don't run sonar scan on pull requests.
This reverts commit e3d20afc6a.

It doesn't work.
2022-01-29 16:29:50 +00:00
Robin Linden 2cfa872818 Add a Bazel Buildifier CI job 2022-01-28 00:55:07 +01:00
zugz (tox) 1157e4e68c Separate run_auto_tests into a library 2022-01-25 14:25:36 -05:00
iphydf e3d20afc6a chore: Run sonar scan on pull requests. 2022-01-17 23:23:14 +00:00
iphydf fdadcb0a90 chore: Add a make_single_file script, used for CI.
This will also be used for static analysers that can't deal with multiple
source files.
2022-01-17 21:12:25 +00:00
iphydf 5fbcbb6c83 cleanup: Remove uses of strcpy and sprintf.
Use of `strcpy` in these particular cases was safe, but it's hard to
tell and also useless. `strcpy` would effectively need to do another
`strlen` which we already did.

Also removed sprintf, which was also safe in this case but it's easier to
be "obviously safe", especially for static analysers.
2022-01-17 18:25:40 +00:00
iphydf 8d19757f8e chore: Add mypy Python type check.
Also fix the types in all Python files.
2022-01-14 19:55:37 +00:00
iphydf c81038c963 chore: Add sonar-scan analysis on pushes.
We can't run this on pull requests because it needs access to the
`SONAR_TOKEN` secret. Perhaps in the future we can make it a
`pull_request_target` workflow, but then we can't use cmake to initialise
the environment, meaning we need to specify the inputs manually.
2022-01-14 12:38:35 +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