40 lines
1.8 KiB
Markdown
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)
|