Return-Path: X-Original-To: apmail-db-derby-dev-archive@www.apache.org Delivered-To: apmail-db-derby-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 9A97B9D9A for ; Wed, 5 Oct 2011 15:21:22 +0000 (UTC) Received: (qmail 75951 invoked by uid 500); 5 Oct 2011 15:21:22 -0000 Delivered-To: apmail-db-derby-dev-archive@db.apache.org Received: (qmail 75931 invoked by uid 500); 5 Oct 2011 15:21:22 -0000 Mailing-List: contact derby-dev-help@db.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: Delivered-To: mailing list derby-dev@db.apache.org Received: (qmail 75924 invoked by uid 99); 5 Oct 2011 15:21:22 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 05 Oct 2011 15:21:22 +0000 X-ASF-Spam-Status: No, hits=-2.3 required=5.0 tests=RCVD_IN_DNSWL_MED,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: local policy) Received: from [141.146.126.227] (HELO acsinet15.oracle.com) (141.146.126.227) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 05 Oct 2011 15:21:13 +0000 Received: from acsinet22.oracle.com (acsinet22.oracle.com [141.146.126.238]) by acsinet15.oracle.com (Switch-3.4.4/Switch-3.4.4) with ESMTP id p95FKoiF013132 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Wed, 5 Oct 2011 15:20:51 GMT Received: from acsmt358.oracle.com (acsmt358.oracle.com [141.146.40.158]) by acsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id p95FKnIM003814 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Wed, 5 Oct 2011 15:20:49 GMT Received: from abhmt119.oracle.com (abhmt119.oracle.com [141.146.116.71]) by acsmt358.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id p95FKhLp002848 for ; Wed, 5 Oct 2011 10:20:44 -0500 Received: from [192.168.0.20] (/84.215.180.161) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Wed, 05 Oct 2011 08:20:43 -0700 Message-ID: <4E8C7653.1010106@oracle.com> Date: Wed, 05 Oct 2011 17:22:59 +0200 From: Kristian Waagan User-Agent: Mozilla/5.0 (X11; U; SunOS i86pc; en-US; rv:1.9.2.15) Gecko/20110412 Thunderbird/3.1.9 MIME-Version: 1.0 To: derby-dev@db.apache.org Subject: Compatibility test (was: Re: More. Trouble with JVMInfo) References: <204BEF24-0F42-40C4-A818-D10926780D34@sbcglobal.net> <4E7C9F8B.2090605@oracle.com> <1316809886.3626.17.camel@tecra> <4E807F5E.2020506@oracle.com> <4E80A938.9090302@sbcglobal.net> <4E80C0DB.30100@oracle.com> <4E80ED12.10906@sbcglobal.net> <4E81BFC9.7070802@oracle.com> <4E81CA2B.6010906@sbcglobal.net> <4E81FDE7.8040803@sbcglobal.net> In-Reply-To: <4E81FDE7.8040803@sbcglobal.net> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Source-IP: acsinet22.oracle.com [141.146.126.238] X-Auth-Type: Internal IP X-CT-RefId: str=0001.0A090206.4E8C75D3.0182:SCFMA922111,ss=1,re=-4.000,fgs=0 On 27.09.11 18:46, Kathey Marsden wrote: > On 9/27/2011 7:26 AM, Knut Anders Hatlen wrote: >> Another question is whether mixed versions is a configuration we need >> to support (I don't think it's stated explicitly anywhere that we >> actually do support it?). > Years ago, I know this support was very important to several of our > large consumers, but perhaps needs have changed. I am sure those that > expressed the need for this to keep working are not up to 10.7 yet. I > had thought CompatibiltyTest was doing the basic testing for mixed jars. > I guess though, that test is just for basic protocol testing and must > use separate class loaders or the basic testing would have failed. --- Compatibility test rewrite --- I recently spent time rewriting the compatibility test (DERBY-2076), and can confirm that it doesn't test mixed version jars. It uses separate processes for the client and the server. However, while rewriting the test, I did find one or two problems related to mixing code from different releases. For instance, you cannot shut down a really old server using a newer NetworkServerControl. In this case I had to fork off a process to shut down the server using the old code. The test is dependent on being able to run the newest derbyTesting.jar with the client and the server code (for instance to find the code for stored procedures). I'd be interested in hearing what people believe the compatibility test should be able to do. The new version of the test only runs a test suite with a set of client versions against a set of server versions. It doesn't yet support running the client and the server with different JVM versions. --- Compatibility test coverage --- I have no metrics for what kind of coverage the current compatibility test gives, but I suspect it is rather low. Adding tests to the compatibility suite is in theory independent of the test framework, but running for instance suites.All with mixed versions of the client and the server will fail for several reasons: o existing network server setup decorators will interfere with the running server o features not existing in the client will be attempted tested if the newest derbyTesting.jar is used --- Mixed jars testing --- --- Run only client or embedded tests when invoking _Suite --- As an experiment I added functionality to the test framework to run only client or embedded tests. This included minor changes in TestConfiguration and relatively small changes in a whole lot of suite()-methods. I only carried out the experiment for lang and jdbcapi. When running lang._Suite with a 10.6 server and trunk client/testing, I got this from the swing testrunner: 589/618, 67 errors, 23 failures. Many of the issues were related to BOOLEAN and truncate table (not supported by 10.6). When running lang._Suite with a trunk server/testing and 10.6 client, I got this from the swing testrunner: 611/618, 4 errors, 26 failures. Again many of the failures were related BOOLEAN. I don't know if it is worth doing this kind of testing, and how to interpret the results, but the ability to run only embedded or client tests may be something people find valuable. Mixed jars testing requires manual inspection of the results, since the test cases don't carry information about which versions of Derby support the features being tested. To detect regressions it might be better to run the (old) tests against a newer server? -- Kristian [ snip ]