Peter Rabbitson [Wed, 10 Jun 2015 14:18:01 +0000]
Make sure tests still pass in a fork-limited environment
Inspired by a temporarily stuck smoker
http://www.cpantesters.org/cpan/report/
751da1f2-e3ff-11e4-a1d1-8536eb4f9f07
Read under -w
Peter Rabbitson [Thu, 28 May 2015 08:00:26 +0000]
(travis) Better shuffling of the prereq installation order
Peter Rabbitson [Wed, 10 Jun 2015 01:59:55 +0000]
(travis) Improve the "Did it really install?" check
Peter Rabbitson [Tue, 9 Jun 2015 23:48:26 +0000]
(travis) Double check M::B::T is not pulled in (related to
a872a9d7)
Peter Rabbitson [Sun, 7 Jun 2015 11:49:50 +0000]
Add Schmorp's "stable perl" fork to the smoke rosters
A note on motivation: I personally fully support Marc Lehmann's assertion
that the current direction of the perl5 development effort leaves a lot to
be desired (put in the mildest terms possible). The amount of changes[1]
necessary to get a *very* widely used module working again, and the failure
of the original authors to abandon the problematic direction *on their own*
is nothing short of an embarrassment. I fully recognize the reason why Marc
elected to attempt to maintain a fork (a nontrivial long-term commitment),
instead of engaging in another round of politicking and downright begging.
The inclusion of "stability perl" in the DBIC full-test matrix is the very
least I can do to support this effort.
--ribasushi
[1] http://stableperl.schmorp.de/dist/stableperl-5.22.0-1.001.diff
Peter Rabbitson [Sun, 7 Jun 2015 11:26:45 +0000]
More excision of POSIX::import() calls (similar to
247c80fb)
Also some readability shuffling (zero functional changes)
Dagfinn Ilmari Mannsåker [Wed, 3 Jun 2015 20:40:06 +0000]
Stop importing all the POSIX functions
The only one used is called fully-qualified anyway
Dagfinn Ilmari Mannsåker [Wed, 27 May 2015 07:39:58 +0000]
Fix t/storage/quote_names.t failures, caused by lazily built sqlmaker
While the entire test is written badly (it ought to use the OptDeps system)
it would be too much churn to fix it properly for little benefit. Additionally
there is a very good chance that the shortener will become a core dep in the
near future, hence the entire point will soon be moot anyway --ribasushi
Peter Rabbitson [Mon, 4 May 2015 13:44:00 +0000]
(optdeps) Explicitly force group names to lower-case (for now)
Peter Rabbitson [Mon, 27 Apr 2015 09:01:29 +0000]
(optdeps) Rename an inconsistent 'icdt' marker to 'ic_dt' before we've shipped it
Peter Rabbitson [Mon, 27 Apr 2015 08:54:21 +0000]
(optdeps) Skip-spec brainfart in offline mysql/pg test specs
The _-prefix played a role in an earlier deficient implementation, which
was later thrown away. Make the relevant tests require-lines saner
Peter Rabbitson [Wed, 20 May 2015 19:02:47 +0000]
Fix forgotten 'unless' tripped by
05a5ca4b (introduced in c863e102)
Why was this never detected? Because the deparse differs *only* on 5.10.[01]
IFF compiled without -DDebugging. I hate everything
Peter Rabbitson [Wed, 20 May 2015 14:11:39 +0000]
Add extra (passing) test for operations on sourceless results
This should have been committed with
84b1ec108, reevaluated while reading
through
cb909f39c of GH#78
Peter Rabbitson [Wed, 20 May 2015 13:25:06 +0000]
Replace all instances of ; in the rowparser loop with , ( ~15% speedup )
The functional diff best examined via `... --color-words -w lib ...`
This is another microoptimization, which is nevertheless measurable on 1000+
row resultsets. Investigation into this was prompted by a curious comment made
by bulk88[1] in response to xdg[2]:
Every ";" is an op that executes that adjusts current line number
Given that we already generate all this code, and it is not intended to be
read by a human, swapping ; with , is only logical. A (very very crude) check
with the included benchmarker indeed shows a repeatable difference on 5.16.2
[1] http://www.nntp.perl.org/group/perl.perl5.porters/2015/05/msg228074.html
[2] http://www.nntp.perl.org/group/perl.perl5.porters/2015/05/msg228068.html
Peter Rabbitson [Tue, 3 Mar 2015 23:06:47 +0000]
Rewrite collapsing parser while loop (mere op-level golf)
Peter Rabbitson [Thu, 26 Feb 2015 13:22:39 +0000]
The encode-and-substitute in the generator is not necessary since
a8f62ee08
Peter Rabbitson [Thu, 26 Feb 2015 12:51:49 +0000]
Rewrite the collapsing rowparser pigeonholing logic
Instead of dynamically determining whether to use the data as a key directly,
always compose a list of copied 'row ids' and use that in all operations.
This is mainly done to stop dualvar-ing of numeric variables returned by the
engine, thus confusing JSON and similar serializers down the road
Peter Rabbitson [Tue, 19 May 2015 03:49:48 +0000]
Make sure tests pass without a compiler present (another step to RT#74706)
Peter Rabbitson [Tue, 19 May 2015 05:49:18 +0000]
(travis) Simplify some steps - no longer needed for various reasons
Peter Rabbitson [Tue, 19 May 2015 12:30:03 +0000]
(travis) Correctly detect CI on github forks
Peter Rabbitson [Wed, 13 May 2015 07:06:42 +0000]
(travis) Enhance sterilization to work on < 5.12 as well
This is a terrible but effective hack - we can semi-safely nuke anything OptDeps
knows about, as long as it has never been part of core
Peter Rabbitson [Sun, 3 May 2015 21:18:35 +0000]
(travis) Peg Module::Install - new versions deps on autodie, which is 5.8.4+
The actual problem is actually couple-notches-older than the peg - the autodie
use got introduced in tests at 1.14 (Oct 2014), but I never noticed it as I
install M::I with notest.
While autodie might be fixable, it's a distraction at this moment, and besides
the M::I builder is about to be retired anyway. Punting.
Peter Rabbitson [Sun, 19 Apr 2015 05:51:47 +0000]
(travis) *FINALLY* remove Module::Build::Tiny front-loading
Peter Rabbitson [Thu, 30 Apr 2015 16:53:25 +0000]
This is no longer necessary after
4068e05f
Peter Rabbitson [Mon, 27 Apr 2015 10:23:34 +0000]
Fix corner case of stringify-only overloaded values
Just a trivial cleanup, uncovered during the de-Path::Class work
Peter Rabbitson [Tue, 7 Apr 2015 12:34:59 +0000]
Post-last touchups to 00describe_environment.t
- Display the contents of @INC, making it even easier to follow sourcing
- Add support for (site|vendor)lib_stem (whatever that is)
- Add support for (site|vendor)prefix
- Add support for ./blib/(lib|arch)
- Add support for an explicit CWD marker
Peter Rabbitson [Mon, 6 Apr 2015 15:57:52 +0000]
One last touch of describe_environment: explain missing checksum
kentnl++
Peter Rabbitson [Mon, 6 Apr 2015 11:38:40 +0000]
Further enhance 00describe_environment.t:
- Explicitly report expected but failed-to-load modules
- Add knowledge of './t' => T, under same rules as LIB
- When no sourcing is found - report the @INC index if possible
- If a module came from {SVP}{AL}, list it even if no version is defined
Peter Rabbitson [Sun, 5 Apr 2015 12:41:56 +0000]
Add an explicit DateTime::TimeZone::OlsonDB optdep
It happens to lazy-load a lot of extra modules, which both hides them from the
t/00describe_encironment lister *and* messes with preforking.
Peter Rabbitson [Sun, 5 Apr 2015 11:52:11 +0000]
Rewrite dependency lister from - now produces *much* easier to read output
Knowing where a module came from is quite valuable, but the segmentation done
in
cebc0cc8 makes it rather hard finding a particular module. Instead add
an extra prefix with shorthand "dirs of interest" names, and putput the entire
list in ci-alphabetical order.
Additionally make sure we explicitly print out our versions under CI (a silly
omission from earlier), and explicitly omit loading dist_* optdeps
While the diff is massive, the actual logic did not change in any significant
way.
Peter Rabbitson [Fri, 3 Apr 2015 13:06:04 +0000]
(travis) More robust post-success test cycle run (enhancements over
bf44bdb9)
- Make sure it always runs in parallel
- Make sure we do not drag in SQLT/Moose after sitelib purge
Peter Rabbitson [Fri, 3 Apr 2015 11:30:27 +0000]
Make sure plain install with DBICTEST_VIA_REPLICATED works
This is an omission from
8b60b921, unnoticed all the way until bf44bdb9
Peter Rabbitson [Fri, 3 Apr 2015 22:18:39 +0000]
Fix missing handling of on_(dis)connect* failures
Time for a short story (see last paragraph for TL;DR): Some hours ago an
innocent question was asked in the #dbix-class channel, apparently
related to a mysterious failure to determine the RDBMS version. Before I
was able to properly investigate the problem, someone else piped up with
"Oh I've seen this before, and I worked around it". That was of course
without telling anyone else </headdesk>
After a little back and forth it became apparent that if the on_connect
settings could not be executed for whatever reason, the result may be an
implicitly failed connection attempt which is *entirely undetected* as
it leaves the original $dbh in place with some or all of the on_connect
instructions not having executed as expected.
To reiterate: if one manages to:
* supply a malformed on_connect*
and then
* call as the first order of business some codepath that can mask away
the connection failure (say ->deploy under sqlite)
then the result is a $schema with a proper $dbh in the storage instance,
but *without* some (or all) of the on_connect instructions having been
executed. As a bonus the actual call to get e.g. the RDBMS metadata (like
version etc) will have failed completely silently as well. Arguably a
rather problematic bug.
The above and by extension an issue with silent on_disconnect* failures
are bith fixed by this commit. This was possible *only* because the
second person came into the channel and reported it, instead of silently
fixing things and moving on to whatever they were doing.
Moreover while preparing the (relatively modest) patch to fix this issue,
a small refactor revealed a pretty serious bug in the XS accessor provider
Class::XSAccessor: https://rt.cpan.org/Ticket/Display.html?id=103296
Yes, it took about 3 hours to diagnose this and hunt down an isolated
failcase, but the bug severety (and its elegance) are totally worth it.
Moral of the story: *PLEASE* report issues upstream. Even if you figured
out a quick workaround, the devs still need to know about the problem you
did encounter in the first place. Bugs that nobody knows about can *NOT*
be fixed, and our software commons can not improve. So *PLEASE* speak up.
Peter Rabbitson [Fri, 3 Apr 2015 22:14:00 +0000]
Minor code reformat, to shorten the diff of next commit
Zero functional changes, read under -w
Peter Rabbitson [Fri, 3 Apr 2015 12:55:24 +0000]
Update Changes with stuff already shipped to CPAN as v0.082810 and v0.082820
Kent Fredric [Thu, 2 Apr 2015 11:54:19 +0000]
Do not load PadWalker at all on plain installs
Avoids a SEGV on perls with unusual compilation options
Georgina Thevenet [Fri, 27 Mar 2015 18:35:54 +0000]
(travis) Add explicit sudo:true to .travis.yml
The 'sudo' setting now defaults to false on establishing of new github=>travis
linkages, so the CI runs will fail for anyone who wants to smoke their own
fork.
Peter Rabbitson [Fri, 3 Apr 2015 06:52:22 +0000]
(travis) Much lighter CI runs when smoking a PR
Peter Rabbitson [Thu, 2 Apr 2015 00:52:56 +0000]
(travis) Enhance post-success to run a full CPAN install cycle
This is as much a check for our installability, as it is a smoke of CPAN.pm
Peter Rabbitson [Thu, 2 Apr 2015 08:13:40 +0000]
(travis) Refactor the NUMTHREADS codepaths, rename variable (see next commit)
Peter Rabbitson [Thu, 2 Apr 2015 00:41:11 +0000]
(travis) Factor out sitelib cleaner, we will call it more than once soon
Peter Rabbitson [Thu, 2 Apr 2015 00:37:19 +0000]
(travis) Restore proper post-success testing
The functionality was silently lost due to TravisCI issue #3533
Peter Rabbitson [Wed, 1 Apr 2015 20:52:41 +0000]
Fix incorrect optdep output introduced in
34d2deae / 31c31b8d
Too many thinkos for a simple feature like this. When given "foo" cpanm
actually tries to find '"foo"' on CPAN, and nothing works. The original
thinking was that the > in ~>= needs escaping when copy/pasted by a user, so
the ""-enclosing seemed like a valid approach. Of course this does not work
at all when the output is piped into cpanm directly:
perl -Ilib -MDBIx::Class::Optional::Dependencies=-list_missing,deploy | cpanm
Moreover, all of the above is *utterly unnecessary*, as Foo~>=2 is entirely
equivalent to Foo~2, which requires no escaping (thus quoting) whatsoever.
Hopefully this is the end of the embarrassing flailing on this feature :(
Peter Rabbitson [Thu, 2 Apr 2015 01:04:24 +0000]
(travis) Revert backout of ODBC firebird testing
aa0e82a2
It seems that sourceforge got their act together (for now)
Dagfinn Ilmari Mannsåker [Wed, 1 Apr 2015 17:52:22 +0000]
Work around Firebird/InterBase/ODBC crash in tests
If DBD::Firebird and DBD::InterBase are used in the same process, the
last one loaded leaves an active statement handle around and later
segfaults at some point in the tests. Also, if DBD::ODBC is used
before either of them, they leak the handle but don't segfault.
Thus, to avoid breaking installing DBIC if more than one of
DBICTEST_FIREBIRD(_INTERBASE|ODBC)?_DSN is set, skip Interbase if any
of the others are set, and make sure to run the ODBC test last.
However, keep the leak-triggering order for author, CI and smoker
runs, so we don't forget that it needs fixing.
Peter Rabbitson [Sat, 28 Mar 2015 07:22:48 +0000]
(travis) Cut down the amount of APT repos during updates
Sometimes things outside of ubuntu's control go down, and the entire smoke
will crash and burn for reasons completely unrelated to what we are doing
Alex Beamish [Wed, 4 Sep 2013 17:45:39 +0000]
Examples and documentation update and cleanup
This version updates the original POD with slightly more information
so that more DBIx::Class functionality is revealed. The source code is
removed from POD, and instead the reader is directed to the examples
directory.
It also changes the example schema from silly auto-inferred column
names to proper *id-suffixed ones.
Alastair McGowan-Douglas [Fri, 7 Nov 2014 17:00:21 +0000]
Inflators are not respected by find() (being a ResultSet method)
Adjust docs and add an extra IC::DT-specific FAQ section
Karen Etheridge [Wed, 8 Oct 2014 19:42:49 +0000]
Cross-reference alias with current_source_alias
(slightly modified
4e4b848d)
Mike Wisener [Tue, 30 Sep 2014 03:58:59 +0000]
Clarify load_namespaces call -- more than one call can be made
Robert Stone [Sat, 27 Dec 2014 19:19:10 +0000]
Added add_columns documentation about controlling float precision
C.J. Adams-Collier [Mon, 2 Mar 2015 19:41:31 +0000]
Linked "prefetch" in columns documentation
Ingy döt Net [Tue, 3 Mar 2015 19:29:39 +0000]
Example doesn't work without 'year' column
Henry Van Styn [Wed, 29 Oct 2014 13:25:33 +0000]
Fix uninitialized warnings on empty hashes passed to join/prefetch
Peter Rabbitson [Wed, 18 Mar 2015 12:15:45 +0000]
(travis) Better handle ENV poisoning, get jobs under 4mb limit again
Peter Rabbitson [Wed, 18 Mar 2015 12:41:22 +0000]
(travis) Revert LMU pin
df604e83d
Peter Rabbitson [Tue, 17 Mar 2015 15:31:56 +0000]
Run the entire test suite under replicated SQLite on DBICTEST_VIA_REPLICATED
There isn't real replication, the reader and writer in fact talk to the same
on-disk file. Still this is effective enough to put into CI.
Peter Rabbitson [Tue, 17 Mar 2015 15:21:47 +0000]
Fix exception on complex update/delete under a replicated setup
THIS COMMIT IS A HACK!!! The actual fix is migration of the logic to the
SQLMaker subclass and deal with it there. However the entire class hierarchy
is currently in flux, so go with the least invasive change until the storage
rewrite settles.
Testing for this will show up in the next commit
Peter Rabbitson [Tue, 17 Mar 2015 15:09:44 +0000]
Some stylistic test changes in preparation for next commits
There are zero functional changes - everything has to do with making sure
we are not blindly poking into storage objects which may be changed to
delegates AND to make sure we do not leave any open cursors, which would show
up as deadlocks on multiple connections to the same SQLite file
Read under -w
Peter Rabbitson [Wed, 18 Mar 2015 08:25:15 +0000]
(travis) Temporary pin LMU, work around RT#102853
Peter Rabbitson [Tue, 17 Mar 2015 12:06:13 +0000]
Fix test suite to work again with DBICTEST_SQLITE_USE_FILE
It was never included as part of POISON_ENV and subsequently lapsed. Sigh.
Peter Rabbitson [Tue, 17 Mar 2015 11:29:18 +0000]
Clarify name of guard function from
3d56e026, add it globally
Instead of just marking all my DESTROYs with the function, just add it to a
base class, thus capturing *everything* there is to find. Yes it will be a
tad slower. And yes it will have a massive benefit to any DBIC user happening
to be caught in an unfriendly app-space
Peter Rabbitson [Mon, 16 Mar 2015 14:56:53 +0000]
'undef =>' isn't what one would want
Peter Rabbitson [Fri, 13 Mar 2015 12:43:08 +0000]
Relax sanity check in _resolve_relationship_condition
It doesn't buy much and breaks legitimate class redirection techniques
(some of them even documented in the cookbook)
Peter Rabbitson [Thu, 12 Mar 2015 10:06:09 +0000]
Forgotten test adjustment in
bd510251
Peter Rabbitson [Thu, 12 Mar 2015 09:27:36 +0000]
The real workaround for txn_scope_guard being called twice
Silently fixing this up is nothing short of irresponsible, hence the
elaborate detection and alert mechanism
Peter Rabbitson [Mon, 9 Mar 2015 10:25:42 +0000]
Remove erroneous undefer introduced in
8d73fcd4 (confuses old perls in END)
While it is important to check this during namespace cleansing checks, it
actually makes no difference whatsoever during leaktests - things will either
be closed over and thus seen, or they won't be
Peter Rabbitson [Thu, 26 Feb 2015 22:25:39 +0000]
Get the leaktest to work with Test::More-(hopefully-not)-to-be
Peter Rabbitson [Thu, 12 Mar 2015 09:36:47 +0000]
Fix brainfart from
cb551b07 - 'if' is still a module, don't need it
Also rewrite the load pattern test to be saner
Peter Rabbitson [Wed, 11 Mar 2015 04:54:34 +0000]
Merge branch 'current/for_cpan_index' into current/blead
Peter Rabbitson [Thu, 5 Mar 2015 23:39:00 +0000]
More desc_env fixes: Win32 lib matching, and better formatting of final diag
This is what the slash-situation is on a typical strawberry:
'inc' => [
'C:/Strawberry/perl/site/lib/MSWin32-x64-multi-thread',
'C:/Strawberry/perl/site/lib',
'C:/Strawberry/perl/vendor/lib',
'C:/Strawberry/perl/lib',
'.'
],
'archlib' => 'C:\\STRAWB~1\\perl\\lib',
'archlibexp' => 'C:\\STRAWB~1\\perl\\lib',
'privlib' => 'C:\\STRAWB~1\\perl\\lib',
'privlibexp' => 'C:\\STRAWB~1\\perl\\lib',
'sitearch' => 'C:\\STRAWB~1\\perl\\site\\lib',
'sitearchexp' => 'C:\\STRAWB~1\\perl\\site\\lib',
'sitelib' => 'C:\\STRAWB~1\\perl\\site\\lib',
'sitelibexp' => 'C:\\STRAWB~1\\perl\\site\\lib',
'vendorarch' => 'C:\\STRAWB~1\\perl\\vendor\\lib',
'vendorarchexp' => 'C:\\STRAWB~1\\perl\\vendor\\lib',
'vendorlib' => 'C:\\STRAWB~1\\perl\\vendor\\lib',
'vendorlibexp' => 'C:\\STRAWB~1\\perl\\vendor\\lib'
Instead of trying to wade through it with File::Spec, just turn short names
into longnames and every \ into / and hope it works.
Also make it so that the MD5 line will align correctly on an 80-col terminal
(on wider terminals it won't matter either way), and show *all* the hashes
at all times (omitting the information makes little sense).
In addition some clarification to the undef/empty ->VERSION return error
and the diag contents themselves (Mithaldu++)
Peter Rabbitson [Fri, 6 Mar 2015 16:08:17 +0000]
Rewire OptDeps to not attempt any module loads under missing envvars
The thinking is that if some envvars are missing, it is of secondary concern
to provide the exact list of missing module reqs to the user, while the
downside can be rather severe in some cases (broken DBD::Oracle on windows is
particularly obnoxious). Thus the logic for req_missing_for switched to only
look for "definitely missing" modules via a simple @INC-walk whenever it is
already clear that the req group failed
Peter Rabbitson [Thu, 5 Mar 2015 19:14:12 +0000]
Fix t/54taint.t failures on perl-in-hell-in-space
Given its a core bug, and the test is not critical, just skip the whole thing
Peter Rabbitson [Wed, 4 Mar 2015 01:30:48 +0000]
Add comprehensive 'report-prereqs'-like tooling
Unlike what is currently available in various Dzil plugins, this is more of
a descendent of Test::DiagINC - it tries to load as much as possible and
subsequently reports on whatever can be found in the symtable.
There is no (and never will be any) attempt made to validate if all modules
listed in the various METAs are in fact available (this is what the rest of
the test suite is for).
Module versions are broken up into groups depending on their place in @INC,
without leaking the contents of @INC itself.
Peter Rabbitson [Tue, 3 Mar 2015 17:07:48 +0000]
Extract LeakTracer symtable visitor into DBICTest::Util
Minor rewrapping and renaming of variables as we copy it
No functional changes at all, verified to produce same number of visits
Peter Rabbitson [Thu, 5 Mar 2015 17:59:48 +0000]
(travis) Make a separate is_ci runmode, separated from is_smoker
Peter Rabbitson [Thu, 5 Mar 2015 18:11:31 +0000]
(travis) shunt intermittent failures stopping postgres
Peter Rabbitson [Thu, 5 Mar 2015 15:07:13 +0000]
Stop noise from a particular combination of DateTime and DateTime::TimeZone
While things went quiet for a while after
556c4fe6, it seems that another
refactor made things go awry again. I can't actually reproduce this on any
of my machines, including Travis. Besides this isn't anything to worry much
about anyway - just kill the test
Peter Rabbitson [Thu, 26 Feb 2015 16:47:29 +0000]
At last a safer Moo (lots of kludges undone)
Peter Rabbitson [Mon, 2 Mar 2015 06:08:00 +0000]
Remove warning introduced in
75a1d824d
Peter Rabbitson [Mon, 2 Mar 2015 06:02:24 +0000]
(travis) Only consider the runmode a 'Smoker' when we CI ourselves
Peter Rabbitson [Sat, 28 Feb 2015 15:57:39 +0000]
(travis) Update apt cache when doing a large set of installs
Started failing without it:
https://s3.amazonaws.com/archive.travis-ci.org/jobs/
52536716/log.txt
Peter Rabbitson [Thu, 26 Feb 2015 18:46:47 +0000]
Move a number of tests to xt, restructure extra lists
Instead of the rigid t / xt separation, add more nuance and move some heavy
tests around, in order to improve regular user test times, without
sacrificing cpantesters coverage
Additionally makes it more obvious which tests are decidedly not being run
on user-side installs
Minimal changes: read diff under -C -C -M
Peter Rabbitson [Thu, 26 Feb 2015 18:22:22 +0000]
Factor out author count anouncement, making it seen on plain installs
Peter Rabbitson [Thu, 26 Feb 2015 16:18:30 +0000]
This hasn't failed in over a year, enable for plain installs
Peter Rabbitson [Sun, 15 Feb 2015 10:55:36 +0000]
Merge branch 'current/for_cpan_index' into current/blead
Peter Rabbitson [Sun, 15 Feb 2015 10:08:01 +0000]
Rewrite hot-ish _dbi_attrs_for_bind codepath in a leaner way
Document various caveats better
Peter Rabbitson [Sun, 15 Feb 2015 10:29:46 +0000]
Revert 2131aa2, cf52a9a and 2aa3f4c
The warning will be fixed by roper integration with the blockrunner in further
commits
Peter Rabbitson [Wed, 11 Feb 2015 12:54:36 +0000]
Roll back massive unrelated test changeset introduced in
74b5397c
The actual fix/test are ok (and pushed to main as
b00d3209), they just
touched too many other unrelated pieces
Peter Rabbitson [Wed, 11 Feb 2015 16:31:38 +0000]
Revert
c8dc7d33 - entirely superseded by 83eef5621
Peter Rabbitson [Wed, 11 Feb 2015 13:13:28 +0000]
Revert
2c2bc4e5 - it is entirely superseded by cb551b07, 2baba3d9 and 83eef562
<ilmari> if all the skipping already happens before DBICTest(::Schema) is
loaded, I have no objection to reverting that
Kevin L. Kane [Tue, 18 Nov 2014 13:02:33 +0000]
Fix updating multiple CLOB/BLOB columns on Oracle
The genric _dbi_attrs_for_bind caches the attribute hashrefs by data
type, so we can't modify them directly with column-specific data.
Instead, copy it and add the ora_field attribute to the copy.
Peter Rabbitson [Tue, 10 Feb 2015 18:16:03 +0000]
(travis) Run a couple tests in single-threaded mode
Semi-dogfooding - the massive paralellism hides the pain of how long exactly
does it take for a common user to install DBIC
(FWIW *dependency* installer timeout had to be bumped from 9 to 15 *MINUTES*)
Peter Rabbitson [Tue, 10 Feb 2015 18:12:15 +0000]
(travis) Temporarily kill Firebird ODBC testing
Sourceforge no longer facilitates downloads without a javascript enabled
browser (WAT?!), so the Odbc driver download fails. Disable the testing for
the time being, to be reinstated with the DB2 testing work
Peter Rabbitson [Tue, 10 Feb 2015 15:17:55 +0000]
Switch CDBICompat and its tests to OptDeps
This work is a direct descendant of ilmari's
c8dc7d33, even though it does
not contain almost any of the original code. While the original approach was
a big improvement, this commit is taking advantage of all improvements that
took place in OptDep handling in earlier commits. The result (at the expense
of a much much larger changeset) is a skip time of < 0.5s for the entire cdbi
set
ilmari++ # this revamp would not have taken place without your first nudge
Peter Rabbitson [Tue, 10 Feb 2015 13:24:27 +0000]
Remove redundant skip checks in CDBICompat tests
f56e59cd added the extra module, but nothing in the tests actually loads it
under Film (there likely was a switch during dev, but it was never committed).
Just rip it out entirely.
Peter Rabbitson [Sun, 25 Jan 2015 10:35:23 +0000]
Remove useless INIT blocks from CDBI tests - no changes
A use() is compile-time even when it is in an INIT block, hence removing the
INITs is safe. Do not do it for require() invocations, as it is not clear if
the tests rely on the specific order or not (more sleeping dogs left to lie)
Read under -w
Peter Rabbitson [Tue, 10 Feb 2015 12:45:32 +0000]
Introduce ad hoc requirements and add skip_without method to optdeps
On rare occasions tests need a specific module version, but nothing else in
the dist needs this. Additionally only parts of a test may rely on this extra
requirement, making the "all or nothing" approach of -skip_all_without not
very attractive.
Hence introducing ability to supply arbitrary module specifications in lieu of
group names. Each specification is checked against a special group 'test_adhoc'
which ensures that optional deps are not "forgotten" within the suite (causing
a test to never run in practice).
Peter Rabbitson [Tue, 10 Feb 2015 08:38:51 +0000]
Finally implement compound OptDep group augmentation
A group can specify not only what it requires (with includes), but can also
request a specific set of modules IFF another group is required within the
same call. This allows to do e.g. IC::DT+RDBMS dependencies in a sane manner.
Delete test_dt* groups from our optdeps (they were never documented, and a
cpangrep does not show any use) - instead we replace them with an elaborate
network of augments.
Peter Rabbitson [Fri, 6 Feb 2015 11:37:29 +0000]
Rewrite internals of the optdep include mechanism (introduced in
e163f484b)
No functional changes, "simply" moves the include-parsing logic and the env
checks to an earlier point, in order to get a complete list of all groups
mentioned (facilitating the augment functionality in the next commit)