1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-16 10:14:57 +00:00
serenity/Tests
kleines Filmröllchen 6b13436ef6 LibCore: Introduce SharedSingleProducerCircularQueue
This new class with an admittedly long OOP-y name provides a circular
queue in shared memory. The queue is a lock-free synchronous queue
implemented with atomics, and its implementation is significantly
simplified by only accounting for one producer (and multiple consumers).
It is intended to be used as a producer-consumer communication
datastructure across processes. The original motivation behind this
class is efficient short-period transfer of audio data in userspace.

This class includes formal proofs of several correctness properties of
the main queue operations `enqueue` and `dequeue`. These proofs are not
100% complete in their existing form as the invariants they depend on
are "handwaved". This seems fine to me right now, as any proof is better
than no proof :^). Anyways, the proofs should build confidence that the
implemented algorithms, which are only roughly based on existing work,
operate correctly in even the worst-case concurrency scenarios.
2022-04-21 13:55:00 +02:00
..
AK AK: Disable the HashTable<double> test until UB issue is fixed 2022-04-11 00:11:53 +02:00
Kernel Tests: Make TestEFault not rely on automatic guard pages 2022-04-03 21:51:58 +02:00
LibC Tests: Add a test for printf truncation 2022-04-14 03:12:56 +04:30
LibCompress Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
LibCore LibCore: Introduce SharedSingleProducerCircularQueue 2022-04-21 13:55:00 +02:00
LibCpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
LibCrypto LibCrypto: Add ChaCha20 2022-04-13 09:13:17 +04:30
LibEDID LibEDID: Fix handling extension maps 2022-01-24 19:29:06 +00:00
LibELF Userland+Tests: Convert File::read_link() from String to ErrorOr<String> 2022-03-24 11:57:51 +01:00
LibGfx LibGfx: Move other font-related files to LibGfx/Font/ 2022-04-09 23:48:18 +02:00
LibGL LibGL: Set W-coordinate to 1 in glRect* 2022-04-20 14:12:56 +02:00
LibIMAP Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
LibJS test-js: Define detachArrayBuffer global function 2022-04-08 11:15:16 +01:00
LibM Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
LibMarkdown Everywhere: Move commonmark.spec.json to /home/anon/Tests 2022-03-20 22:20:59 +01:00
LibPDF LibPDF: Add implementation of the Standard security handler 2022-03-29 02:52:57 +02:00
LibPthread LibPthread: Add first test cases for RWlock 2021-09-28 18:36:20 +03:30
LibRegex Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
LibSQL Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
LibTest LibTest: Add EXPECT_NO_CRASH 2021-12-19 14:22:06 -08:00
LibTextCodec Tests: Add a basic UTF-8 to UTF-8 LibTextCodec test 2022-03-29 01:01:32 +02:00
LibThreading Tests: Disable LibThreading detach tests for now 2021-10-06 19:21:35 +02:00
LibTimeZone Everywhere: Update copyrights with my new serenityos.org e-mail :^) 2022-01-31 18:23:22 +00:00
LibTLS LibTLS: Fix TestTLSHandshake by correctly reading the CA certificates 2022-04-17 10:10:19 +04:30
LibTTF LibGfx: Move TTF files from TrueTypeFont/ to Font/TrueType/ 2022-04-09 23:48:18 +02:00
LibUnicode Tests: Add Unicode tests for CharacterType block properties 2022-02-15 10:13:19 -05:00
LibWasm Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
LibWeb Tests: Remove test-web 2022-04-06 19:35:07 +02:00
Spreadsheet LibJS: Add infallible variant of VM::push_execution_context() 2022-03-18 01:12:12 +01:00
UserspaceEmulator Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
CMakeLists.txt Tests: Add a basic UTF-8 to UTF-8 LibTextCodec test 2022-03-29 01:01:32 +02:00