You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by Kristian Waagan <kr...@oracle.com> on 2011/10/14 12:32:02 UTC
Using old Derby releases with tests
Hi,
As part of working on DERBY-2076, the issue of using old Derby releases
in tests came up.
Currently, there are two mechanisms in play:
a) If derbyTesting.oldReleasePath is set, use that directory.
b) If the above isn't set, the upgrade test will attempt to download
the required Derby files from the Apache web site.
I'd like the basic compatibility test, in a minimum acceptance test
configuration, to run automatically as part of suites.All. To do that I
need access to the old releases. With (a) everything is ok, but it's up
to the developer to keep the bits updated. This is fine for nightly
tests etc.
Mechanism (b) is getting problematic if more than one test is
downloading the bits. I'd like to hear if people think it is feasible to
improve that mechanism to allow multiple tests and ideally multiple test
runs to share the downloaded files. These questions come to mind:
1) Is it acceptable to go online and download Derby releases
automatically onto the user machine?
2) Where do we store them?
Ideally, we wouldn't want to download the bits every time
suites.All is run.
Suggestions:
o ~/.derbyTestingReleases (with a suitable alternative on Windows)
o current dir used when running tests (i.e. alongside 'system/')
o user specified directory, don't download if not specified
(i.e. don't run the tests)
For simplicity we can also ditch the current download mechanism. That
requires developers to always specify derbyTesting.oldReleasePath. I'm
using a script to run the tests, so it's not a problem for me. However,
if I were to run tests manually the chances that I would forget to
specify that property are significant.
This feature would probably only be used by tests for upgrade and
version compatibility. Have I forgotten any other use cases?
Thanks,
--
Kristian
Re: Using old Derby releases with tests
Posted by Knut Anders Hatlen <kn...@oracle.com>.
Kristian Waagan <kr...@oracle.com> writes:
> Hi,
>
> As part of working on DERBY-2076, the issue of using old Derby
> releases in tests came up.
> Currently, there are two mechanisms in play:
> a) If derbyTesting.oldReleasePath is set, use that directory.
> b) If the above isn't set, the upgrade test will attempt to download
> the required Derby files from the Apache web site.
>
> I'd like the basic compatibility test, in a minimum acceptance test
> configuration, to run automatically as part of suites.All. To do that
> I need access to the old releases. With (a) everything is ok, but it's
> up to the developer to keep the bits updated. This is fine for nightly
> tests etc.
>
> Mechanism (b) is getting problematic if more than one test is
> downloading the bits. I'd like to hear if people think it is feasible
> to improve that mechanism to allow multiple tests and ideally multiple
> test runs to share the downloaded files. These questions come to mind:
> 1) Is it acceptable to go online and download Derby releases
> automatically onto the user machine?
> 2) Where do we store them?
> Ideally, we wouldn't want to download the bits every time
> suites.All is run.
> Suggestions:
> o ~/.derbyTestingReleases (with a suitable alternative on Windows)
> o current dir used when running tests (i.e. alongside 'system/')
> o user specified directory, don't download if not specified
> (i.e. don't run the tests)
>
> For simplicity we can also ditch the current download mechanism. That
> requires developers to always specify derbyTesting.oldReleasePath. I'm
> using a script to run the tests, so it's not a problem for me.
> However, if I were to run tests manually the chances that I would
> forget to specify that property are significant.
Although it would be nice to have everything set up automatically, I'd
be fine with not downloading the old jars if derbyTesting.oldReleasePath
is not set. Combining it with your suggestion above and make the tests
look for the old jars at a well-known location (like
~/.derbyTestingReleases) would make it a one-time operation to set it up
(download, and possibly make a symlink if you don't want to store them
in ~/.derbyTestingReleases), and you wouldn't have to remember setting
derbyTesting.oldReleasePath every time you run the tests.
Currently, the upgrade tests are silently skipped if the jars cannot be
found. Whether we download the jars automatically or require them to be
downloaded manually, it might be more helpful if the tests had failed if
the jars couldn't be found for some reason, so that we notice if we have
a bad setup.
> This feature would probably only be used by tests for upgrade and
> version compatibility. Have I forgotten any other use cases?
>
>
> Thanks,
--
Knut Anders