Received: from mx0.gmx.net (mx0.gmx.net [213.165.64.100]) by h1439878.stratoserver.net (8.14.2/8.14.2/Debian-2build1) with SMTP id q7AAPJUc020104 for ; Fri, 10 Aug 2012 12:25:20 +0200 Received: (qmail 24352 invoked by alias); 10 Aug 2012 10:25:14 -0000 Delivered-To: GMX delivery to rainer.schoepf@gmx.net Received: (qmail invoked by alias); 10 Aug 2012 10:25:14 -0000 Received: from relay.uni-heidelberg.de (EHLO relay.uni-heidelberg.de) [129.206.100.212] by mx0.gmx.net (mx020) with SMTP; 10 Aug 2012 12:25:14 +0200 Received: from listserv.uni-heidelberg.de (listserv.uni-heidelberg.de [129.206.100.94]) by relay.uni-heidelberg.de (8.14.1/8.14.1) with ESMTP id q7AANFhG019445 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 10 Aug 2012 12:23:15 +0200 Received: from listserv.uni-heidelberg.de (listserv.uni-heidelberg.de [127.0.0.1]) by listserv.uni-heidelberg.de (8.13.8/8.13.1) with ESMTP id q7A9oZfD008220; Fri, 10 Aug 2012 12:23:15 +0200 Received: by LISTSERV.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 16.0) with spool id 2680149 for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Fri, 10 Aug 2012 12:23:15 +0200 Received: from relay.uni-heidelberg.de (relay.uni-heidelberg.de [129.206.100.212]) by listserv.uni-heidelberg.de (8.13.8/8.13.1) with ESMTP id q7AANFer030883 for ; Fri, 10 Aug 2012 12:23:15 +0200 Received: from moutng.kundenserver.de (moutng.kundenserver.de [212.227.17.9]) by relay.uni-heidelberg.de (8.14.1/8.14.1) with ESMTP id q7AAN2m4019339 for ; Fri, 10 Aug 2012 12:23:06 +0200 Received: from mittelbach-online.de (p4FEE4EF8.dip.t-dialin.net [79.238.78.248]) by mrelayeu.kundenserver.de (node=mreu0) with ESMTP (Nemesis) id 0MQJq4-1T9aYs1A5M-00Tpf3; Fri, 10 Aug 2012 12:23:02 +0200 Received: by mittelbach-online.de (Postfix, from userid 783) id A862810A08E8; Fri, 10 Aug 2012 12:22:59 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on Marlowe X-Spam-Status: No, score=-1.4 required=5.0 tests=ALL_TRUSTED,AWL autolearn=unavailable version=3.2.5 Received: from [127.0.0.1] (unknown [192.168.123.100]) (Authenticated sender: frank) by mittelbach-online.de (Postfix) with ESMTPSA id 4980F10A07C8 for ; Fri, 10 Aug 2012 12:22:58 +0200 (CEST) User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:14.0) Gecko/20120713 Thunderbird/14.0 MIME-Version: 1.0 References: <5022BFB4.1090800@latex-project.org> <502428CD.1050208@morningstar2.co.uk> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-Antivirus: avast! (VPS 120809-1, 09.08.2012), Outbound message X-Antivirus-Status: Clean X-Provags-ID: V02:K0:gi57vRsn/poxx1pcs6DBAbQxjchNtoUIN4QqGaMnRSE QeN58sNfXXwPT0fPS5+l5TvLhJ3N5rZ+Js3pfJ36PGRGr9veOc 967W7ehqYliqtOPxDXGn2rRjc23fEQKWhFfvNTS4SOq1dxFhJ2 29+NN8+2Tpl00l9CzTIDhih47cUN8lrZT4j2Xl16uFPt2qF0Tb 7bagumqdjzxygWDdzqS24fRSXG7zn7gAUmS26YknvN7RccCYbu 1Aqg7yetFcVKDaT77upjjnsQXUqFztlrAioQiBMV4xKTU32isH 3CWRyA48MZ6fgo4ThRHJteEFNyKrVQ4JTRPiGQt7ZqcDuaXoVo p5wrL4zvEOCj/HsAMQcmPzy4VaR6Ih6unrxtdKg8j Message-ID: <5024E100.6000707@latex-project.org> Date: Fri, 10 Aug 2012 12:22:56 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Frank Mittelbach Subject: Re: Examples of l3doc & unit testing? To: LATEX-L@listserv.uni-heidelberg.de In-Reply-To: <502428CD.1050208@morningstar2.co.uk> Precedence: list List-Help: , List-Unsubscribe: List-Subscribe: List-Owner: List-Archive: X-GMX-Antispam: 0 (eXpurgate); Detail=5D7Q89H36p6scdPqt3b0GISnHn9U+AQstqF50WWYGZT0yXpGDTOThWPsSma3Zm5O+QQs/ 8A0o+My9X4O25ztfbAwtfj1QaYO7TQDQbsrwYJaX0h1pFL69IH4JR0mrY6FWNchiu4elNqwGxr3f Ai+pJIzYgtmRwBrijifreVGu+17NtyAL/D0sZ7LNczVj+wOIztYnVDoJAk=V1; X-Resent-By: Forwarder X-Resent-For: rainer.schoepf@gmx.net X-Resent-To: rainer@rainer-schoepf.de Status: R X-Status: X-Keywords: X-UID: 7115 Am 09.08.2012 23:17, schrieb Joseph Wright: > On 09/08/2012 18:30, Bruno Le Floch wrote: >> We run our test suite using a Makefile (or make.bat on Windows), which >> - calls the appropriate TeX engine the appropriate number of times, then >> - calls a Perl script to remove paths and other parts of the log file >> specific to a given installation, >> - calls diff to compare the result with a saved result. >> The drawbacks are that it is os-dependent, it uses perl, which may not >> be installed everywhere. I think the big question is what is your goal here. My main goal initially (for 2e and later for l3 code) was to have a robust test suite that would enable us to identity issues upfront when making changes or additions. And that on the whole has been very successful in the past (provided as Joseph said, people wrote test files :-) The important non-functional requirement is that it works - automatically - and reasonably fast Obviously you have to run TeX on the test files, but doing the comparison using TeX is not very time efficient. Now is it important that it is OS independent? Only if your goal is to have *many* people use the mechanism and so far that wasn't really part of the spec. Perl is easily available both for unix and windows so effectively for developers the current system is not to difficult to install or use. The idea of using Lua is interesting, but as Joseph said, it is not that this would then work out of the box for most people either (not now anyway). Midterm, or if we think that this should be a package outside expl3 or 2e core development, it would perhaps be a good option though, but for now my feeling is it would mean putting resources onto something that doesn't actually bring any new value. > The current LaTeX3 test system works pretty well, provided the tests are > written to actually test behaviour correctly :-) Checking log file info > seems to work well both for 'programmatic' information (writing the > result to the log), and for 'typesetting' (by using \box_show:N to again > write to the log). So it does not seem like a bad model. It might be > worth looking at the TeX part of the process (the test .tex file) to see > if it needs any tidying up to be more generally usable. I would even claim that it works better than "pretty well" as it allows to write the right kind of tests for typesetting results as well as for testing functionality of code and interface specs and all that in an automated way, and in fact it caught quite a number of errors in the past. > Of course, if you do want to look at this then it would also be worth > looking at the alternatives (e.g. qstest). not sure they are alternatives, but there could be approaches that are worth incorporating into the current setup. frank