summaryrefslogtreecommitdiff
path: root/tests/meson.build
AgeCommit message (Collapse)Author
10 daysReplace the writer spin lock with a blocking mutexBerke Güzel
term_write_begin spun on an atomic sequence word. A waiter burned CPU, and with no priority inheritance a SCHED_FIFO waiter could starve a preempted holder on the same CPU. The writer section is now a pthread mutex with PTHREAD_PRIO_INHERIT where the platform has it, and an SRWLOCK on Windows. Re-entry on the owning thread still only counts the depth. The platform wrapper (init, lock, unlock, destroy) is in compat.h. term_new initializes the mutex, and term_free destroys it. Meson links the thread library into the core, term_dep, and term_internal_dep. The README, term.h, and the amalgamation note say that POSIX needs -pthread. Tests: the feed and snapshot thread test now checks the final screen and history against a serial reference. A new test checks that term_lock nests and that another thread waits for the last term_unlock. Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
10 daysFix snapshot storage and allocation failure correctnessBerke Güzel
Account for cluster records discarded by snapshot scrolling, propagate snapshot allocation failures with an empty retryable view, and allocate resized screens before mutating visible state. Add bounded-memory and allocation-failure regressions, and update the saved diagnostic and audit report.
12 daysMake term standalone library and export Meson dependenciesBerke Güzel
13 daysFix macOS builds on Apple Silicon and IntelBerke Güzel
13 daysterm: fix the two Kitty suite failures and run the suite by defaultBerke Güzel
Both failures were stale expectations in our copy of the suite. 8c2464c moved the terminal to xterm behavior and added spec tests for it. The Kitty bridge did not compile then, so nobody updated the suite. - A cursor report with a pending wrap gives the last column (1;5). Kitty gives the start of the next line. - HT only moves the cursor. Kitty writes a tab cell, which erases the text under the tab. REP after the tab then repeats nothing. The suite went weeks without running, because it needed -Dkitty_tests=true. Now every unsanitized Linux build runs it in the unit suite, and the main option only makes it mandatory. The README lists the deliberate differences from Kitty. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
13 daysterm: move the term core to subprojects/termBerke Güzel
The core now builds, tests, and benchmarks alone, as a Meson subproject with no dependency on the main tree. - include/term/ holds term.h and the header-only unicode/. src/ holds the core and its private headers. The main tree gets only include/term through term_dep, so it cannot reach a private header. - The term tests, the term benchmarks, the Kitty parser suite, and tools/amalgamate.py and tools/generate_unicode.py move with it. The tests run as term:<name>. - The main build passes its -march (arch_flag) and b_ndebug to the subproject. A directory configured before this commit needs meson configure -Dterm:arch_flag=-march=... once. - The term tests compile with -UNDEBUG. They do work inside assert. - The subproject exports term_test_dep with term_api.h, for the main tree's render, thumbnail, color, and selection tests. - The Kitty bridge used struct vector2i and has not compiled since the public API redesign. It builds again. 2 of its 14 tests fail: REP after a tab, and a cursor report after a resize. - dirgraph.py drops the term and unicode layers. Its self-test uses pty. - The symbols test ignores the __odr_asan symbols that ASan adds. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>