Hi All,

Thank you for all your comments. If there is no further concern, I will
create the umbrella JIRA and promote the smoke test of connectors.

Best regards,

Weijie


weijie guo <[email protected]> 于2023年1月9日周一 18:06写道:

> 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