Re: GerH source distro at hebbut.net: HOW TO compile/compare/merge for Bill et al
Paolo <[email protected]>
| Newsgroups | gmane.mail.spam.crm114 |
|---|---|
| Message-ID | <20080401213925.GZ25908@localhost> |
On Tue, Apr 01, 2008 at 01:24:46PM -0400, Bill Y wrote: > However- how can we test the system if big chunks of it are optional, > unless the test system itself gets dynamically reconfigured to only > test things that ought to be there? yes, that's usual for many apps that offer configurability and provide a (compile time) test suite. > This sort of complication is why conditionalizing builds is not something > I enjoy. but it helps to design better tests and better sort out problems. Hopely. The current case of NN blowing up test run time is one such case. > I am also unconvinced that there is very much savings in the idea of > leaving out some classifiers. The binaries just aren't that big think of openssl, ssh: you choose which cypher you want in - no sense to include IDEA if you know you won't ever use it; think of Linux kernel, no sense to compile in VIA chipset support for the kernel for your Inte chipset notebook, and so on - it's the general good practice of keeping things as modular as possible. Un- needed/wanted code may undermine stability and/or security of the installed binary, beside small or big size/startup penalties, for no good reasons. > And megatest.sh should skip those excluded. > Better yet, megatest.sh should be splitted in eg. > - regex_test.sh > - ... ... > I tried that once. What I ended up with was lots and lots of little > files that were very hard to maintain. In short, the testability > got worse and maintainability got MUCH WORSE. well, I realized that current test suite is already as I described, except that we dont' have .sh but .crm scriptlets. What's missing is the per-test timing and the conditional run logic. It'd be fairly easy, if crm -h would say which classifiers/modules are available, eg: !trap "rm -f _test_block.sh" 1 2 3 4 8 9 11 13 15 ... !if ./crm114 -h | grep -w SVM; then ! cat <<__F > _test_block.sh !<svm test block> !__F ! time -f "SVM: real %e user %U sys %S" ash _test_block.sh ! rm -f _test_block.sh !fi (in a portable way, of course) -- paolo ------------------------------------------------------------------------- Check out the new SourceForge.net Marketplace. It's the best place to buy or sell services for just about anything Open Source. http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace