+++ title = "Introducing ftest" insert_anchor_links = "right" weight = 1 +++ - [Source code](https://git.batsense.net/ForgeFlux/ftest) - Status: Usable - Description: Compliance checker/test runner for [ActivityPub](https://activitypub.rocks) and by extension, [ForgeFed](https://forgefed.org) `ftest` is a compliance checking tool that is similar to [matrix-org/sytest](https://github.com/matrix-org/sytest) but for ActivityPub and ForgeFed. An instance (will be) is hosted by ForgeFlux, that is run on renewable energy. ## Mechanism 1. New jobs are fetched from the [control repository](@/ftest/terminology.md#control-repository). At any given time, ftest will run only one job. Therefore, each commit on the control repository must modify one [specimen](@/ftest/terminology.md#specimen) only. 2. TODO: create `ftest` Docker network (right now, this is done by hand) 3. The specimen test environment is deployed using `docker-compose.yml` available in the test network. The specimen might have dependency services (like a database or a chase), but the specimen service should be added to the `ftest` network. 4. Get a list of initialization workflows from `ftest.toml` and run them sequentially. 5. Run test suites sequentially. A test suite might contain more than one tests, all of them are launched in parallel. They are added to the `ftest` Docker net by the `ftest` server. 6. Wait for tests from previous test to run to completion, collect logs and delete containers. And run next test suite. 7. Aggregate logs and write to [result repository](@/ftest/terminology.md#result-repository). 8. Push result repository. 9. Wait for next test job. ## Quick links - [Add new specimen to ftest](@/ftest/tutorial-new-specimen.md) - [Terminology](@/ftest/terminology.md)