>
> In your fix for https://issues.apache.org/jira/browse/CALCITE-4952 <
> https://issues.apache.org/jira/browse/CALCITE-4952> you made
> RelMetadataTest a parameterized test, so that each case could be called
> with two metadata providers. I undid that, and made it into a test with a
> protected fixture() method, so that a sub-class can run the same tests with
> a different provider. I believe that the test coverage is the same, albeit
> via different means.


Hmm. I actually started with the subclass pattern but after feedback during
review, Stamatis and I agreed that subclassing was an anti-pattern and thus
I went through the "fun" process of refactoring to use parameterization.

In terms of confirming that the change to RelMetadataTest didn't disrupt
coverage, any chance you ran a diff on test output pre/post to confirm that
at least all the same test cases are running? (That's a really hard giant
file diff to compare given all the refactoring.)



On Sat, Jan 22, 2022 at 9:41 PM Julian Hyde <jhyde.apa...@gmail.com> wrote:

> Gavin, Thanks for the kind words.
>
> All, I have now squashed and rebased onto latest master. The squashed
> commit is
> https://github.com/julianhyde/calcite/commit/cb59231a72e23be260b21670012af33c47c2610e.
> I plan to merge to master on Monday.
>
> Jacques, You may wish to carefully review my changes to RelMetadataTest.
> In your fix for https://issues.apache.org/jira/browse/CALCITE-4952 <
> https://issues.apache.org/jira/browse/CALCITE-4952> you made
> RelMetadataTest a parameterized test, so that each case could be called
> with two metadata providers. I undid that, and made it into a test with a
> protected fixture() method, so that a sub-class can run the same tests with
> a different provider. I believe that the test coverage is the same, albeit
> via different means.
>
> Julian
>
>
> > On Jan 22, 2022, at 9:53 AM, Gavin Ray <ray.gavi...@gmail.com> wrote:
> >
> > Thank you for doing this, after reading the overview these changes seem
> > like they will make a number of things easier related to testing.
> > Super useful too when you're trying to start building something with
> > Calcite but don't know it well enough to figure out how to put all the
> > pieces together yourself.
> >
> > On Fri, Jan 21, 2022 at 3:57 PM Julian Hyde <jhyde.apa...@gmail.com>
> wrote:
> >
> >> If it helps you review, I have created a ’summary’ document with a
> >> description of the changes. It will become the commit message when I
> >> squash, rebase, and merge to master.
> >>
> >>
> >>
> https://github.com/julianhyde/calcite/blob/4885-test-fixtures/summary-of-calcite-4885.md
> >> <
> >>
> https://github.com/julianhyde/calcite/blob/4885-test-fixtures/summary-of-calcite-4885.md
> >
> >>
> >>
> >> Julian
> >>
> >>
> >>> On Jan 19, 2022, at 9:08 PM, Jacques Nadeau <jacq...@apache.org>
> wrote:
> >>>
> >>> Unfortunately, the last minute attendance of the meetup today threw my
> >>> schedule off and I won't be able to look at this for at least a few
> days.
> >>> Don't feel obligated to hold up for me.
> >>>
> >>> On Wed, Jan 19, 2022, 9:04 AM Jacques Nadeau <jacq...@apache.org>
> wrote:
> >>>
> >>>> FYI, I'm trying to do a thorough review today (as much as possible
> with
> >>>> patch this size).
> >>>>
> >>>> On Wed, Jan 19, 2022, 4:36 AM Michael Mior <mm...@apache.org> wrote:
> >>>>
> >>>>> Thanks for doing this Julian! I haven't been able to do a detailed
> >> review,
> >>>>> but from my skim of the PR, this looks like a nice improvement. I
> think
> >>>>> it's always been a bit difficult for new Calcite developers to write
> >> good
> >>>>> tests, especially for new modules. So anything that helps that
> >> experience
> >>>>> is very welcome.
> >>>>>
> >>>>> --
> >>>>> Michael Mior
> >>>>> mm...@apache.org
> >>>>>
> >>>>>
> >>>>> Le mer. 17 nov. 2021 à 01:15, Vladimir Sitnikov <
> >>>>> sitnikov.vladi...@gmail.com>
> >>>>> a écrit :
> >>>>>
> >>>>>> Jacques>This sounds like it will mean we will need to make
> >> calcite-core
> >>>>>> test artifacts available
> >>>>>>
> >>>>>> Test artifacts publication is yet another anti-pattern just like
> "base
> >>>>> test
> >>>>>> class".
> >>>>>> This change has been discussed:
> >>>>>> https://lists.apache.org/thread/fz96p94h016p11g777otqntjxg2oxgh1
> >>>>>>
> >>>>>> If you want to depend on a class from tests, consider moving it to
> >>>>> /testkit
> >>>>>> module:
> >>>>>>
> >>>>>>
> >>>>>
> >>
> https://github.com/apache/calcite/tree/0899e6c157632ba1c5369a942cfe2be15fb4ed9f/testkit
> >>>>>>
> >>>>>> Jacques>We should think about the rules around Kotlin
> >>>>>>
> >>>>>> What happens in calcite-core/tests stays in calcite-core/tests :)
> >>>>>>
> >>>>>> It is reasonable to assume that testkit module would have
> >> dependencies,
> >>>>>> and testkit would provide API that is usable from Java and other JVM
> >>>>>> languages.
> >>>>>>
> >>>>>> In that regard, Kotlin dependency in testkit is not much different
> >> from
> >>>>>> Quidem or commons-lang3.
> >>>>>> Consumers might use Quidem if it fits just like they could use
> Kotlin
> >>>>> if it
> >>>>>> fits.
> >>>>>>
> >>>>>> Vladimir
> >>>>>>
> >>>>>
> >>>>
> >>
> >>
>
>

Reply via email to