[ 
https://issues.apache.org/jira/browse/LUCENE-5577?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dawid Weiss updated LUCENE-5577:
--------------------------------

    Description: 
This is a spinoff of the work [[email protected]], Uwe and me have 
initiated in SOLR-5914. 

The core concept is this:

* every test should create its temporary folders and files in a sub-folder of 
one, easily identifiable, parent.

* the parent folder is named after the test class, with [org.apache.] removed 
for brevity. the folder name includes the master seed and a generated sequence 
integer, if needed, to easily demarcate different runs (and identify which run 
produced which files).

* temporary folder/ file creation routines should be available in LTC, so that 
no additional imports/ fiddling is needed.
{code}
LTC#createTempDir()
LTC#createTempDir(String prefix)
LTC#createTempFile()
LTC#createTempFile(String prefix, String suffix)
{code}
Note the absence of "create a temporary file/dir under a given directory" 
method. These shouldn't be needed since any temporary folder created by the 
above is guaranteed to be empty. If one still needs temporary file creation use 
createTempDir() and then relevant File class methods.

* any temporary folders and files should be removable at the end of the suite 
(class), if all tests completes successfully. Failure to remove any files 
should be marked as an error (will manifest itself on windows with open file 
handles).

* there should be a way to temporarily mark a class to circumvent the above 
check (SuppressTempFileChecks annotation for known offenders). Annotating a 
class with SuppressTempFileChecks will still attempt to remove temporary files, 
but will not cause an error if this fails. Any files that couldn't be deleted 
will be printed to stdout with an appropriate message.

* there should be a way for developers to leave temporary files on disk for 
further inspection (even in case of successful runs). The following system 
properties will work:
{code}
        "tests.leavetmpdir" /* default */,
        "tests.leaveTemporary" /* ANT tasks's (junit4) flag. */,
        "tests.leavetemporary" /* lowercase version of the above */,
        "solr.test.leavetmpdir" /* Solr's legacy property for backcompat */))
{code}


  was:
This is a spinoff of the work [[email protected]], Uwe and me have 
initiated in SOLR-5914. 

The core concept is this:

* every test should create its temporary folders and files in a sub-folder of 
one, easily identifiable, parent.

* the parent folder is named after the test class, with [org.apache.] removed 
for brevity. the folder name includes the master seed and a generated sequence 
integer, if needed, to easily demarcate different runs (and identify which run 
produced which files).

* temporary folder/ file creation routines should be available in LTC, so that 
no additional imports/ fiddling is needed.

* any temporary folders and files should be removable at the end of the suite 
(class), if all tests completes successfully. Failure to remove any files 
should be marked as an error (will manifest itself on windows with open file 
handles).

* there should be a way to temporarily mark a class to circumvent the above 
check (SuppressTempFileChecks annotation for known offenders). Annotating a 
class with SuppressTempFileChecks will still attempt to remove temporary files, 
but will not cause an error if this fails. Any files that couldn't be deleted 
will be printed to stdout with an appropriate message.

* there should be a way for developers to leave temporary files on disk for 
further inspection (even in case of successful runs). The following system 
properties will work:
{code}
        "tests.leavetmpdir" /* default */,
        "tests.leaveTemporary" /* ANT tasks's (junit4) flag. */,
        "tests.leavetemporary" /* lowercase version of the above */,
        "solr.test.leavetmpdir" /* Solr's legacy property for backcompat */))
{code}



> Temporary folder and file management (and cleanup facilities)
> -------------------------------------------------------------
>
>                 Key: LUCENE-5577
>                 URL: https://issues.apache.org/jira/browse/LUCENE-5577
>             Project: Lucene - Core
>          Issue Type: Improvement
>            Reporter: Dawid Weiss
>            Assignee: Dawid Weiss
>            Priority: Minor
>             Fix For: 4.8, 5.0
>
>
> This is a spinoff of the work [[email protected]], Uwe and me have 
> initiated in SOLR-5914. 
> The core concept is this:
> * every test should create its temporary folders and files in a sub-folder of 
> one, easily identifiable, parent.
> * the parent folder is named after the test class, with [org.apache.] removed 
> for brevity. the folder name includes the master seed and a generated 
> sequence integer, if needed, to easily demarcate different runs (and identify 
> which run produced which files).
> * temporary folder/ file creation routines should be available in LTC, so 
> that no additional imports/ fiddling is needed.
> {code}
> LTC#createTempDir()
> LTC#createTempDir(String prefix)
> LTC#createTempFile()
> LTC#createTempFile(String prefix, String suffix)
> {code}
> Note the absence of "create a temporary file/dir under a given directory" 
> method. These shouldn't be needed since any temporary folder created by the 
> above is guaranteed to be empty. If one still needs temporary file creation 
> use createTempDir() and then relevant File class methods.
> * any temporary folders and files should be removable at the end of the suite 
> (class), if all tests completes successfully. Failure to remove any files 
> should be marked as an error (will manifest itself on windows with open file 
> handles).
> * there should be a way to temporarily mark a class to circumvent the above 
> check (SuppressTempFileChecks annotation for known offenders). Annotating a 
> class with SuppressTempFileChecks will still attempt to remove temporary 
> files, but will not cause an error if this fails. Any files that couldn't be 
> deleted will be printed to stdout with an appropriate message.
> * there should be a way for developers to leave temporary files on disk for 
> further inspection (even in case of successful runs). The following system 
> properties will work:
> {code}
>         "tests.leavetmpdir" /* default */,
>         "tests.leaveTemporary" /* ANT tasks's (junit4) flag. */,
>         "tests.leavetemporary" /* lowercase version of the above */,
>         "solr.test.leavetmpdir" /* Solr's legacy property for backcompat */))
> {code}



--
This message was sent by Atlassian JIRA
(v6.2#6252)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to