[ 
https://issues.apache.org/jira/browse/CAMEL-26757?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Work on CAMEL-26757 started by shashank.
----------------------------------------
> camel-chaos - test that chaos step rules and the exchange sanitizer work 
> together
> ---------------------------------------------------------------------------------
>
>                 Key: CAMEL-26757
>                 URL: https://issues.apache.org/jira/browse/CAMEL-26757
>             Project: Camel
>          Issue Type: Improvement
>          Components: camel-core
>            Reporter: shashank
>            Assignee: shashank
>            Priority: Minor
>
> Follow-up of CAMEL-26714 (the {{camel-sanitizer}} module, rule R1), as agreed 
> in the review of its pull request.
> The exchange sanitizer design ({{design/exchange-sanitizer.adoc}}, 
> "Validation", "Together with the others") asks for a test that runs a route 
> with a chaos step rule and the sanitizer on, and shows that each still works: 
> chaos injects its faults, and the sanitizer reports only real breaks of the 
> contract of {{AsyncProcessor}}. A step that the chaos hook fails is not a 
> call of its processor, so it must not be checked or reported. 
> {{ManagedSanitizerTest}} in camel-management covers this with a hand-written 
> {{StepHook}}; there is no test with the real rules of camel-chaos.
> Proposal: a small test class in camel-chaos, which already has 
> {{camel-test-junit6}} in test scope, with {{camel-sanitizer}} added in test 
> scope (it only brings camel-support and camel-core-model, which camel-chaos 
> already has). The tests in camel-core, where the other sanitizer tests are, 
> cannot use camel-chaos: camel-chaos uses camel-main in test scope, and 
> camel-main uses the test-jar of camel-core in test scope, so the reactor 
> would have a cycle.
> The cases:
> * a {{step=}} {{error}} rule that fails the first attempt of a step, with the 
> error handler redelivering: the processor is called once, and the sanitizer 
> checks only the redelivered call;
> * the same rule on a route with {{noErrorHandler()}}, where the channel of 
> the step asks the hook: the processor is never called, and the sanitizer 
> checks no call;
> * a {{step=}} {{delay}} rule: one call, no report;
> * an {{endpoint=}} {{duplicate}} rule, with a first send that completes 
> asynchronously and with one that completes synchronously: the producer is 
> called twice within one call of the step, whose callback is called once, so 
> no report;
> * a processor that throws instead of calling its callback, on a step whose 
> first attempt a rule fails: reported once ({{THREW_BEFORE_CALLBACK}}), for 
> the redelivered call only.
> Left out on purpose: JMX, the tracer and the backlog debugger, which 
> {{ManagedSanitizerTest}} in camel-management already runs with the sanitizer 
> and a hand-written hook that fails a step. Adding camel-management to the 
> test scope of camel-chaos would switch JMX on for its camel-main tests.
> Test only, no change to main code.
> _Filed with Claude Code on behalf of allthingssecurity._



--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

Reply via email to