From murdoch.duncan at gmail.com  Tue Sep  4 14:38:56 2012
From: murdoch.duncan at gmail.com (Duncan Murdoch)
Date: Tue, 04 Sep 2012 08:38:56 -0400
Subject: [Rd] if(--as-cran)?
In-Reply-To: <5045F221.7050600@mayo.edu>
References: <mailman.17.1346752805.30578.r-devel@r-project.org>
	<5045F221.7050600@mayo.edu>
Message-ID: <5045F660.6030706@gmail.com>

On 04/09/2012 8:20 AM, Terry Therneau wrote:
>
> On 09/04/2012 05:00 AM, r-devel-request at r-project.org wrote:
> > The issue is not just about "CRAN" vs "off CRAN".
> > It is good to think about a more general scheme of
> > "light testing" vs "normal testing" vs "extensive testing",
> > e.g.,  for the situation where the package implements
> > (simulation/bootstrap/ ..) based inference, and the developer
> > (but not only) should be able to run the extensive tests.
> >
> > Martin
>
> I agree with Martin.  A mechanism to specify testing level would be the best.
> Then CRAN can choose to set that variable to "3" say, with level 1 for extensive and 2 for
> usual.
>     I'm quite willing to put up with the nuisance of print() enclosures.  I prefer it to
> having yet another way to subvert the evaluation model.
>
>     I'm a believer in testing everything possible in my packages, and wear it it as a badge
> of honor that the survival package has 4 lines of R code in the tests directory for every
> 3 in the R directory.  But CRAN only needs to run a small subset of this.

We have a mechanism to specify testing level:  the --as-cran flag. We 
could presumably make it more elaborate by adding other flags, or option 
levels, or whatever.

What I think we shouldn't do is try to create an R-level test that says

  if (testingLevel() > 3) {
    doSomething
}

because tests can be turned on and off, individually.  If testingLevel 3 
specified tests (A, B, C), then is our testingLevel higher if we are 
running tests (A, B, D, E, F, G)?  Why not just test for the presence of 
whichever test is most relevant to that particular code block, e.g.

  if ("D" %in% tests()) {
   doSomething
}

Duncan Murdoch



[Rd] if(--as-cran)?
Duncan Murdoch