The from should be:

    this.viewFile = new File("locator" + server.getPort() + "view.dat");

On Fri, Jan 5, 2018 at 3:48 PM, Kirk Lund <kl...@apache.org> wrote:

> Just to help facilitate the discussion, here's a pull request that changes
> GMSLocator from:
>
>     this.viewFile = new File(System.getProperty("user.dir"), "locator" +
> server.getPort() + "view.dat");
>
> ...to:
>
>     this.viewFile = new File(System.getProperty("user.dir"), "locator" +
> server.getPort() + "view.dat");
>
> To allow the new test LocatorViewFileTemporaryFolderDUnitTest to redirect
> the locator view dat file to a JUnit TemporaryFolder.
>
> The only other way I can think of to this is to introduce a new Geode
> property for "current-directory" which a test could specify. That property
> value would have to be pushed down to every class that creates a new File.
>
> Pull request: https://github.com/apache/geode/pull/1243
>
> On Fri, Jan 5, 2018 at 3:32 PM, Kirk Lund <kl...@apache.org> wrote:
>
>> Any calls such as:
>>
>>     File file = new File("myfile");
>>
>> ...results in creating a file in the current working directory of
>> IntelliJ or Gradle when executing the test.
>>
>> I previously made a change to Gfsh so that tests can pass in a parent
>> directory which will be used instead. This allowed me to change all of the
>> Gfsh tests to write to a JUnit TemporaryFolder.
>>
>> This allows us to clean up ALL file artifacts produced from a test and
>> also allows us to avoid file-based pollution from one test to another.
>>
>> I'd like to propose that we either always pass a parent directory into a
>> component that produces file artifacts or change all of our code from using
>> the constructor File(String pathname) to using the constructor File(String
>> parent, String child).
>>
>> That 2nd approach would involve changing lines like this:
>>
>>     File file = new File("myfile");
>>
>> ...to:
>>
>>     File file = new File(System.getProperty("user.dir"), "myfile");
>>
>> Then if you add this line to a test:
>>
>> System.setProperty("user.dir", temporaryFolder.getRoot().getA
>> bsolutePath());
>>
>> ...you're able to redirect all file artifacts to the JUnit
>> TemporaryFolder.
>>
>> If we don't make this change to product code, then I really don't think
>> we should be manipulating "user.dir" in ANY of our tests because the
>> results are rather broken.
>>
>> If we don't like using "user.dir" then we could devise our own Geode
>> system property for "the current working directory." Honestly, I don't care
>> what system property we use or don't use, but I really want to have ALL
>> file artifacts properly cleaned and deleted after every test. And I really
>> want to prevent file-based test pollution.
>>
>
>

Reply via email to