<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Architecture and contributing on Tinkerbus</title><link>https://tinkerbus.org/docs/architecture/</link><description>Recent content in Architecture and contributing on Tinkerbus</description><generator>Hugo</generator><language>en</language><atom:link href="https://tinkerbus.org/docs/architecture/index.xml" rel="self" type="application/rss+xml"/><item><title>Testing</title><link>https://tinkerbus.org/docs/architecture/testing/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tinkerbus.org/docs/architecture/testing/</guid><description>&lt;h2 id="go-tests"&gt;Go tests&lt;/h2&gt;&#10;&lt;p&gt;&lt;code&gt;go test ./...&lt;/code&gt; runs the tests of all packages. Most packages have unit tests next to the code&#10;(&lt;code&gt;*_test.go&lt;/code&gt;): the protocol frames, datapoint types, project reading, editing and saving, group address exchange,&#10;parameter handling, the routing calculation and the send gate.&lt;/p&gt;&#10;&lt;p&gt;Test data lives in the repository:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;code&gt;internal/project/testdata/&lt;/code&gt; has &lt;code&gt;plain.knxproj&lt;/code&gt; and &lt;code&gt;protected.knxproj&lt;/code&gt; with the sources and a build script.&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;internal/knxprod/testdata/&lt;/code&gt; has &lt;code&gt;sample.knxprod&lt;/code&gt; and &lt;code&gt;dummy.knxprod&lt;/code&gt; with their sources and build scripts.&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;internal/download/testdata/&lt;/code&gt; has about 35 capture fixtures.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="reference-downloads"&gt;Reference downloads&lt;/h2&gt;&#10;&lt;p&gt;The device load plans are tested against &lt;strong&gt;recorded reference downloads&lt;/strong&gt;. A fixture is a text file of what a download&#10;sent to a device: load control, property and memory writes, function property commands and the restart, in the format&#10;&lt;code&gt;knxcap -fixture&lt;/code&gt; prints. The tests (&lt;code&gt;capture_*_test.go&lt;/code&gt;) build the plan for the same device and settings and require&#10;that it equals the fixture, step by step and octet by octet. There is one family of tests per mask:&#10;&lt;code&gt;capture_test.go&lt;/code&gt; (&lt;code&gt;0x0021&lt;/code&gt;), &lt;code&gt;capture_m112_test.go&lt;/code&gt; (&lt;code&gt;0x0705&lt;/code&gt;), &lt;code&gt;capture_sysb_test.go&lt;/code&gt; (&lt;code&gt;0x07B0&lt;/code&gt;),&#10;&lt;code&gt;capture_router_test.go&lt;/code&gt; (&lt;code&gt;0x091A&lt;/code&gt;), &lt;code&gt;capture_bcu1_test.go&lt;/code&gt; (&lt;code&gt;0x0012&lt;/code&gt;) and &lt;code&gt;capture_partial_test.go&lt;/code&gt; for partial&#10;downloads.&lt;/p&gt;</description></item><item><title>Contributing</title><link>https://tinkerbus.org/docs/architecture/contributing/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tinkerbus.org/docs/architecture/contributing/</guid><description>&lt;p&gt;Tinkerbus is early and welcomes help, in particular from people with KNX devices and installations the author does not&#10;have.&lt;/p&gt;&#10;&lt;h2 id="the-repository"&gt;The repository&lt;/h2&gt;&#10;&lt;p&gt;The source lives on &lt;a href="https://git.tinkerbus.org/"&gt;git.tinkerbus.org&lt;/a&gt;. A written contribution process does not exist yet.&#10;Problems and requests go to the &lt;a href="https://git.tinkerbus.org/tinkerbus/tinkerbus/issues/new"&gt;issue tracker&lt;/a&gt;. Until a contribution&#10;process exists, you can also reach the maintainer at &lt;a href="mailto:lukas@matt.wf"&gt;lukas@matt.wf&lt;/a&gt;.&lt;/p&gt;&#10;&lt;h2 id="report-a-problem"&gt;Report a problem&lt;/h2&gt;&#10;&lt;p&gt;Open an issue on the tracker above. The application can prepare one for a &lt;a href="../../gui/reports-to-the-project/"&gt;missing product or an unsupported&#10;device&lt;/a&gt;. Useful reports contain:&lt;/p&gt;</description></item></channel></rss>