docs/ftest/introduction/index.html

277 lines
7.7 KiB
HTML

<!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">
<title> Docs | Introducing ftest </title>
</head>
<body>
<main>
<nav>
<a href="https:&#x2F;&#x2F;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">
<a href="https://docs.forgeflux.org/ftest/introduction/">Introducing ftest</a>
</li>
<li >
<a href="https://docs.forgeflux.org/ftest/cli/">Using ftest CLI</a>
</li>
<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>
<h2 id="mechanism">Mechanism&nbsp;<a class="anchor" href="#mechanism">&#xE732;</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>
<h2 id="quick-links">Quick links&nbsp;<a class="anchor" href="#quick-links">&#xE732;</a></h2>
<ul>
<li><a href="https://docs.forgeflux.org/ftest/tutorial-new-specimen/">Add new specimen to ftest</a></li>
<li><a href="https://docs.forgeflux.org/ftest/terminology/">Terminology</a></li>
</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>