docs/content/ftest/introduction.md

40 lines
1.8 KiB
Markdown

+++
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)