> On Feb. 23, 2017, 10:18 p.m., Kirk Lund wrote:
> > +1 I know this change is good and would be safe commit it as is, however we
> > have been trying to create UnitTests for any class that we touch that
> > doesn't already have a UnitTest. As a whole, the project relies too much on
> > end-to-end tests which take forever to run and tend to be more flaky.
> >
> > So I still recommend trying to write a UnitTest that at a minimum covers
> > the method you've modified. My definition of UnitTest here is a very fast
> > test that uses mocking (Mockito) to mock everything this class method
> > interacts with and the test does not interact with file system or network.
> > If this method interacts with file system, then there are generally two
> > choices: test it in an IntegrationTest or refactor the method to allow you
> > to UnitTest it in isolation from file system. The test class itself has a
> > JUnit @Category annotation at the top and the category is either
> > UnitTest.class or IntegrationTest.class in this case.
> >
> > For testing an exception, I recommend using AssertJ:
> >
> > assertThatThrownBy(() ->
> > target.callMethodThatThrows()).isInstanceOf(IllegalStateException.class).hasMessageContaining("resourceTypeId").hasMessageContaining("resourceName");
> >
> > You could instead use .hasMessage("ResourceType is missing for
> > resourceTypeId xxx, resourceName yyy") but that does tend to make for a
> > more brittle test.
>
> Kirk Lund wrote:
> In this case, you could probably just modify
> StatArchiveWithMissingResourceTypeRegressionTest
>
> Kirk Lund wrote:
> Also, the travis CI that's hooked up to the github project for geode is
> executing test but it doesn't run integrationTest or distributedTest. If you
> run integrationTest, I think you'll see
> StatArchiveWithMissingResourceTypeRegressionTest fail due to your change.
> You'll want to update the assertion in this test:
> ```java
> @Test // fixed GEODE-2013
> public void throwsIllegalStateExceptionWithMessage() throws Exception {
> assertThatThrownBy(() -> new StatArchiveReader(new File[]
> {this.archiveFile}, null, true))
> .isExactlyInstanceOf(IllegalStateException.class) // was
> NullPointerException
> .hasMessage("ResourceType is missing for resourceTypeId 0"); //
> was null
> }
> ```
Hi Kirk,
Thank you for the comments and background around Unit/Integration test options.
I ran ./gradlew build, which was successful, hence I submitted a PR and a
review request. Later on (many hours after I started precheckin) I noticed that
the test you mentioned in StatArchiveWithMissingResourceTypeRegressionTest did
fail. I made changes to the test and pushed a new
commit(https://github.com/apache/geode/pull/406/commits/56c2a7fce00b5a44d50f1cc8374d1da3ab214344#diff-a74ae4844c1a648682d8a0d297976e31R62).
I had a feeling that I was making the test brittle by using
`.hasMessage("ResourceType is missing for resourceTypeId 0, resourceName
statistics1")`;
but at the same I felt it was not too brittle as the gfs file was picked up
from the
org/apache/geode/internal/statistics/StatArchiveWithMissingResourceTypeRegressionTest.gfs
which hasnt changed since creation.
But I agree, your suggestion of using `.hasMessageContaining(...)` , I will
incorporate that and will push a new commit.
If you dont mind I have few questions, apologies if this is not the right
place.
1. I pushed 1 commit and raised a PR and then submitted this review
request(https://reviews.apache.org/r/56964/). Later on realized that the
regression test in StatArchiveWithMissingResourceTypeRegressionTest fails
because of my change. Hence pushed 1 more commit (part of the same PR
#406[smanvi-pivotal wants to merge 2 commits into apache:develop from
smanvi-pivotal:feature/GEODE-2526]) to fix the test and did not create a new
review request. Should every commit(pushed at different times before the PR is
closed) in a PR have its own review request ?
2. For non-committers isn`t opening a PR in github equivalent to opening a
review request in https://reviews.apache.org ? In future should I keep opening
review requests along with PRs or is reviews.apache.org mainly for committers ?
3. I let my "./gradlew precheckin" execute for about 5 hrs and it was still not
complete. Is there anything that I can do to speed it up ? How do regular
contributors/committers push multiple commits/day if each commit needs to be
preceeded by a succesfull precheckin ?
- Srikanth
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/56964/#review166590
-----------------------------------------------------------
On Feb. 23, 2017, 3:03 a.m., Srikanth Manvi wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/56964/
> -----------------------------------------------------------
>
> (Updated Feb. 23, 2017, 3:03 a.m.)
>
>
> Review request for geode and Kirk Lund.
>
>
> Repository: geode
>
>
> Description
> -------
>
> Enhanced the log statement to include the ResourceType Name.
>
>
> Diffs
> -----
>
>
> geode-core/src/main/java/org/apache/geode/internal/statistics/StatArchiveReader.java
> 9fba511
>
> Diff: https://reviews.apache.org/r/56964/diff/
>
>
> Testing
> -------
>
>
> Thanks,
>
> Srikanth Manvi
>
>