This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-performance-tests.git


The following commit(s) were added to refs/heads/main by this push:
     new fc47b23  ai-benchmark: six more ladder examples run once a week
fc47b23 is described below

commit fc47b237695575f91926b4cbc8a01c57da43a83c
Author: Claus Ibsen <[email protected]>
AuthorDate: Wed Nov 11 09:56:05 2026 +0100

    ai-benchmark: six more ladder examples run once a week
    
    Every step of connect-stock-api, contracts-openapi-client,
    fail-well-circuit-breaker, transform-csv-to-json, transform-json-transform 
and
    transform-xslt passed in 95% or more of the 26 runs of r28 to r31. Together 
they
    are 20 of the ladder's 58 steps and took about 18 of the 37 minutes of a 
ladder
    round in r31. They now run in the weekly set (steps-weekly/), like the four
    examples moved on Nov 2, so the nightly ladder has time for new examples.
    
    The ladder is now 11 examples and 38 steps, the weekly set 10 examples and 
33
    steps. The six step files are unchanged; only their folder moved. The
    generator does not remove old step files: delete the six from steps-ladder/
    when regenerating an older checkout.
    
    Co-Authored-By: Claude Opus 5.5 <[email protected]>
    Claude-Session: https://claude.ai/code/session_016Y4dDi5iQNgtHrDdz2NpwF
---
 ai-benchmark/gen_stepwise.py | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/ai-benchmark/gen_stepwise.py b/ai-benchmark/gen_stepwise.py
index 74b6107..8fa5d1f 100644
--- a/ai-benchmark/gen_stepwise.py
+++ b/ai-benchmark/gen_stepwise.py
@@ -15,7 +15,9 @@ import datetime, json, os, shutil, sys
 HERE = os.path.dirname(os.path.abspath(__file__))
 STEPS_DIR = os.path.join(HERE, "steps-ladder")
 # Claus, Nov 2: four examples passed every step in all 21 runs of r23 to r25; 
they run once a week, in steps-weekly/,
-# so the nightly ladder has time for the new examples
+# so the nightly ladder has time for the new examples. Claus, Nov 11: six 
more, whose every step passed in 95% or more
+# of the 26 runs of r28 to r31 (connect-stock-api, contracts-openapi-client, 
fail-well-circuit-breaker,
+# transform-csv-to-json, transform-json-transform, transform-xslt: 20 steps, 
about 18 of the 37 minutes of a round)
 WEEKLY = "steps-weekly"
 # CAMEL-25670: dev mode with --source-dir reloads the routes for every file 
they write into the project's own folders
 # (connect-file-processing reloaded every 2 s, r13); camel.jbang.dataDir 
leaves those folders out (Camel 4.24)
@@ -160,7 +162,7 @@ def jq(expr):
     return ("        - transform:\n            expression:\n              
jq:\n                expression: \"" + expr + "\"\n                resultType: 
java.lang.String\n")
 JQ_FULL = "{order: .orderId, country: .country, pick: [.lines[] | {sku: .sku, 
qty: .qty}]}"
 EXAMPLES.append({
-    "name": "transform-json-transform", "route_file": JT, "props_file": 
"application.properties", "wait_seconds": 8,
+    "name": "transform-json-transform", "steps_dir": WEEKLY, "route_file": JT, 
"props_file": "application.properties", "wait_seconds": 8,
     "seed": "transform-json-transform",
     "initial": {JT: route("json-transform", TIMER1, BODY_FILE + log("Order: 
${body}")), "application.properties": ""},
     "steps": [
@@ -213,7 +215,7 @@ XSL_V3 = XSL_HEAD + "    <packingSlip order=\"{@id}\" 
customer=\"{customer}\" co
 XSLT_STEP = "        - to:\n            uri: xslt\n            parameters:\n   
           resourceUri: packing-slip.xsl\n"
 xs_route = route("xslt", FILE_INBOX, XSLT_STEP + log("Packing slip: ${body}"))
 EXAMPLES.append({
-    "name": "transform-xslt", "route_file": XS, "props_file": 
"application.properties", "wait_seconds": 8,
+    "name": "transform-xslt", "steps_dir": WEEKLY, "route_file": XS, 
"props_file": "application.properties", "wait_seconds": 8,
     "seed": "transform-xslt", "exclude_seeds": ["packing-slip.xsl"],
     "initial": {XS: route("xslt", FILE_INBOX, log("Supplier order: ${body}")), 
"application.properties": ""},
     "steps": [
@@ -328,7 +330,7 @@ cbr_s2 = route("stock-check", TIMER_STOCK, CALL + 
log("Stock check ${header.Came
 cbr_s3 = route("stock-check", TIMER_STOCK, breaker("") + log("Stock check 
${header.CamelTimerCounter}: ${body}"), SUPPLIER_FAIL)
 cbr_s4 = route("stock-check", TIMER_STOCK, breaker(R4J) + log("Stock check 
${header.CamelTimerCounter} (breaker 
${exchangeProperty.CamelCircuitBreakerState}): ${body}"), SUPPLIER_FAIL)
 EXAMPLES.append({
-    "name": "fail-well-circuit-breaker", "route_file": CBR, "props_file": 
"application.properties", "wait_seconds": 14,
+    "name": "fail-well-circuit-breaker", "steps_dir": WEEKLY, "route_file": 
CBR, "props_file": "application.properties", "wait_seconds": 14,
     "initial": {CBR: cbr_s1, "application.properties": ""},
     "steps": [
         {"request": "Make the supplier route throw a java.net.ConnectException 
\"supplier unreachable\" when the timer counter (header CamelTimerCounter) is 4 
to 12, and answer with the stock otherwise; expect nine stack traces in the 
log.",
@@ -401,7 +403,7 @@ csv_s3 = route("csv-to-json", FILE_INBOX_CSV, UNMARSHAL_CSV 
+ split_body(log("In
 csv_s4 = route("csv-to-json", FILE_INBOX_CSV, UNMARSHAL_CSV + 
split_body(CSV_HDR + MARSHAL_JSON_IN + log("Invoice ${variable.invoiceId}: 
${body}", I)))
 csv_s5 = route("csv-to-json", FILE_INBOX_CSV, UNMARSHAL_CSV + 
split_body(CSV_HDR + MARSHAL_JSON_IN + log("Invoice ${variable.invoiceId}: 
${body}", I) + TO_OUTBOX))
 EXAMPLES.append({
-    "name": "transform-csv-to-json", "route_file": CSV, "props_file": 
"application.properties", "wait_seconds": 8,
+    "name": "transform-csv-to-json", "steps_dir": WEEKLY, "route_file": CSV, 
"props_file": "application.properties", "wait_seconds": 8,
     "seed": "transform-csv-to-json",
     "initial": {CSV: csv_s1, "application.properties": DATA_DIR + 
"inbox,outbox\n"},
     "steps": [
@@ -634,7 +636,7 @@ sa_s3 = REST_BOTH + "\n" + ALL_STOCK + "\n" + 
route("one-sku", DIRECT("one-sku")
 sa_s4 = REST_BOTH + "\n" + ALL_STOCK + "\n" + route("one-sku", 
DIRECT("one-sku"), log("Stock asked for ${header.sku}") + 
const("resource:file:stock.json") + GROOVY_SKU + NOT_FOUND + CT_JSON)
 GET = lambda path, status=200, rx=None: {"method": "GET", "url": 
"http://localhost:8080"; + path, "expect_status": status, **({"body_regex": rx} 
if rx else {})}
 EXAMPLES.append({
-    "name": "connect-stock-api", "route_file": SA, "props_file": 
"application.properties", "wait_seconds": 4,
+    "name": "connect-stock-api", "steps_dir": WEEKLY, "route_file": SA, 
"props_file": "application.properties", "wait_seconds": 4,
     "seed": "connect-stock-api",
     "initial": {SA: sa_s1, "application.properties": PORT_PROPS},
     "steps": [
@@ -769,7 +771,7 @@ ON_409 = ("- onException:\n    exception:\n      - 
org.apache.camel.http.base.Ht
           "    steps:\n      - log:\n          loggingLevel: WARN\n          
message: \"${variable.orderId}: ${variable.sku} not reserved, the stock API 
answered ${exception.statusCode}: ${exception.responseBody}\"\n\n")
 oc_s4 = ON_409 + oc_s3
 EXAMPLES.append({
-    "name": "contracts-openapi-client", "route_file": OC, "props_file": 
"application.properties", "wait_seconds": 8,
+    "name": "contracts-openapi-client", "steps_dir": WEEKLY, "route_file": OC, 
"props_file": "application.properties", "wait_seconds": 8,
     "seed": "contracts-openapi-client",
     "peer": {"seed": "_peer-openapi-server", "project": 
"stepwise-ladder/_peer-openapi-server", "name": "stock-api-peer"},
     "initial": {OC: oc_s1, "application.properties": OC_PROPS},

Reply via email to