Date: Thu, 26 Feb 2015 19:24:53 -0800 From: Garrett Cooper <yaneurabeya@gmail.com> To: Craig Rodrigues <rodrigc@FreeBSD.org> Cc: "freebsd-testing@freebsd.org" <freebsd-testing@freebsd.org> Subject: Re: Running tests as a developer prior to commit Message-ID: <8E237BF1-E8DB-44D6-BA9F-89E386D0F3C0@gmail.com> In-Reply-To: <CAG=rPVecKLnU%2BPXRiftH7-0HWnoLnA%2B%2Bn0jhWNJdAaesOEqPng@mail.gmail.com> References: <CAPyFy2DKMktGV2yp=u2aesoiGH=s_VMksO_7HkPwmwi6MU3S4Q@mail.gmail.com> <CAG=rPVfvjVor-rt1S1TprOKcfvQL93m8zC4UNq%2BpdqDRcfxqjA@mail.gmail.com> <CAPyFy2AF%2BN=Ju0KmbLhheF94M7X8EOFAOPQN1FH6N213f4MKuQ@mail.gmail.com> <CAG=rPVecKLnU%2BPXRiftH7-0HWnoLnA%2B%2Bn0jhWNJdAaesOEqPng@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
--Apple-Mail=_B5E27DFE-3A9E-4B01-BB52-8A02313317B3 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=windows-1252 On Feb 26, 2015, at 19:17, Craig Rodrigues <rodrigc@FreeBSD.org> wrote: > On Mon, Feb 23, 2015 at 7:20 PM, Ed Maste <emaste@freebsd.org> wrote: >=20 >>=20 >> This is precisely why I'd like to find a way to make it easy to run a >> (rather small) subset of tests, if a developer desires to do so. The >> alternative is that they decide it's too awkward to run the tests, = and >> just don't bother. Even in that case we're still better off today >> (since the Jenkins task will catch it) than we were some time ago >> before consistent test infrastructure existed. But it seems we ought >> to avoid the latency, mailing list churn, and masking effect of a >> broken test run if we can facilitate the developer running a set of >> tests that they've identified. >>=20 >=20 > If I could do: > cd /usr/src/bin/ls/ > make test >=20 > and have it run the unit tests associated with /bin/ls, that would be = a > good start. >=20 > It wouldn't be perfect, because if a change to /bin/ls, affects some = other > test > in /usr/src/usr.bin/foobar/ , this wouldn't catch it. You would have = to do > something > more complicated by building an expert system which can compute the > dependencies > in the tree and run the appropriate tests. But having that is better = than > nothing. >=20 > As far as I understand things, the way the unit tests are integrated = in the > Makefile > infrastructure, the tests need to be staged to /usr/tests/ in order to = be > run. > As part of the staging process, Kyuafiles are generated which are used = as > input > to the "kyua" binary. I don't have any make-fu to know how to = simplify all > of this stuff. >=20 > Well, on a positive note, at least we *are* running the unit tests = every > day as people > commit code, and reporting the results. That's a huge deal. > I've seen large companies who don't do as good a job with this stuff, = so we > are not doing too badly in FreeBSD. >=20 > Over time, I am sure we will improve things with better automation. >=20 > Julio Merino accomplished a huge milestone by getting *any* type of = unit > tests into the FreeBSD source > tree, and integrated with the build. Regularly running the tests = under > automation was the next milestone. >=20 > The next milestone will be making it easier for developers to use. I = think > that the solution > which will be realistically achievable, which people will actually use = and > not rebel over > is some type of test automation hooked into Github pull requests = against > the FreeBSD src tree. Hi, This hook (running tests from a subdir) already exists, but is = incomplete: $ make test *** Using this test does not preclude you from running the tests *** installed in /usr/tests. This test run may raise false *** positives and/or false negatives. *** WARNING: make test is experimental *** *** Using this test does not preclude you from running the tests *** installed in /usr/tests. This test run may raise false *** positives and/or false negatives. kyua: E: Load of '/usr/tests/bin/pkill/Kyuafile' failed: File = '/usr/tests/bin/pkill/Kyuafile' not found. *** Error code 2 Stop. make: stopped in /usr/src.svn/bin/pkill/tests I have code on github which expands make test to install everything to = ${.OBJDIR}, then run the tests. make testworld doesn=92t exist either, so I=92ll work on plumbing that = into the build system, because having to cd into every directory to run = tests is silly. Thanks for the reminder :). --Apple-Mail=_B5E27DFE-3A9E-4B01-BB52-8A02313317B3 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP using GPGMail -----BEGIN PGP SIGNATURE----- Comment: GPGTools - https://gpgtools.org iQEcBAEBCgAGBQJU7+OFAAoJEMZr5QU6S73e8S0H/3TbaLzJbQf7QrcnrFwW0aLR h4RNxQgQQp2DO/OluAZikb6H1WfdxJ074AVRisA+4cFm8kgRKKQ/41jf04fciWXz 2zpMEMyPojD/n++aSiU1kRyaNNk2mAH/hS/6w/1Z9X/0C7ah9/yOWTlJqtATGKOT yXdFchMjqTz1GFLGOJGtLPxPFuuLrnl1JXOFmYpsrZLpkcJhx8LokkPHgcLxrvXm hGRbzOoKtI0dNPy3Z+bgbyCjc95zb/FFN2FBjDFVGtaHv6WthJYIe61LQ8jErWJq wHQ2sEWWr2S4GBspi5eqyC8eq1O1xCs42+5xnWMtSU4x2bx3ZkaAWgaEhn9WV9A= =Bhnx -----END PGP SIGNATURE----- --Apple-Mail=_B5E27DFE-3A9E-4B01-BB52-8A02313317B3--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?8E237BF1-E8DB-44D6-BA9F-89E386D0F3C0>