new deploy: 2023-10-01T18:58:03+00:00

This commit is contained in:
Aravinth Manivannan 2023-10-01 18:58:03 +00:00 committed by realaravinth
parent 4f0672a314
commit e297e2bc14
16 changed files with 2188 additions and 1 deletions

View file

@ -34,6 +34,71 @@
<input class="tree-toggle" type="checkbox" id="ftest"
/>
<label class="tree-toggle-label" for="ftest">ftest</label>
<ul class="subtree">
<li >
<a href="https://docs.forgeflux.org/ftest/about/">About ftest</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" <input class="tree-toggle" type="checkbox" id="interface"
checked /> checked />
<label class="tree-toggle-label" for="interface">Interface</label> <label class="tree-toggle-label" for="interface">Interface</label>

View file

@ -34,6 +34,71 @@
<input class="tree-toggle" type="checkbox" id="ftest"
/>
<label class="tree-toggle-label" for="ftest">ftest</label>
<ul class="subtree">
<li >
<a href="https://docs.forgeflux.org/ftest/about/">About ftest</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" <input class="tree-toggle" type="checkbox" id="interface"
/> />
<label class="tree-toggle-label" for="interface">Interface</label> <label class="tree-toggle-label" for="interface">Interface</label>

245
ftest/about/index.html Normal file
View file

@ -0,0 +1,245 @@
<!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 | About 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/about/">About ftest</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="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>
</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>

302
ftest/ftest-toml/index.html Normal file
View file

@ -0,0 +1,302 @@
<!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 | ftest.toml </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 >
<a href="https://docs.forgeflux.org/ftest/about/">About ftest</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 class="active">
<a href="https://docs.forgeflux.org/ftest/ftest-toml/">ftest.toml</a>
</li>
<ul id="toc">
<li><a href="https://docs.forgeflux.org/ftest/ftest-toml/#fest-toml-or-job-manifest">fest.toml or Job Manifest</a>
</li>
<li><a href="https://docs.forgeflux.org/ftest/ftest-toml/#ftest-toml-contents">ftest.toml contents:</a>
<ul>
<li><a href="https://docs.forgeflux.org/ftest/ftest-toml/#1-initialization-code">1. Initialization code</a></li>
<li><a href="https://docs.forgeflux.org/ftest/ftest-toml/#2-test-suite">2. Test Suite</a></li>
<li><a href="https://docs.forgeflux.org/ftest/ftest-toml/#3-tests">3. Tests</a></li>
</ul>
</li>
</ul>
<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">
<h2 id="fest-toml-or-job-manifest"><code>fest.toml</code> or Job Manifest&nbsp;<a class="anchor" href="#fest-toml-or-job-manifest">&#xE732;</a></h2>
<p>Job manifest is defined in <code>ftest.toml</code> file in the specimen's
subdirectory.</p>
<h2 id="ftest-toml-contents">ftest.toml contents:&nbsp;<a class="anchor" href="#ftest-toml-contents">&#xE732;</a></h2>
<p>It can contain information on:</p>
<h3 id="1-initialization-code">1. Initialization code&nbsp;<a class="anchor" href="#1-initialization-code">&#xE732;</a></h3>
<p>The code that needs to be run to prepare the test environment. ftest
runs Docker containers to initialize test environments.</p>
<h4 id="example">Example&nbsp;<a class="anchor" href="#example">&#xE732;</a></h4>
<p><a href="https://git.batsense.net/ForgeFlux/forgejo-init-script">forgejo-init-script</a> performs the following operations in a sequence:</p>
<ol>
<li>Install Forgejo (the binary starts with a web installer that accepts
configuration parameters for database, mailer, etc.)</li>
<li>Create accounts</li>
<li>Create repositories</li>
<li>Create issues</li>
<li>Create access tokens</li>
</ol>
<p>NOTE: Some of these operations are irrelevant, as I (@realaravinth) had nicked them from
another project of mine and was too lazy to modify ;)</p>
<h3 id="2-test-suite">2. Test Suite&nbsp;<a class="anchor" href="#2-test-suite">&#xE732;</a></h3>
<p>A test suite is a collection of tests. For instance, ActivityPub is a
test suite that could include tests for the WebFinger protocol and the
Nodeinfo protocol.</p>
<h3 id="3-tests">3. Tests&nbsp;<a class="anchor" href="#3-tests">&#xE732;</a></h3>
<p>A test is a docker container that tests the
<a href="https://docs.forgeflux.org/ftest/terminology/#specimen">specimen</a> for a specific protocol or
feature.</p>
<h4 id="example-1">Example&nbsp;<a class="anchor" href="#example-1">&#xE732;</a></h4>
<p><a href="https://git.batsense.net/nodeinfo-test">Nodeinfo test</a> is the simplest
test available within ftest at the moment. It tests the specimen's
Nodeinfo implementation against the <a href="https://nodeinfo.diaspora.software/protocol.html">Nodeinfo specification</a>.</p>
<p>Please see <a href="/ftest/tests.md">here</a> for developing new tests.</p>
</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>

43
ftest/index.html Normal file
View file

@ -0,0 +1,43 @@
<html>
<head>
<title>Zola</title>
</head>
<body>
<div class="container">
<h1>Welcome to Zola!</h1>
<p>
You're seeing this page because we couldn't find a template to render.
</p>
<p>
To modify this page, create a <b>section.html</b> file in the templates directory or
<a href="https://www.getzola.org/documentation/themes/installing-and-using-themes/" target="_blank">install a theme</a>.
<br>
You can find what variables are available in this template in the <a href="https:&#x2F;&#x2F;www.getzola.org&#x2F;documentation&#x2F;templates&#x2F;pages-sections&#x2F;#section-variables" target="_blank">documentation</a>.
</p>
</div>
<footer>
<a href="https://www.getzola.org/documentation/getting-started/cli-usage/" target="_blank">Get started with Zola</a>
</footer>
<style>
html {
line-height: 1.5;
}
h1 {
margin-bottom: 2rem;
}
.container {
font-family: "sans-serif";
text-align: center;
margin-top: 20vh;
padding: 2rem;
background: #e9e9e9;
}
footer {
position: fixed;
width: 100%;
bottom: 1rem;
text-align: center;
}
</style>
</body>
</html>

View file

@ -0,0 +1,260 @@
<!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 | Quick Links </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 >
<a href="https://docs.forgeflux.org/ftest/about/">About ftest</a>
</li>
<li >
<a href="https://docs.forgeflux.org/ftest/terminology/">Terminology</a>
</li>
<li class="active">
<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">
<h1 id="quick-links">Quick Links&nbsp;<a class="anchor" href="#quick-links">&#xE732;</a></h1>
<h2 id="repositories">Repositories&nbsp;<a class="anchor" href="#repositories">&#xE732;</a></h2>
<ul>
<li><a href="https://git.batsense.net/ForgeFlux/ftest">Source code</a></li>
<li><a href="https://git.batsense.net/ForgeFlux/ftest-control">Control repository</a></li>
<li><a href="https://git.batsense.net/ForgeFlux/ftest-results">Results repository</a></li>
<li><a href="https://git.batsense.net/ForgeFlux/forgejo-init-script">Forgejo-init-script (Initialization code)</a></li>
</ul>
<h2 id="test-suites">Test suites&nbsp;<a class="anchor" href="#test-suites">&#xE732;</a></h2>
<ul>
<li><a href="https://git.batsense.net/ForgeFlux/webfinger-test">WebFinger</a></li>
<li><a href="https://git.batsense.net/ForgeFlux/nodeinfo-test">Nodeinfo</a></li>
<li><a href="https://git.batsense.net/ForgeFlux/nodeinfo-test">ActivityPub (WIP)</a></li>
</ul>
<h2 id="container-images">Container Images&nbsp;<a class="anchor" href="#container-images">&#xE732;</a></h2>
<ul>
<li><a href="https://hub.docker.com/r/forgeflux/webfinger-test/">WebFinger</a></li>
<li><a href="https://hub.docker.com/r/forgeflux/nodeinfo-test/">Nodeinfo</a></li>
<li><a href="https://hub.docker.com/r/forgeflux/ap-test/">ActivityPub</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>

View file

@ -0,0 +1,302 @@
<!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 | Terminology </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 >
<a href="https://docs.forgeflux.org/ftest/about/">About ftest</a>
</li>
<li class="active">
<a href="https://docs.forgeflux.org/ftest/terminology/">Terminology</a>
</li>
<ul id="toc">
<li><a href="https://docs.forgeflux.org/ftest/terminology/#specimen">Specimen</a>
</li>
<li><a href="https://docs.forgeflux.org/ftest/terminology/#job-manifest">Job Manifest</a>
</li>
<li><a href="https://docs.forgeflux.org/ftest/terminology/#control-repository">Control Repository</a>
<ul>
<li><a href="https://docs.forgeflux.org/ftest/terminology/#directory-structure">Directory structure</a></li>
<li><a href="https://docs.forgeflux.org/ftest/terminology/#specimen-docker-compose-yml">specimen docker-compose.yml</a></li>
</ul>
</li>
</ul>
<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">
<h2 id="specimen">Specimen&nbsp;<a class="anchor" href="#specimen">&#xE732;</a></h2>
<p>A specimen is an ActityPub or a ForgeFed instance that has to be tested
on ftest.</p>
<h2 id="job-manifest">Job Manifest&nbsp;<a class="anchor" href="#job-manifest">&#xE732;</a></h2>
<p>or <code>ftest.toml</code></p>
<p>Contains information on the test environment, initialization code and
the test suites that has to be run on the <a href="/ftest/terminology.md#specimen">specimen</a></p>
<h2 id="control-repository">Control Repository&nbsp;<a class="anchor" href="#control-repository">&#xE732;</a></h2>
<ul>
<li>Flagship instance: <a href="https://forgeflux.org/ForgeFlux/ftest-control">git.batsense.net/ForgeFlux/ftest-control</a></li>
</ul>
<p>A Repository that houses <a href="https://docs.forgeflux.org/ftest/terminology/#job-manifest">job manifests</a>, and Infrastructure-as-Code
(docker-compose, currently) to spin up a test environment containing the
<a href="https://docs.forgeflux.org/ftest/terminology/#specimen">specimen</a>.</p>
<h3 id="directory-structure">Directory structure&nbsp;<a class="anchor" href="#directory-structure">&#xE732;</a></h3>
<p>Each specimen has it's own directory in the control repository:</p>
<pre data-lang="bash" style="background-color:#eff1f5;color:#4f5b66;" class="language-bash "><code class="language-bash" data-lang="bash"><span style="color:#bf616a;">23:50</span><span> atm@lab ftest-control ±|</span><span style="color:#bf616a;">gotosocial</span><span> ✗|</span><span style="color:#bf616a;"></span><span> tree
</span><span>
</span><span style="color:#bf616a;">└──</span><span> targets
</span><span> </span><span style="color:#bf616a;">├──</span><span> forgejo
</span><span> </span><span style="color:#bf616a;"></span><span>   ├── conf
</span><span> </span><span style="color:#bf616a;"></span><span>   │   └── app.ini
</span><span> </span><span style="color:#bf616a;"></span><span>   ├── docker-compose.yml
</span><span> </span><span style="color:#bf616a;"></span><span>   └── ftest.toml
</span><span> </span><span style="color:#bf616a;">└──</span><span> gotosocial
</span><span> </span><span style="color:#bf616a;">├──</span><span> data
</span><span> </span><span style="color:#bf616a;"></span><span>   └── config
</span><span> </span><span style="color:#bf616a;"></span><span>   └── config.yaml
</span><span> </span><span style="color:#bf616a;">├──</span><span> docker-compose.yaml
</span><span> </span><span style="color:#bf616a;">└──</span><span> Dockerfile
</span></code></pre>
<h3 id="specimen-docker-compose-yml">specimen docker-compose.yml&nbsp;<a class="anchor" href="#specimen-docker-compose-yml">&#xE732;</a></h3>
<p>The control repository <em>MUST</em> contain a <code>docker-compose.yml</code> to spin up
the specimen. It may include configuration files in the same directory,
which to docker-compose file can rely on using bind mounts within the container.</p>
</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>

274
ftest/tests/index.html Normal file
View file

@ -0,0 +1,274 @@
<!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 | Tests </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 >
<a href="https://docs.forgeflux.org/ftest/about/">About ftest</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 class="active">
<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">
<p>Tests are Docker containers that test
<a href="https://docs.forgeflux.org/ftest/terminology/#specimen">specimens</a> a very specific protocol
or a feature. They integrate with ftest by accepting configuration
parameters through environment variables and uploading results through a
REST API.</p>
<h2 id="configuration-environment-variables">Configuration (Environment Variables)&nbsp;<a class="anchor" href="#configuration-environment-variables">&#xE732;</a></h2>
<h3 id="auto-generated">Auto-generated&nbsp;<a class="anchor" href="#auto-generated">&#xE732;</a></h3>
<p>Some environment variables are automatically generated by ftest</p>
<table><thead><tr><th>Name</th><th>Purpose</th></tr></thead><tbody>
<tr><td><code>FTEST_AUTH</code></td><td>Authentication token that should be used when uploading results to ftest server. It is ephemeral, and randomly generated for each test.</td></tr>
<tr><td><code>FTEST_HOST</code></td><td>The hostname of the ftest server. Results must be uploaded to here. Will be in format http://ftest:9000</td></tr>
<tr><td><code>FTEST_TARGET_HOST</code></td><td>The hostname of the specimen server. Tests must be run against this hostname. Will be in format http://specimen:8080</td></tr>
</tbody></table>
<h3 id="user-provided">User provided&nbsp;<a class="anchor" href="#user-provided">&#xE732;</a></h3>
<p>There's option to fetch custom environment variables also. Please
specify them in your test's documentation clearly. The README file of
the test is recommended.</p>
<h2 id="results-api">Results API:&nbsp;<a class="anchor" href="#results-api">&#xE732;</a></h2>
<p>A formal OpenAPI specification for the ftest server is yet to be
created. For now, this command should upload test results to the ftest
server:</p>
<pre data-lang="python" style="background-color:#eff1f5;color:#4f5b66;" class="language-python "><code class="language-python" data-lang="python"><span style="color:#b48ead;">def </span><span style="color:#8fa1b3;">upload_logs_to_ftest</span><span>(</span><span style="color:#bf616a;">auth</span><span>, </span><span style="color:#bf616a;">success</span><span>: bool, </span><span style="color:#bf616a;">logs</span><span>: str):
</span><span> ftest = </span><span style="color:#b48ead;">f</span><span>&quot;</span><span style="color:#a3be8c;">http://ftest.example.org/api/v1/</span><span>{auth}</span><span style="color:#a3be8c;">/results</span><span>&quot;
</span><span> payload = {&quot;</span><span style="color:#a3be8c;">success</span><span>&quot;: success, &quot;</span><span style="color:#a3be8c;">logs</span><span>&quot;: logs}
</span><span> res = requests.</span><span style="color:#bf616a;">post</span><span>(
</span><span> ftest, </span><span style="color:#bf616a;">json</span><span>=payload, </span><span style="color:#bf616a;">headers</span><span>={&quot;</span><span style="color:#a3be8c;">Origin</span><span>&quot;: &quot;</span><span style="color:#a3be8c;">http://example.org</span><span>&quot;}
</span><span> )
</span><span> </span><span style="color:#b48ead;">if </span><span>res.status_code == </span><span style="color:#d08770;">200</span><span>:
</span><span> logger.</span><span style="color:#bf616a;">info</span><span>(&quot;</span><span style="color:#a3be8c;">Upload successful</span><span>&quot;)
</span><span> </span><span style="color:#b48ead;">else</span><span>:
</span><span> </span><span style="color:#96b5b4;">print</span><span>(res)
</span><span>
</span><span style="color:#bf616a;">upload_logs_to_ftest</span><span>(&quot;</span><span style="color:#a3be8c;">supersecretauthtoekn_provided_by_ftest</span><span>&quot;, </span><span style="color:#d08770;">True</span><span>, &quot;&quot;)
</span></code></pre>
</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>

View file

@ -0,0 +1,285 @@
<!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 | [Tutorial] Add new specimen </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 >
<a href="https://docs.forgeflux.org/ftest/about/">About ftest</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 class="active">
<a href="https://docs.forgeflux.org/ftest/tutorial-new-specimen/">[Tutorial] Add new specimen</a>
</li>
<ul id="toc">
<li><a href="https://docs.forgeflux.org/ftest/tutorial-new-specimen/#how-to-add-new-specimen">How to add new specimen</a>
<ul>
<li><a href="https://docs.forgeflux.org/ftest/tutorial-new-specimen/#1-fork-the-control-repository">1. Fork the control repository.</a></li>
<li><a href="https://docs.forgeflux.org/ftest/tutorial-new-specimen/#2-create-specimen-subdirectory">2. Create specimen subdirectory</a></li>
<li><a href="https://docs.forgeflux.org/ftest/tutorial-new-specimen/#3-create-docker-compose-yml">3. Create docker-compose.yml:</a></li>
<li><a href="https://docs.forgeflux.org/ftest/tutorial-new-specimen/#4-create-job-manifest">4. Create job manifest</a></li>
</ul>
</li>
</ul>
</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">
<h2 id="how-to-add-new-specimen">How to add new specimen&nbsp;<a class="anchor" href="#how-to-add-new-specimen">&#xE732;</a></h2>
<h3 id="1-fork-the-control-repository">1. Fork the <a href="https://docs.forgeflux.org/ftest/terminology/#control-repository">control repository</a>.&nbsp;<a class="anchor" href="#1-fork-the-control-repository">&#xE732;</a></h3>
<pre style="background-color:#eff1f5;color:#4f5b66;"><code><span>git clone https://git.batsense.net/ForgeFlux/ftest-control
</span></code></pre>
<h3 id="2-create-specimen-subdirectory">2. Create specimen subdirectory&nbsp;<a class="anchor" href="#2-create-specimen-subdirectory">&#xE732;</a></h3>
<p>If <a href="https://docs.forgeflux.org/ftest/terminology/#specimen">specimen</a> doesn't exist within <code>targets/</code> directory, then create subdirectory for it:</p>
<pre data-lang="bash" style="background-color:#eff1f5;color:#4f5b66;" class="language-bash "><code class="language-bash" data-lang="bash"><span style="color:#bf616a;">mkdir</span><span> targets/&lt;insert-specimen-name&gt;
</span><span style="color:#96b5b4;">cd</span><span> targets/&lt;insert-specimen-name&gt;
</span></code></pre>
<h3 id="3-create-docker-compose-yml">3. Create docker-compose.yml:&nbsp;<a class="anchor" href="#3-create-docker-compose-yml">&#xE732;</a></h3>
<pre data-lang="bash" style="background-color:#eff1f5;color:#4f5b66;" class="language-bash "><code class="language-bash" data-lang="bash"><span style="color:#bf616a;">touch</span><span> docker-compose.yml
</span></code></pre>
<p>Populate docker-compose.yml with instructions to spin up a test
environment for the specimen. The specimen's upstream sources
will include a reference docker-compose file should be fine in most cases.</p>
<h3 id="4-create-job-manifest">4. Create job manifest&nbsp;<a class="anchor" href="#4-create-job-manifest">&#xE732;</a></h3>
<p>Job manifest is defined in <code>ftest.toml</code> file in the specimen's
subdirectory. It can contain information on:</p>
<h4 id="initialization-code">Initialization code&nbsp;<a class="anchor" href="#initialization-code">&#xE732;</a></h4>
<p>needs to be run to prepare the test environment.</p>
</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>

View file

@ -34,6 +34,71 @@
<input class="tree-toggle" type="checkbox" id="ftest"
/>
<label class="tree-toggle-label" for="ftest">ftest</label>
<ul class="subtree">
<li >
<a href="https://docs.forgeflux.org/ftest/about/">About ftest</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" <input class="tree-toggle" type="checkbox" id="interface"
/> />
<label class="tree-toggle-label" for="interface">Interface</label> <label class="tree-toggle-label" for="interface">Interface</label>

File diff suppressed because one or more lines are too long

View file

@ -15,6 +15,27 @@
<url> <url>
<loc>https://docs.forgeflux.org/Northstar/about/</loc> <loc>https://docs.forgeflux.org/Northstar/about/</loc>
</url> </url>
<url>
<loc>https://docs.forgeflux.org/ftest/</loc>
</url>
<url>
<loc>https://docs.forgeflux.org/ftest/about/</loc>
</url>
<url>
<loc>https://docs.forgeflux.org/ftest/ftest-toml/</loc>
</url>
<url>
<loc>https://docs.forgeflux.org/ftest/quick-links/</loc>
</url>
<url>
<loc>https://docs.forgeflux.org/ftest/terminology/</loc>
</url>
<url>
<loc>https://docs.forgeflux.org/ftest/tests/</loc>
</url>
<url>
<loc>https://docs.forgeflux.org/ftest/tutorial-new-specimen/</loc>
</url>
<url> <url>
<loc>https://docs.forgeflux.org/updates/</loc> <loc>https://docs.forgeflux.org/updates/</loc>
</url> </url>

View file

@ -34,6 +34,71 @@
<input class="tree-toggle" type="checkbox" id="ftest"
/>
<label class="tree-toggle-label" for="ftest">ftest</label>
<ul class="subtree">
<li >
<a href="https://docs.forgeflux.org/ftest/about/">About ftest</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" <input class="tree-toggle" type="checkbox" id="interface"
/> />
<label class="tree-toggle-label" for="interface">Interface</label> <label class="tree-toggle-label" for="interface">Interface</label>

View file

@ -34,6 +34,71 @@
<input class="tree-toggle" type="checkbox" id="ftest"
/>
<label class="tree-toggle-label" for="ftest">ftest</label>
<ul class="subtree">
<li >
<a href="https://docs.forgeflux.org/ftest/about/">About ftest</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" <input class="tree-toggle" type="checkbox" id="interface"
/> />
<label class="tree-toggle-label" for="interface">Interface</label> <label class="tree-toggle-label" for="interface">Interface</label>

View file

@ -34,6 +34,71 @@
<input class="tree-toggle" type="checkbox" id="ftest"
/>
<label class="tree-toggle-label" for="ftest">ftest</label>
<ul class="subtree">
<li >
<a href="https://docs.forgeflux.org/ftest/about/">About ftest</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" <input class="tree-toggle" type="checkbox" id="interface"
/> />
<label class="tree-toggle-label" for="interface">Interface</label> <label class="tree-toggle-label" for="interface">Interface</label>

View file

@ -34,6 +34,71 @@
<input class="tree-toggle" type="checkbox" id="ftest"
/>
<label class="tree-toggle-label" for="ftest">ftest</label>
<ul class="subtree">
<li >
<a href="https://docs.forgeflux.org/ftest/about/">About ftest</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" <input class="tree-toggle" type="checkbox" id="interface"
/> />
<label class="tree-toggle-label" for="interface">Interface</label> <label class="tree-toggle-label" for="interface">Interface</label>