<div dir="ltr">I am one hundred percent support this proposal. <div><br></div><div>Just to clarify, did you consider <a href="https://github.com/kward/shunit2/">shunit2</a> [<a href="https://github.com/kward/shunit2/">1</a>] as a unittest framework for Bash? It seems a little bit closer to shell scripting itself, so you don't need to learn another syntax to write unittests.<div><br></div><div>--</div><div>Best regards,</div><div>Oleg Gelbukh</div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jul 9, 2015 at 11:12 AM, Bartlomiej Piotrowski <span dir="ltr"><<a href="mailto:bpiotrowski@mirantis.com" target="_blank">bpiotrowski@mirantis.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi all,<br><br>as hopefully everyone knows, it's very challenging to prove that Bash encourages<br>writing readable, maintainable code that actually works first time it is run.<br>Sadly we have quite a long history of merging various shell scripts without any<br>test coverage.<br><br>Fortunately Peter Zhurba bore with me and we decided to use bats[1] to test his<br>fuel-migrate[2] script. Obviously it's close to impossible to properly code that<br>uses ssh or rsync, but it's good enough for functions that take some arbitrary<br>data and return another set.<br><br>As we have quite a long history of merging various bash scripts without any test<br>coverage, I'd like to introduce more formal rule requiring engineers to ship any<br>bash code longer than 100 lines with unit tests. BATS tests are not currently run<br>by our CI, but we're getting there[3].<br><br>My TL;DR skills are nowhere close to Dmitry Borodaenko's but let me try: bash is<br>terrible so let's do our best to make it work as we want it to.<br><br>What is your opinion?<br><br>Bartłomiej Piotrowski<br><br>[1] <a href="https://github.com/sstephenson/bats" target="_blank">https://github.com/sstephenson/bats</a><br>[2] <a href="https://review.openstack.org/#/c/198355/2" target="_blank">https://review.openstack.org/#/c/198355/2</a><br>[3] <a href="https://review.fuel-infra.org/#/c/9130/" target="_blank">https://review.fuel-infra.org/#/c/9130/</a><br></div>
<br>__________________________________________________________________________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
<br></blockquote></div><br></div>