<p>Harald Welte <strong>merged</strong> this change.</p><p><a href="https://gerrit.osmocom.org/10709">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Jenkins Builder: Verified
  Harald Welte: Looks good to me, approved

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">add ttcn3 test suites slides from OsmoDevCon 2018<br><br>Those slides are copied from http://git.gnumonks.org/laforge-slides/plain/2018/osmodevcon2018-ttcn3_test_suites/<br>to make sure they are more easily found.  It would be nice to convert<br>them into an actual asciidoc book with one chapter per test suite which<br>would be built from within this repository.   This way we can keep<br>documentation and code better in sync.<br><br>Change-Id: I8a0d66babc165678ec53a1ee1c673e93708b8b79<br>---<br>A doc/osmodevcon2018-ttcn3_test_suites.adoc<br>1 file changed, 296 insertions(+), 0 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/doc/osmodevcon2018-ttcn3_test_suites.adoc b/doc/osmodevcon2018-ttcn3_test_suites.adoc</span><br><span>new file mode 100644</span><br><span>index 0000000..6eaee82</span><br><span>--- /dev/null</span><br><span>+++ b/doc/osmodevcon2018-ttcn3_test_suites.adoc</span><br><span>@@ -0,0 +1,296 @@</span><br><span style="color: hsl(120, 100%, 40%);">+Osmocom TTCN-3 Test Suites</span><br><span style="color: hsl(120, 100%, 40%);">+==========================</span><br><span style="color: hsl(120, 100%, 40%);">+:author:    Harald Welte <laforge@gnumonks.org></span><br><span style="color: hsl(120, 100%, 40%);">+:copyright:  2018 by Harald Welte (License: CC-BY-SA)</span><br><span style="color: hsl(120, 100%, 40%);">+:backend:     slidy</span><br><span style="color: hsl(120, 100%, 40%);">+:max-width:      45em</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+== Osmocom TTCN-3 Test Suites</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* developed in 2017+2018</span><br><span style="color: hsl(120, 100%, 40%);">+* compiled using Eclipse TITAN</span><br><span style="color: hsl(120, 100%, 40%);">+** uses just a command-line compiler + Makefiles</span><br><span style="color: hsl(120, 100%, 40%);">+** no IDE needed at all, don't let _Eclipse_ fool you</span><br><span style="color: hsl(120, 100%, 40%);">+* containerized in Docker</span><br><span style="color: hsl(120, 100%, 40%);">+* executed by Jenkins CI</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+== Terminology</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ATS:: Abstract Test Suite</span><br><span style="color: hsl(120, 100%, 40%);">+MTC:: Main Test Component</span><br><span style="color: hsl(120, 100%, 40%);">+PTC:: Parallel Test Component</span><br><span style="color: hsl(120, 100%, 40%);">+IUT:: Implementation Under Test</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+== Test Suite Philosophy</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* test one network element (our IUT)</span><br><span style="color: hsl(120, 100%, 40%);">+* test external behavior (3GPP and non-3GPP)</span><br><span style="color: hsl(120, 100%, 40%);">+* emulate entire environment from TTCN-3</span><br><span style="color: hsl(120, 100%, 40%);">+* don't reuse Osmocom C-code protocol implementations in the tests</span><br><span style="color: hsl(120, 100%, 40%);">+* test against independent TTCN-3 implementations!</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+== What to test?</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* successful cases</span><br><span style="color: hsl(120, 100%, 40%);">+* erroneous cases (no answer, NACK, ...)</span><br><span style="color: hsl(120, 100%, 40%);">+** many difficult to reproduce with real phones/devices</span><br><span style="color: hsl(120, 100%, 40%);">+* load / resource exhaustion</span><br><span style="color: hsl(120, 100%, 40%);">+* spec compliance</span><br><span style="color: hsl(120, 100%, 40%);">+* focus on functionality actually relevant to IUT</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+== Why TTCN-3 + TITAN</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* TTCN-3 specifically designed for telecom protocol testing</span><br><span style="color: hsl(120, 100%, 40%);">+* TITAN team released many telecom protocols in TTCN-3, such as</span><br><span style="color: hsl(120, 100%, 40%);">+** BSSAP, L3 (RR/MM/CC), SMS (CP/RP/TP), SS, M3UA, SCCP, GTP, NS, BSSGP, ...</span><br><span style="color: hsl(120, 100%, 40%);">+** shortens our test development cycle</span><br><span style="color: hsl(120, 100%, 40%);">+** permits us to test against known working industry implementations</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+== Test suites for Osmocom CNI components</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* `osmo-bts`</span><br><span style="color: hsl(120, 100%, 40%);">+* `osmo-bsc`</span><br><span style="color: hsl(120, 100%, 40%);">+* `osmo-msc`</span><br><span style="color: hsl(120, 100%, 40%);">+* `osmo-mgw`</span><br><span style="color: hsl(120, 100%, 40%);">+* `osmo-hlr`</span><br><span style="color: hsl(120, 100%, 40%);">+* `osmo-sip-connector`</span><br><span style="color: hsl(120, 100%, 40%);">+* `osmo-sgsn`</span><br><span style="color: hsl(120, 100%, 40%);">+* `osmo-ggsn`</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+== Test suites in progress</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* `osmo-pcu`</span><br><span style="color: hsl(120, 100%, 40%);">+* `osmo-bsc_nat`</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+== BTS_Tests.ttcn</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* external interfaces</span><br><span style="color: hsl(120, 100%, 40%);">+** A-bis side: RSL (emulates BSC-side server)</span><br><span style="color: hsl(120, 100%, 40%);">+** Um side: L1CTL to control MS</span><br><span style="color: hsl(120, 100%, 40%);">+** PCU side: pcu_socket</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[graphviz]</span><br><span style="color: hsl(120, 100%, 40%);">+----</span><br><span style="color: hsl(120, 100%, 40%);">+digraph G {</span><br><span style="color: hsl(120, 100%, 40%);">+  rankdir=LR;</span><br><span style="color: hsl(120, 100%, 40%);">+  { rank=same; BTS, BSC};</span><br><span style="color: hsl(120, 100%, 40%);">+  BTS [label="IUT\nosmo-bts-trx",shape="box"];</span><br><span style="color: hsl(120, 100%, 40%);">+  ATS [label="ATS\nBTS_Tests.ttcn"];</span><br><span style="color: hsl(120, 100%, 40%);">+  BSC [label="osmo-bsc\nOML only"];</span><br><span style="color: hsl(120, 100%, 40%);">+  BTS -> fake_trx [label="bursts"];</span><br><span style="color: hsl(120, 100%, 40%);">+  fake_trx -> trxcon [label="bursts"];</span><br><span style="color: hsl(120, 100%, 40%);">+  trxcon -> ATS [label="bursts"];</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  BTS -> BSC [label="A-bis OML"];</span><br><span style="color: hsl(120, 100%, 40%);">+  BTS -> ATS [label="A-bis RSL"];</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  ATS -> BTS [label="pcu_sock"];</span><br><span style="color: hsl(120, 100%, 40%);">+  ATS -> BSC [label="VTY"];</span><br><span style="color: hsl(120, 100%, 40%);">+  ATS -> BTS [label="CTRL"];</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+----</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+== BSC_Tests.ttcn</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* external interfaces</span><br><span style="color: hsl(120, 100%, 40%);">+** A-bis side: RSL (emulates BTS-side client)</span><br><span style="color: hsl(120, 100%, 40%);">+** A-side: BSSAP/SCCP/M3UA (emulates MSC-side)</span><br><span style="color: hsl(120, 100%, 40%);">+** MGW side: MGCP (emulates MGW side)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[graphviz]</span><br><span style="color: hsl(120, 100%, 40%);">+----</span><br><span style="color: hsl(120, 100%, 40%);">+digraph G {</span><br><span style="color: hsl(120, 100%, 40%);">+  rankdir=LR;</span><br><span style="color: hsl(120, 100%, 40%);">+  { rank=same; BTS; STP; };</span><br><span style="color: hsl(120, 100%, 40%);">+  BSC [label="IUT\nosmo-bsc",shape="box"];</span><br><span style="color: hsl(120, 100%, 40%);">+  ATS [label="ATS\nBSC_Tests.ttcn"];</span><br><span style="color: hsl(120, 100%, 40%);">+  BTS [label="osmo-bts-omldummy\nOML only"];</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  BTS -> BSC [label="A-bis OML"];</span><br><span style="color: hsl(120, 100%, 40%);">+  ATS -> BSC [label="A-bis RSL"];</span><br><span style="color: hsl(120, 100%, 40%);">+  ATS -> BSC [label="CTRL"];</span><br><span style="color: hsl(120, 100%, 40%);">+  ATS -> BSC [label="VTY"];</span><br><span style="color: hsl(120, 100%, 40%);">+  ATS -> STP [label="A BSSAP\nSCCP/M3UA"];</span><br><span style="color: hsl(120, 100%, 40%);">+  BSC -> STP [label="A BSSAP\nSCCP/M3UA"];</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+----</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+== MSC_Tests.ttcn</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* external interfaces</span><br><span style="color: hsl(120, 100%, 40%);">+** A: BSSAP/SCCP/M3UA (emulates BSC-side)</span><br><span style="color: hsl(120, 100%, 40%);">+** MNCC: MNCC/unix-domain (emulates ext. MNCC side)</span><br><span style="color: hsl(120, 100%, 40%);">+** MGW: MGCP (emulates MGW side)</span><br><span style="color: hsl(120, 100%, 40%);">+** GSUP (emulates HLR side)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[graphviz]</span><br><span style="color: hsl(120, 100%, 40%);">+----</span><br><span style="color: hsl(120, 100%, 40%);">+digraph G {</span><br><span style="color: hsl(120, 100%, 40%);">+  rankdir=LR;</span><br><span style="color: hsl(120, 100%, 40%);">+  MSC [label="IUT\nosmo-msc",shape="box"];</span><br><span style="color: hsl(120, 100%, 40%);">+  ATS [label="ATS\nMSC_Tests.ttcn"];</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  ATS -> MSC [label="MNCC"];</span><br><span style="color: hsl(120, 100%, 40%);">+  ATS -> MSC [label="SMPP",style="dashed"];</span><br><span style="color: hsl(120, 100%, 40%);">+  ATS -> MSC [label="CTRL"];</span><br><span style="color: hsl(120, 100%, 40%);">+  ATS -> MSC [label="VTY"];</span><br><span style="color: hsl(120, 100%, 40%);">+  MSC -> ATS [label="GSUP"];</span><br><span style="color: hsl(120, 100%, 40%);">+  ATS -> STP [label="A BSSAP\nSCCP/M3UA"];</span><br><span style="color: hsl(120, 100%, 40%);">+  MSC -> STP [label="A BSSAP\nSCCP/M3UA"];</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+----</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+== MGCP_Test.ttcn</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* external interfaces</span><br><span style="color: hsl(120, 100%, 40%);">+** MGCP (emulates call agent)</span><br><span style="color: hsl(120, 100%, 40%);">+** RTP (stream source/sink)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[graphviz]</span><br><span style="color: hsl(120, 100%, 40%);">+----</span><br><span style="color: hsl(120, 100%, 40%);">+digraph G {</span><br><span style="color: hsl(120, 100%, 40%);">+  rankdir=LR;</span><br><span style="color: hsl(120, 100%, 40%);">+  MGW [label="IUT\nosmo-mgw",shape="box"];</span><br><span style="color: hsl(120, 100%, 40%);">+  ATS [label="ATS\nMGCP_Test.ttcn"];</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  ATS -> MGW [label="RTP"];</span><br><span style="color: hsl(120, 100%, 40%);">+  ATS -> MGW [label="MGCP"];</span><br><span style="color: hsl(120, 100%, 40%);">+  MGW -> ATS [label="RTP"];</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+----</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+== HLR_Tests.ttcn</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* external interfaces</span><br><span style="color: hsl(120, 100%, 40%);">+** GSUP (emulates VLR/SGSN side)</span><br><span style="color: hsl(120, 100%, 40%);">+** VTY</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[graphviz]</span><br><span style="color: hsl(120, 100%, 40%);">+----</span><br><span style="color: hsl(120, 100%, 40%);">+digraph G {</span><br><span style="color: hsl(120, 100%, 40%);">+  rankdir=LR;</span><br><span style="color: hsl(120, 100%, 40%);">+  HLR [label="IUT\nosmo-hlr",shape="box"];</span><br><span style="color: hsl(120, 100%, 40%);">+  ATS [label="ATS\nHLR_Tests.ttcn"];</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  ATS -> HLR [label="GSUP"];</span><br><span style="color: hsl(120, 100%, 40%);">+  ATS -> HLR [label="VTY"];</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+----</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+== SIP_Tests.ttcn</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* external interfaces</span><br><span style="color: hsl(120, 100%, 40%);">+** MNCC (emulates MSC side)</span><br><span style="color: hsl(120, 100%, 40%);">+** SIP (emulates SIP switch)</span><br><span style="color: hsl(120, 100%, 40%);">+** VTY</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[graphviz]</span><br><span style="color: hsl(120, 100%, 40%);">+----</span><br><span style="color: hsl(120, 100%, 40%);">+digraph G {</span><br><span style="color: hsl(120, 100%, 40%);">+  rankdir=LR;</span><br><span style="color: hsl(120, 100%, 40%);">+  SIP [label="SIP\nosmo-sip-connector",shape="box"];</span><br><span style="color: hsl(120, 100%, 40%);">+  ATS [label="ATS\nSIP_Tests.ttcn"];</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  ATS -> SIP [label="MNCC"];</span><br><span style="color: hsl(120, 100%, 40%);">+  ATS -> SIP [label="SIP"];</span><br><span style="color: hsl(120, 100%, 40%);">+  ATS -> SIP [label="VTY"];</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+----</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+== SGSN_Tests.ttcn</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* external interfaces</span><br><span style="color: hsl(120, 100%, 40%);">+** Gb (emulates PCU side NS/BSSGP + MS)</span><br><span style="color: hsl(120, 100%, 40%);">+** GSUP (emulates HLR)</span><br><span style="color: hsl(120, 100%, 40%);">+** VTY</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[graphviz]</span><br><span style="color: hsl(120, 100%, 40%);">+----</span><br><span style="color: hsl(120, 100%, 40%);">+digraph G {</span><br><span style="color: hsl(120, 100%, 40%);">+  rankdir=LR;</span><br><span style="color: hsl(120, 100%, 40%);">+  SGSN [label="SGSN\nosmo-sgsn",shape="box"];</span><br><span style="color: hsl(120, 100%, 40%);">+  ATS [label="ATS\nSGSN_Tests.ttcn"];</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  ATS -> SGSN [label="Gb"];</span><br><span style="color: hsl(120, 100%, 40%);">+  SGSN-> ATS [label="Gp (GTP)"];</span><br><span style="color: hsl(120, 100%, 40%);">+  ATS -> SGSN [label="VTY"];</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+----</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+== GGSN_Tests.ttcn</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* external interfaces</span><br><span style="color: hsl(120, 100%, 40%);">+** Gp: GTP (emulates SGSN)</span><br><span style="color: hsl(120, 100%, 40%);">+** Gi: IP (emulates Internet)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[graphviz]</span><br><span style="color: hsl(120, 100%, 40%);">+----</span><br><span style="color: hsl(120, 100%, 40%);">+digraph G {</span><br><span style="color: hsl(120, 100%, 40%);">+  rankdir=LR;</span><br><span style="color: hsl(120, 100%, 40%);">+  GGSN [label="GGSN\nosmo-ggsn",shape="box"];</span><br><span style="color: hsl(120, 100%, 40%);">+  ATS [label="ATS\nGGSN_Tests.ttcn"];</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  ATS -> GGSN [label="Gp (GTP)"];</span><br><span style="color: hsl(120, 100%, 40%);">+  GGSN -> ATS [label="Gi (IP)"];</span><br><span style="color: hsl(120, 100%, 40%);">+  ATS -> GGSN [label="VTY"];</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+----</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+== Dockerized Setup</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* one process per container</span><br><span style="color: hsl(120, 100%, 40%);">+* packages either</span><br><span style="color: hsl(120, 100%, 40%);">+** IUT (e.g. `osmo-bsc`)</span><br><span style="color: hsl(120, 100%, 40%);">+** ATS (compiled docker test suite)</span><br><span style="color: hsl(120, 100%, 40%);">+** other utility (e.g. `trxcon` or `osmo-bts-omldummy`)</span><br><span style="color: hsl(120, 100%, 40%);">+* why?</span><br><span style="color: hsl(120, 100%, 40%);">+** no need for local ip/network configuration</span><br><span style="color: hsl(120, 100%, 40%);">+** standardized / packaged setup on every machine</span><br><span style="color: hsl(120, 100%, 40%);">+** run older/newer versions of ATS against older/newer IUT</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+== Jenkins CI Execution</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+. update `docker-playground.git`</span><br><span style="color: hsl(120, 100%, 40%);">+.. contains `Dockerfile` for ATS + IUT</span><br><span style="color: hsl(120, 100%, 40%);">+. rebuild IUT container[s] (e.g. `osmo-bts-master`)</span><br><span style="color: hsl(120, 100%, 40%);">+.. git magic ensures re-build only if `osmo-bts.git` master changed</span><br><span style="color: hsl(120, 100%, 40%);">+. rebuild ATS container (e.g. `ttcn3-bts-test`)</span><br><span style="color: hsl(120, 100%, 40%);">+.. git magic ensures re-build only if `osmo-ttcn3-hacks.git` master changed</span><br><span style="color: hsl(120, 100%, 40%);">+. run `docker-playground/ttcn3-bts-test/jenkins.sh`</span><br><span style="color: hsl(120, 100%, 40%);">+.. creates docker network</span><br><span style="color: hsl(120, 100%, 40%);">+.. starts IUT + ATS docker containers</span><br><span style="color: hsl(120, 100%, 40%);">+.. collects test results</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+== Jenkins CI Reporting</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* junit-xml generation</span><br><span style="color: hsl(120, 100%, 40%);">+* store artefacts</span><br><span style="color: hsl(120, 100%, 40%);">+** pcap file of every test case</span><br><span style="color: hsl(120, 100%, 40%);">+** ATS log file (TTCN-3 testsuite)</span><br><span style="color: hsl(120, 100%, 40%);">+** IUT log file[s] (`osmo-*.log`)</span><br><span style="color: hsl(120, 100%, 40%);">+** IUT config file[s] (`osmo-*.cfg`)</span><br><span style="color: hsl(120, 100%, 40%);">+* see https://jenkins.osmocom.org/jenkins/view/TTCN3/</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+== Further Reading</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* http://git.osmocom.org/osmo-ttcn3-hacks/</span><br><span style="color: hsl(120, 100%, 40%);">+* http://git.osmocom.org/docker-playground/</span><br><span style="color: hsl(120, 100%, 40%);">+* http://osmocom.org/projects/cellular-infrastructure/wiki/Titan_TTCN3_Notes</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+== EOF</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+End of File</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/10709">change 10709</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/10709"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-ttcn3-hacks </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: merged </div>
<div style="display:none"> Gerrit-Change-Id: I8a0d66babc165678ec53a1ee1c673e93708b8b79 </div>
<div style="display:none"> Gerrit-Change-Number: 10709 </div>
<div style="display:none"> Gerrit-PatchSet: 2 </div>
<div style="display:none"> Gerrit-Owner: Harald Welte <laforge@gnumonks.org> </div>
<div style="display:none"> Gerrit-Reviewer: Harald Welte <laforge@gnumonks.org> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder (1000002) </div>
<div style="display:none"> Gerrit-CC: Vadim Yanitskiy <axilirator@gmail.com> </div>