Commit Graph

47 Commits

Author SHA1 Message Date
iphydf
662c2140f3
test: Add goblint static analyser. 2024-01-24 23:31:00 +00:00
iphydf
97bdd83937
refactor: Make event dispatch ordered by receive time. 2024-01-15 16:32:10 +00:00
Green Sky
acdc67387b
fix(ci): window builds now build in parallel
Co-authored-by: Maxim Biro <nurupo.contributions@gmail.com>
2024-01-14 10:01:35 -05:00
iphydf
05ce5c1ab9
test: Add "infer" CI check to github, remove from circle.
This now uses our own built image with the current master of infer.
2024-01-09 10:59:53 +00:00
iphydf
b148a2afff
chore: Simplify msvc build using vcpkg. 2024-01-06 12:27:31 +00:00
iphydf
5407384211
cleanup: Use github actions matrix to simplify CI. 2023-12-27 14:39:17 +00:00
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
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
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
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
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
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
68f4e5c0fa
chore: Simplify and speed up windows builds using docker image. 2022-02-19 00:47:37 +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
Robin Linden
dd19856a6c
chore: Set up an Android CI job 2022-02-10 23:31:09 +01: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
jfreegman
95d0f5ccbe
Use latest toktok-stack msan version 2022-01-31 14:32:50 -05: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
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
8d19757f8e
chore: Add mypy Python type check.
Also fix the types in all Python files.
2022-01-14 19:55:37 +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
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
Robin Linden
fe7b467df4
Add a GH Actions code coverage job 2022-01-06 16:39:48 +01: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
iphydf
8ce2ae0fcb
chore: Add macOS build. 2021-12-28 23:28:48 +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
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
iphydf
78c26e3c0d
chore: Move cmake-freebsd-stage2 back into the toxcore repo.
This is more likely to change with the code so should live here, not in
dockerfiles.
2021-12-21 14:43:02 +00:00
iphydf
656c7692a3
chore: Add FreeBSD build to CI. 2021-12-20 23:57:16 +00:00
iphydf
9e659e6577
chore: Add cross compilation CI targets.
To test the cross compilation dockerfile.
2021-12-20 01:47:05 +00:00
iphydf
5c1796d3c4
chore: Use docker for the autotools ci build.
This makes it easier to run it locally for testing and ensures the
dockerfile continues to work.
2021-12-14 15:51:51 +00:00
iphydf
5c53e6a30f
chore: Add autotools build; exempt crypto_pwhash from tokstyle. 2021-12-13 18:47:45 +00:00