#!/usr/bin/env bash set +e JS_FEATURE=0 if [[ "$1" == "--js" ]]; then JS_FEATURE=1 fi dir="target/test-reports" docDir="doc" mkdir -p "$dir" mkdir -p "$docDir" if [[ "$JS_FEATURE" == "1" ]]; then header="## JS feature" outFile="$docDir/performance-js.md" featureArgs="--features js" else header="## Default features" outFile="$docDir/performance-default.md" featureArgs="" fi names=(test_rhai_expr_set_and_get test_conditional_node_then_else test_http_node_with_mock test_stateful_engine test_db_and_mq_nodes test_group_parallel_sleep test_expr_set_without_engine_error) if [[ "$JS_FEATURE" == "1" ]]; then names+=(test_js_expr_and_fork_join) fi md="# dsl-flow Test Performance\n\n${header}\n" for n in "${names[@]}"; do # Measure elapsed seconds with bash time builtin TIMEFORMAT='%3R' dur=$( { time cargo test -p dsl-flow ${featureArgs} -- --exact "${n}" --nocapture --quiet >/dev/null; } 2>&1 ) md+="- ${n}: ${dur}s\n" done printf "%b" "$md" > "$outFile" echo "Report written to $outFile"