Commit Graph

12 Commits

Author SHA1 Message Date
58002409ff test(functests): migration/MUC/timestamp tests, group rebalancing
All checks were successful
CI Code / Check spelling (pull_request) Successful in 24s
CI Code / Check coding style (pull_request) Successful in 41s
CI Code / Linux (ubuntu) (pull_request) Successful in 6m56s
CI Code / Linux (debian) (pull_request) Successful in 7m0s
CI Code / Code Coverage (pull_request) Successful in 7m5s
CI Code / Linux (arch) (pull_request) Successful in 9m29s
Add 11 new export/import tests (24 → 35): 4 MUC database, 3 timestamp
verification, 3 migration stress, 1 LMC correction with negative assert.

Add delay-stamp timestamp checks to 5 base tests via /time chat set
iso8601 and /history on (previously passed by accident from PTY buffer).

Replace magic numbers: NEGATIVE_ASSERT_TIMEOUT, MIN_ELAPSED_INIT.
Add per-test slow/fast thresholds and TZ override (prof_test_tz).

Rebalance groups by whole logical blocks (spread 46s → 3s):
G1=52s G2=50s G3=53s G4=53s. All 129 tests pass.
2026-03-19 19:05:36 +03:00
0d38a0a2cb test: add database stress tests (14 tests, rapid writes, large messages, LMC chains, dedup)
All checks were successful
CI Code / Check spelling (pull_request) Successful in 17s
CI Code / Check coding style (pull_request) Successful in 31s
CI Code / Code Coverage (pull_request) Successful in 4m1s
CI Code / Linux (debian) (pull_request) Successful in 5m38s
CI Code / Linux (ubuntu) (pull_request) Successful in 5m39s
CI Code / Linux (arch) (pull_request) Successful in 6m7s
2026-03-12 18:58:52 +03:00
06463b75b4 style: apply clang-format and const qualifiers from master 2026-03-12 18:52:00 +03:00
9f3020e40a Add functional and unit tests for DB export/import
- 2 functional tests: export_sqlite_to_flatfile, import_flatfile_to_sqlite
  with XEP-0203 delay timestamps for deterministic verification
- 27 unit tests for database_export covering edge cases
- Merge test/db-functional-tests: 12 DB persistence tests (test_history)
- Group 2 rebalanced: 25 tests (23 base + 2 SQLite-only export/import)
- #ifdef HAVE_SQLITE guards for export/import tests
- prof_stop() helper in proftest.c
- Makefile.am: source ordering cleanup, new test files added
2026-03-12 18:46:42 +03:00
85c817ee8c ci: speed up builds 4x with parallel tests, coverage, and ccache
All checks were successful
CI Code / Check spelling (push) Successful in 18s
CI Code / Check coding style (push) Successful in 31s
CI Code / Code Coverage (push) Successful in 15m25s
CI Code / Linux (debian) (push) Successful in 15m57s
CI Code / Linux (ubuntu) (push) Successful in 16m0s
CI Code / Linux (arch) (push) Successful in 16m6s
Split functional tests into 4 parallel groups and add check-functional-parallel target (~3x faster CI runs).
Add branch-aware LCOV coverage reporting with new --enable-coverage option and lcov summary in CI pipeline.
Enable ccache via -C configure flag for faster recompilations.
Install lcov in all Docker images and use --depth 1 git clones + parallel make -j$(nproc) for quicker container builds.
Update CONTRIBUTING.md with instructions for parallel test groups and adding new ones.

All changes are tightly related CI/performance improvements developed in sequence. No external service uploads (e.g. Codecov skipped due to Gitea incompatibility).
2026-01-21 16:35:17 +01:00
2d7de2caf6 refactor(tests): replace libexpect with forkpty() for PTY handling
- Remove dependency on libexpect/tcl
- Implement native PTY handling with forkpty()
- Add prof_output_exact/regex for flexible output matching
- Improve timeout handling and synchronization
2026-01-07 11:46:40 +01:00
ike08
d35a7a7f7e Refactor tests to use the new cmocka test runner
## Summary

Fixes https://github.com/profanity-im/profanity/issues/1907  

Update functional and unit test code to comply with the current cmocka test runner.  

## Changes

- `UnitTest` struct to `CMUnitTest` struct
- `unit_test()` macro to `cmocka_unit_test(f)` macro
- `unit_test_setup_teardown()` macro to `cmocka_unit_test_setup_teardown` macro
- `run_tests()` macro to `cmocka_run_group_tests()` function
- Setup and teardown functions return `int` instead of `void`

## Testing

### Unit Tests

`make check`

### Functional Tests

I did not compile or run functional tests because they are *shelved* for now.

### Valgrind

I'm not entirely sure how to fun Valgrind in this case. I did not do fancy memory management, so it should be fine.
2023-11-01 18:30:08 -06:00
Michael Vetter
693fdcce65 functest: Make char const 2020-10-15 10:12:33 +02:00
James Booth
69ac809776 Added functional tests for /console command 2015-12-30 00:32:52 +00:00
James Booth
f9a7e35001 Added id attributes to roster queries
fixes #596
2015-07-22 22:48:37 +01:00
James Booth
a48b9fcec2 Tidied functional tests 2015-06-13 19:41:11 +01:00
James Booth
68ed20f10d Moved all tests to tests folder 2015-06-12 23:53:30 +01:00