Hi Cyril, On Mon, Jul 23, 2018 at 10:04:34PM +0200, Cyril Bonté wrote: > Some monthes ago, I began writing a compilation test script for haproxy, but > as you may have noticed, I was not very available recently ;-)
Oh it happens to all of us unfortunately :-/ > I should be > more available now. I'll try to finish this little work as it would have > detected such type of error. Great! > The script parses the Makefile to find all USE_* settings and performs a > compilation test for each one. I still have some work to do to prepare some > compilations (dependencies like slz, deviceatlas, 51degrees, ...), but it > looks to be already useful. I've now added DEBUG=-DDEBUG_FULL in the > compilation options. > > The main issue is that it takes hours on the tiny atom server I wanted to > use for that job. But well, on my laptop it takes less that 2 minutes : > that's acceptable, I've added it in the git hooks so it is executed each > time I fetch commits from the repository. Nice! A full build takes around 3-5 seconds on the build farm I have at the office (I extended the initial distcc farm with the load generators). > Some ideas for future versions : > - randomly mix USE_* options: for example, it would have triggered an error > to indicate an incompatbility between USE_DEVICEATLAS and USE_PCRE2. I tend to think that randomly mixing settings will not detect much in fact. If you have 20 settings, you have 1 million combinations. If a few of them are incompatible, you'll very rarely meet them. However you may face some which are expected to fail. Some very likely make sense and probably just need to be hard-coded, especially once they have been reported to occasionally fail. In the end you'll have less combinations with a higher chance to detect failures by having just an iteration over all settings one at a time and a selected set of combinations. At least that's how I see it :-) > - use different SSL libs/versions Good point! I've done this a few times when we touched ssl_sock.c and that's definitely needed. Cheers, Willy

