accumulo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Medinets <david.medin...@gmail.com>
Subject Re: Using powermock-api-mockito in tests?
Date Fri, 22 Mar 2013 23:54:34 GMT
Thank you. Sometimes I get lost in the microscopic. Now I understand.

On Fri, Mar 22, 2013 at 6:48 PM, Dave Marion <dlmarion@comcast.net> wrote:
> David,
>
>   I was not trying to prevent you from being productive, I was trying to
> prevent you from wasting your time. I stated several times that
> MiniDFSCluster does not work on Windows. I'll try to be more specific.
>
>  After you mock the bash execution, you will likely find that you have
> broken the test for everyone else because MiniDFSCluster expects a certain
> directory permission, see [1] and [2] for lengthy discussions on the topic.
> In addition, when you get to the point of starting MiniDFSCluster, you will
> find that it does not work on Windows due to non-portable paths and such,
> see [3]. At that point you will be left with removing MiniDFSCluster and
> mocking every call to HDFS from the tests.
>
>   I think a better solution is to move the classloader tests that use
> AccumuloDFSBase to integration tests. These can be run on Hudson, which I
> think is using a *nix flavor of O/S and should run with no problem. Maybe a
> future version of MiniDFSCluster will work on Windows.
>
> [1] https://issues.apache.org/jira/browse/ACCUMULO-708
> [2]
> http://www.google.com/#hl=en&sclient=psy-ab&q=MiniDFSCluster+directory+permi
> ssions
> [3] http://www.google.com/#q=MiniDFSCluster+windows+paths&hl=en
>
>
> Dave
>
> -----Original Message-----
> From: David Medinets [mailto:david.medinets@gmail.com]
> Sent: Friday, March 22, 2013 5:43 PM
> To: dev@accumulo.apache.org
> Subject: Re: Using powermock-api-mockito in tests?
>
> How does it hurt the project if I spend time on this? Accumulo already
> compiles on Windows. It's the tests that are failing. How does skipping
> failing tests help? I suggest that unit tests should not spawn exec
> processes in any case because that is a source of slowness.
> Mocking the unix-specific stuff on Windows will lead to faster tests.
>
> On Fri, Mar 22, 2013 at 10:42 AM, Jim Klucar <klucar@gmail.com> wrote:
>> +1 to Dave's comment. I don't think we should be spending effort
>> +supporting
>> compiling on an unsupported runtime environment. If something fails
>> because it is too *nix-y then just skip that test with a local pom.xml
>> override or something.
>>
>>
>> On Fri, Mar 22, 2013 at 10:11 AM, Keith Turner <keith@deenlo.com> wrote:
>>
>>> On Thu, Mar 21, 2013 at 10:16 PM,  <dlmarion@comcast.net> wrote:
>>> >
>>> > So we are getting into an area where you want to compile the
>>> > software on
>>> a platform that is not supported. If you want to compile on an
>>> unsupported platform, then I would suggest just ignoring the tests
>>> that won't work on that system.
>>>
>>> My thought on this is that if changes to make it work on windows
>>> improve the test and/or build process, then thats good.  On the other
>>> hand I would be opposed to making test and/or build more complex
>>> inorder to support windows.   I would define increasing complexity as
>>> making it more difficult to run, maintain, or improve the test and/or
>>> build process.
>>>
>>> >
>>> > I don't think that this needs to be changed now as Hadoop only
>>> > supports
>>> *nix based systems and we are close to a 1.5.0 release. If you want
>>> to tackle this in 1.6 (trunk) thats a different story.
>>> >
>>> >
>>> > ----- Original Message -----
>>> > From: "David Medinets" <david.medinets@gmail.com>
>>> > To: dev@accumulo.apache.org
>>> > Sent: Thursday, March 21, 2013 10:08:48 PM
>>> > Subject: Re: Using powermock-api-mockito in tests?
>>> >
>>> > I hate ignoring things. It makes me uneasy. I'm looking at the
>>> > other tests as well. For example, the AccumuloDFSBase class depends
>>> > on running /bin/sh to find a umask. No reason that dependency can't
>>> > be mocked out during testing... If nothing else, this research will
>>> > form my own set of Accumulo Zen Koans.
>>> >
>>> > On Thu, Mar 21, 2013 at 10:03 PM, <dlmarion@comcast.net> wrote:
>>> >>
>>> >> Take a look at my other email on this subject, it might be better
>>> >> to
>>> just add the profile that I mentioned and add this to the list of
>>> ignored tests for now. I know that there is a ticket for removing
>>> ACCUMULO_HOME in all places.
>>> >>
>>> >> ----- Original Message -----
>>> >> From: "David Medinets" <david.medinets@gmail.com>
>>> >> To: dev@accumulo.apache.org
>>> >> Sent: Thursday, March 21, 2013 9:58:18 PM
>>> >> Subject: Re: Using powermock-api-mockito in tests?
>>> >>
>>> >> Dave, you were very close. Here is the mocking code that I used.
>>> >>
>>> >> Map<String, String> mockSystemProperties = new HashMap<String,
>>> String>();
>>> >> mockSystemProperties.put("ACCUMULO_HOME", System.getenv("HOME"));
>>> >>
>>> >> PowerMock.mockStaticPartial(System.class, "getenv");
>>> >>
>>> EasyMock.expect(System.getenv()).andReturn(mockSystemProperties).anyT
>>> imes();
>>> >>
>>> EasyMock.expect(System.getenv("ACCUMULO_XTRAJARS")).andReturn("").any
>>> Times();
>>> >> PowerMock.replayAll();
>>> >>
>>> >> I'd like write a JIRA ticket and commit this code. I'll wait until
>>> >> tomorrow for feedback though. No rush for this kind of change.
>>> >>
>>> >> The message that started this investigation was:
>>> >>
>>> >>
>>>
> testDefaultConfig(org.apache.accumulo.start.classloader.vfs.AccumuloVFSClass
> LoaderTest):
>>> >> Could not find file with URI "/lib/ext/[^.].*.jar" because it is a
>>> >> relative path, and no base URI was provided.
>>> >>
>>> >> It occured on line 135 of AccumuloVFSClassLoader.java because
>>> >> ACCUMULO_HOME was blank and therefore no base URI was provided.
>>>
>

Mime
View raw message