2023-10-02 00:28:03 +05:30
<!DOCTYPE HTML>
< html >
< head >
< meta charset = "UTF-8" >
< link rel = "stylesheet" href = "https://docs.forgeflux.org/main.css" >
< link rel = "icon" href = "https://forgeflux.org/favicon.ico" >
< meta name = "viewport" content = "width=device-width, initial-scale=1.0, maximum-scale=1" >
2023-10-05 02:48:19 +05:30
< title > Docs | Introducing ftest < / title >
2023-10-02 00:28:03 +05:30
< / head >
< body >
< main >
< nav >
< a href = "https://docs.forgeflux.org" >
< img src = "/logo.svg" alt = "" / >
< / a >
< a href = "javascript:void(0);" onclick = "burger()" id = "mobile" class = "ms-Icon--GlobalNavButton" > < / a >
< div id = "trees" >
< input class = "tree-toggle" type = "checkbox" id = "ftest"
checked />
< label class = "tree-toggle-label" for = "ftest" > ftest< / label >
< ul class = "subtree" >
< li class = "active" >
2023-10-05 02:48:19 +05:30
< a href = "https://docs.forgeflux.org/ftest/introduction/" > Introducing ftest< / a >
2023-10-02 00:28:03 +05:30
< / li >
2023-10-02 13:16:01 +05:30
2023-10-02 00:28:03 +05:30
2023-10-05 02:48:19 +05:30
< li >
< a href = "https://docs.forgeflux.org/ftest/cli/" > Using ftest CLI< / a >
< / li >
2023-10-02 00:28:03 +05:30
< li >
< a href = "https://docs.forgeflux.org/ftest/terminology/" > Terminology< / a >
< / li >
< li >
< a href = "https://docs.forgeflux.org/ftest/quick-links/" > Quick Links< / a >
< / li >
< li >
< a href = "https://docs.forgeflux.org/ftest/ftest-toml/" > ftest.toml< / a >
< / li >
< li >
< a href = "https://docs.forgeflux.org/ftest/tests/" > Tests< / a >
< / li >
< li >
< a href = "https://docs.forgeflux.org/ftest/tutorial-new-specimen/" > [Tutorial] Add new specimen< / a >
< / li >
< / ul >
< input class = "tree-toggle" type = "checkbox" id = "interface"
/>
< label class = "tree-toggle-label" for = "interface" > Interface< / label >
< ul class = "subtree" >
< li >
< a href = "https://docs.forgeflux.org/Interface/about/" > About Interface< / a >
< / li >
< / ul >
< input class = "tree-toggle" type = "checkbox" id = "northstar"
/>
< label class = "tree-toggle-label" for = "northstar" > Northstar< / label >
< ul class = "subtree" >
< li >
< a href = "https://docs.forgeflux.org/Northstar/about/" > About Northstar< / a >
< / li >
< / ul >
< input class = "tree-toggle" type = "checkbox" id = "updates"
/>
< label class = "tree-toggle-label" for = "updates" > Updates< / label >
< ul class = "subtree" >
< li >
< a href = "https://docs.forgeflux.org/updates/december2020/" > December 2020< / a >
< / li >
< li >
< a href = "https://docs.forgeflux.org/updates/november2020/" > November 2020< / a >
< / li >
< li >
< a href = "https://docs.forgeflux.org/updates/october2020/" > October 2020< / a >
< / li >
< li >
< a href = "https://docs.forgeflux.org/updates/september2020/" > September 2020< / a >
< / li >
< / ul >
< / div >
< / nav >
< article >
< div id = "on_right" >
< span id = "search-ico" class = "ms-Icon--Search" > < / span >
< / div >
< div class = "search-container" >
< input id = "search" type = "search" placeholder = "Search as you type..." >
< div class = "search-results" >
< div class = "search-results__header" > < / div >
< ul class = "search-results__items" > < / ul >
< / div >
< / div >
< div id = "wrap" >
< ul >
< li > < a href = "https://git.batsense.net/ForgeFlux/ftest" > Source code< / a > < / li >
< li > Status: Usable< / li >
< li > Description: Compliance checker/test runner for < a href = "https://activitypub.rocks" > ActivityPub< / a > and by
extension, < a href = "https://forgefed.org" > ForgeFed< / a > < / li >
< / ul >
< p > < code > ftest< / code > is a compliance checking tool that is similar to
< a href = "https://github.com/matrix-org/sytest" > matrix-org/sytest< / a > but for ActivityPub and ForgeFed.< / p >
< p > An instance (will be) is hosted by ForgeFlux, that is run on renewable
energy.< / p >
2023-10-02 13:16:01 +05:30
< h2 id = "mechanism" > Mechanism < a class = "anchor" href = "#mechanism" >  < / a > < / h2 >
< ol >
< li > New jobs are fetched from the < a href = "https://docs.forgeflux.org/ftest/terminology/#control-repository" > control repository< / a > . At any given time, ftest will run only one job. Therefore, each commit on the control repository must modify one < a href = "https://docs.forgeflux.org/ftest/terminology/#specimen" > specimen< / a > only.< / li >
< li > TODO: create < code > ftest< / code > Docker network (right now, this is done by hand)< / li >
< li > The specimen test environment is deployed using < code > docker-compose.yml< / code >
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 < code > ftest< / code > network.< / li >
< li > Get a list of initialization workflows from < code > ftest.toml< / code > and run them
sequentially.< / li >
< li > 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 < code > ftest< / code > Docker net by the < code > ftest< / code > server.< / li >
< li > Wait for tests from previous test to run to completion, collect logs
and delete containers. And run next test suite.< / li >
< li > Aggregate logs and write to < a href = "https://docs.forgeflux.org/ftest/terminology/#result-repository" > result repository< / a > .< / li >
< li > Push result repository.< / li >
< li > Wait for next test job.< / li >
< / ol >
2023-10-02 00:28:03 +05:30
< h2 id = "quick-links" > Quick links < a class = "anchor" href = "#quick-links" >  < / a > < / h2 >
< ul >
< li > < a href = "https://docs.forgeflux.org/ftest/tutorial-new-specimen/" > Add new specimen to ftest< / a > < / li >
2023-10-02 13:16:01 +05:30
< li > < a href = "https://docs.forgeflux.org/ftest/terminology/" > Terminology< / a > < / li >
2023-10-02 00:28:03 +05:30
< / ul >
< / div >
< / article >
< / main >
< script type = "text/javascript" src = "https://docs.forgeflux.org/elasticlunr.min.js" defer > < / script >
< script type = "text/javascript" src = "https://docs.forgeflux.org/search_index.en.js" defer > < / script >
< script type = "text/javascript" src = "https://docs.forgeflux.org/js.js" defer > < / script >
< / body >
< / html >