Hi Hamdy and Martijn,

Thanks for quickly reply.

SmokeKafkaITCase is very enlightening to me, and I totally agree with
Martijn about introducing smoke test and testing Datastream/SQL at the same
time. Maybe both SmokeXXXITCase or XXXSmokeTest is ok. I think we can
create a umbrella ticket to review each connector and introduce a similar
test like we discussed here. WDYT?

Best regards,

Weijie


Martijn Visser <[email protected]> 于2023年1月9日周一 16:58写道:

> Hi Weijie,
>
> Thanks for bringing this up. Fabian, Arvid and I also discussed these
> things like a year ago when we thought about the externalization of
> connectors. I believe that in the end, you will need to have a 'Smoke Test'
> [1] for a connector for a DataStream API program and one for a Table/SQL
> program. With that in mind, SmokeKafkaITCase was created for the
> combination of Kafka and DataStream API. It would be good to standardize on
> such a practice.
>
> I'm not sure if SqlClient{connector_name}ITCase is the best convention,
> because it implies that you're testing something on the SqlClient. That's
> why we liked the idea of Smoke tests.
>
> Best regards,
>
> Martijn
>
> [1] https://en.wikipedia.org/wiki/Smoke_testing_(software)
>
> On Mon, Jan 9, 2023 at 9:41 AM Hamdy, Ahmed <[email protected]>
> wrote:
>
> > Hi Weijie
> > I personally agree with the proposal, it guarantees keeping high
> standards
> > across our repos.
> > Speaking from AWS connectors side, we have maintained e2e tests for
> > Kinesis and Firehose sql connectors,  DDB to follow.
> > Happy to coordinate regarding any new conventions or suggestions.
> >
> > On 09/01/2023, 05:48, "weijie guo" <[email protected]> wrote:
> >
> >     CAUTION: This email originated from outside of the organization. Do
> > not click links or open attachments unless you can confirm the sender and
> > know the content is safe.
> >
> >
> >
> >     Hi devs,
> >
> >
> >     I'd like to start a discussion about adding sql-connector's uber jar
> >     e2e test for connectors.
> >
> >
> >     I know that some connectors like kafka and HBase have corresponding
> >     sql connector uber jar's test, which are located in SqlClientITCase
> >     and SQLClientHBaseITCase respectively. However, some sql connectors
> do
> >     not seem to have tests
> >     to the uber jars, such as pulsar and rabbitmq. It is worth mentioning
> >     that before migrating to an external repository, apache/flink tested
> >     ElasticSearch with the uber jar. After being migrated to an external
> >     repository, we lost this test. At the same time, the previous test
> >     only covered es7, but did not cover es6, which led to a bug like
> >     FLINK-30359 that existed for a long time but nobody found it.
> >
> >
> >     Because sql-connector-* generally only uses the maven-shade-plugin to
> >     produce the uber jar, the
> >     end to end test
> >     only needs to start a corresponding docker container, add the
> >     dependency of uber jar through SQLJobSubmissionBuilder#addJars, and
> >     run a very simple job.
> >
> >
> >     Since the uber jar generated in sql-connector-* may not work properly
> >     for various reasons,
> >     for example, some required dependencies are excluded, and incorrect
> > shade
> >     JDBC driver.
> >     I propose to check and add sql-connector e2e tests for all sql
> >     connectors. Given that Flink plans to externalize the connectors,
> >     there seems to be no good way to uniformly detect and run all such
> >     tests. Theoretically, there should be a mechanism to ensure the
> >     existence of these tests in all external repositories of connectors
> >     that have sql-connector module, but there seems to be no good way to
> >     do this, which may be the responsibility of the connector maintainer
> >     or code reviewer.
> >
> >     I understand that there may be no clear standards or negligence in
> >     code reviewing before, resulting in the lack of corresponding uber
> jar
> >     test for some connector. Therefore, I suggest that we should do the
> >     following:
> >
> >        1.
> >        Check all sql-connector-* in internal or external repository and
> >     add missing test.
> >        2.
> >        In order to form conventions and facilitate code review, I suggest
> >     that the name of the sql-connector uber jar test should be
> >     SqlClient{connector_name}ITCase, because we now have many confusing
> >     names to do the same things, such as SQLClientHBaseITCase,
> >     SqlClientITCase, KinesisDataStreamsTableApiIT.
> >        3.
> >        I don't know whether the community has documents to guide
> connector
> >     contributors to follow. If so, this requirement of uber jar test
> needs
> >     to be added to the relevant part. If not, perhaps we should have a
> >     document to do this?
> >        4.
> >        In any case, we should ensure that all tests (UT, IT, E2E tests)
> >     including sql-connecotor e2e test are not lost during the code
> review.
> >
> >     Any thoughts on this? Looking forward to your reply!
> >
> >     Best regards,
> >
> >     Weijie
> >
> >
>

Reply via email to