Return-Path: Delivered-To: apmail-incubator-harmony-dev-archive@www.apache.org Received: (qmail 21525 invoked from network); 26 Oct 2006 10:06:05 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 26 Oct 2006 10:06:05 -0000 Received: (qmail 10737 invoked by uid 500); 26 Oct 2006 10:06:12 -0000 Delivered-To: apmail-incubator-harmony-dev-archive@incubator.apache.org Received: (qmail 10686 invoked by uid 500); 26 Oct 2006 10:06:11 -0000 Mailing-List: contact harmony-dev-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: harmony-dev@incubator.apache.org Delivered-To: mailing list harmony-dev@incubator.apache.org Received: (qmail 10677 invoked by uid 99); 26 Oct 2006 10:06:11 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 26 Oct 2006 03:06:11 -0700 X-ASF-Spam-Status: No, hits=2.5 required=10.0 tests=DNS_FROM_RFC_ABUSE,HTML_MESSAGE,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (herse.apache.org: domain of roberthurui@gmail.com designates 64.233.162.192 as permitted sender) Received: from [64.233.162.192] (HELO nz-out-0102.google.com) (64.233.162.192) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 26 Oct 2006 03:05:27 -0700 Received: by nz-out-0102.google.com with SMTP id z6so302527nzd for ; Thu, 26 Oct 2006 03:05:01 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:references; b=nTa32Ymx4Z7+3BzYkNihczAbD3AbT78ILgOsZmQ5sJo25Ci11v8xDnKJf3o4yLV9BSNPtZ2TQpD0IsaBIbJFD+LeWtfuJbfflCXALrJPh8Pa6fHgmbnZd7cXOcDp+aHxgmARnMSftcpy1XOTyZx3tb8ieiu0alHI7/goGX9PPns= Received: by 10.65.114.11 with SMTP id r11mr2693574qbm; Thu, 26 Oct 2006 03:05:01 -0700 (PDT) Received: by 10.65.153.17 with HTTP; Thu, 26 Oct 2006 03:05:01 -0700 (PDT) Message-ID: Date: Thu, 26 Oct 2006 18:05:01 +0800 From: "Rui Hu" To: harmony-dev@incubator.apache.org Subject: Re: [classlib][tests] Junit best practice In-Reply-To: <200610251127.k9PBRfrd026692@d06av02.portsmouth.uk.ibm.com> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_Part_22013_24996041.1161857101534" References: <200610251127.k9PBRfrd026692@d06av02.portsmouth.uk.ibm.com> X-Virus-Checked: Checked by ClamAV on apache.org ------=_Part_22013_24996041.1161857101534 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Great, Mark. Your script is indeed so powerful! On 10/25/06, Mark Hindess wrote: > > > Earlier in the year we discussed junit best practice. For example, > making sure assertEquals calls have the expected and actual arguments in > the correct order to avoid getting confusing failure messages. > > Robert posted a script a week or so ago, to look for some of junit > issues but it didn't handle asserts that spanned multiple lines so, > unfortunately, it was missing the majority of them. I had a script that > I'd thrown together one evening that would handle multi-line asserts but > annoyingly (because it read the whole file at once) couldn't report the > line number of the potential issue as Robert's script did. > > Inspired by Robert's post, I looked at my script again. I've now fixed > it to report line numbers, added a little bit of documentation and > attached it to a JIRA: > > https://issues.apache.org/jira/browse/HARMONY-1960 > > It finds quite a lot of potential problems (I've appended a summary of > the findings below). (There will be a few false positives but hopefully > not too many.) It would be nice to fix these issues - I fixed several > hundred while testing the script - but more importantly we should make > sure we avoid adding any new issues. > > Improvements to the script would be most welcome. > > Regards, > Mark. > > Types of issue identified > > 4949 should possibly use assertEquals > 815 actual may be a constant > 437 consider using separate asserts for each '&&' component > 330 exception may be left to junit > 135 actual *may* be a constant > 48 should be fail (always false) > 40 should be fail (always true) > 20 expected is null - should use assertNull > 12 consider using separate asserts for each '||' component > 8 expected is false - should use assertFalse > 7 expected is true - should use assertTrue > 1 should use assertNotNull > > > Number of Issues by module > > 1907 luni > 1440 swing > 699 math > 611 security > 335 text > 322 awt > 222 sound > 186 nio > 178 jndi > 123 archive > 118 auth > 117 crypto > 116 logging > 91 nio_char > 87 print > 74 regex > 68 concurrent > 45 beans > 41 x-net > 21 sql > 1 rmi > > > > -- Robert Hu China Software Development Lab, IBM ------=_Part_22013_24996041.1161857101534--