You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2018/05/07 13:00:00 UTC

[jira] [Commented] (FLINK-8971) Create general purpose testing job

    [ https://issues.apache.org/jira/browse/FLINK-8971?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16465880#comment-16465880 ] 

ASF GitHub Bot commented on FLINK-8971:
---------------------------------------

Github user StefanRRichter commented on a diff in the pull request:

    https://github.com/apache/flink/pull/5941#discussion_r186415017
  
    --- Diff: flink-end-to-end-tests/flink-datastream-allround-test/src/main/java/org/apache/flink/streaming/tests/SequenceGeneratorSource.java ---
    @@ -92,42 +92,63 @@
     	@Override
     	public void run(SourceContext<Event> ctx) throws Exception {
     
    -		Random random = new Random();
    +		if (keyRanges.size() > 0) {
    --- End diff --
    
    One suggestion because this methods became a bit long, why not break it down a bit? I would introduce two private methods, e.g., `runActive()` and `runIdle()` which are called in the `if` branches.


> Create general purpose testing job
> ----------------------------------
>
>                 Key: FLINK-8971
>                 URL: https://issues.apache.org/jira/browse/FLINK-8971
>             Project: Flink
>          Issue Type: Task
>          Components: Tests
>    Affects Versions: 1.5.0
>            Reporter: Till Rohrmann
>            Priority: Critical
>             Fix For: 1.5.0
>
>
> In order to write better end-to-end tests we need a general purpose testing job which comprises as many Flink aspects as possible. These include different types for records and state, user defined components, state types and operators.
> The job should allow to activate a certain misbehavior, such as slowing certain paths down or throwing exceptions to simulate failures.
> The job should come with a data generator which generates input data such that the job can verify it's own behavior. This includes the state as well as the input/output records.
> We already have the [heavily misbehaved job|https://github.com/rmetzger/flink-testing-jobs/blob/flink-1.4/basic-jobs/src/main/java/com/dataartisans/heavymisbehaved/HeavyMisbehavedJob.java] which simulates some misbehavior. There is also the [state machine job|https://github.com/dataArtisans/flink-testing-jobs/tree/master/streaming-state-machine] which can verify itself for invalid state changes which indicate data loss. We should incorporate their characteristics into the new general purpose job.
> Additionally, the general purpose job should contain the following aspects:
> * Job containing a sliding window aggregation
> * At least one generic Kryo type
> * At least one generic Avro type
> * At least one Avro specific record type
> * At least one input type for which we register a Kryo serializer
> * At least one input type for which we provide a user defined serializer
> * At least one state type for which we provide a user defined serializer
> * At least one state type which uses the AvroSerializer
> * Include an operator with ValueState
> * Value state changes should be verified (e.g. predictable series of values)
> * Include an operator with operator state
> * Include an operator with broadcast state
> * Broadcast state changes should be verified (e.g. predictable series of values)
> * Include union state
> * User defined watermark assigner
> The job should be made available in the {{flink-end-to-end-tests}} module.
> This issue is intended to serve as an umbrella issue for developing and extending this job.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)