Skip to content

Commit de59f03

Browse files
author
Cecile Terpin
committed
merge with master
2 parents df21ed3 + 70a9d04 commit de59f03

File tree

2,348 files changed

+82164
-31129
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

2,348 files changed

+82164
-31129
lines changed

.circleci/collect_results.sh

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,20 +7,32 @@ set -e
77
#Enable '**' support
88
shopt -s globstar
99

10-
TEST_RESULTS_DIR=./results
11-
mkdir -p $TEST_RESULTS_DIR >/dev/null 2>&1
12-
10+
TEST_RESULTS_DIR=results
11+
WORKSPACE_DIR=workspace
1312
mkdir -p $TEST_RESULTS_DIR
13+
mkdir -p $WORKSPACE_DIR
1414

15-
mkdir -p workspace
16-
mapfile -t test_result_dirs < <(find workspace -name test-results -type d)
15+
mapfile -t TEST_RESULT_DIRS < <(find $WORKSPACE_DIR -name test-results -type d)
1716

18-
if [[ ${#test_result_dirs[@]} -eq 0 ]]; then
17+
if [[ ${#TEST_RESULT_DIRS[@]} -eq 0 ]]; then
1918
echo "No test results found"
2019
exit 0
2120
fi
2221

23-
echo "saving test results"
24-
find "${test_result_dirs[@]}" -name \*.xml -exec sh -c '
25-
file=$(echo "$0" | rev | cut -d "/" -f 1,2,5 | rev | tr "/" "_")
26-
cp "$0" "$1/$file"' {} $TEST_RESULTS_DIR \;
22+
echo "Saving test results:"
23+
while IFS= read -r -d '' RESULT_XML_FILE
24+
do
25+
echo -n "- $RESULT_XML_FILE"
26+
AGGREGATED_FILE_NAME=$(echo "$RESULT_XML_FILE" | rev | cut -d "/" -f 1,2,5 | rev | tr "/" "_")
27+
echo -n " as $AGGREGATED_FILE_NAME"
28+
cp "$RESULT_XML_FILE" "$TEST_RESULTS_DIR/$AGGREGATED_FILE_NAME"
29+
# Replace Java Object hashCode by marker in testcase XML nodes to get stable test names
30+
sed -i '/<testcase/ s/@[0-9a-f]\{5,\}/@HASHCODE/g' "$TEST_RESULTS_DIR/$AGGREGATED_FILE_NAME"
31+
# Replace random port numbers by marker in testcase XML nodes to get stable test names
32+
sed -i '/<testcase/ s/localhost:[0-9]\{2,5\}/localhost:PORT/g' "$TEST_RESULTS_DIR/$AGGREGATED_FILE_NAME"
33+
if cmp -s "$RESULT_XML_FILE" "$TEST_RESULTS_DIR/$AGGREGATED_FILE_NAME"; then
34+
echo ""
35+
else
36+
echo -n " (non-stable test names detected)"
37+
fi
38+
done < <(find "${TEST_RESULT_DIRS[@]}" -name \*.xml -print0)

.circleci/config.continue.yml.j2

Lines changed: 100 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ instrumentation_modules: &instrumentation_modules "dd-java-agent/instrumentation
3636
debugger_modules: &debugger_modules "dd-java-agent/agent-debugger|dd-java-agent/agent-bootstrap|dd-java-agent/agent-builder|internal-api|communication|dd-trace-core"
3737
profiling_modules: &profiling_modules "dd-java-agent/agent-profiling"
3838

39-
default_system_tests_commit: &default_system_tests_commit c87bd359aad64a29f280fc5c70a879f7c7f4846e
39+
default_system_tests_commit: &default_system_tests_commit 67fe30ac7504997685859d31feae1782f3527f39
4040

4141
parameters:
4242
nightly:
@@ -54,7 +54,7 @@ parameters:
5454
global_pattern:
5555
# Pattern for files that should always trigger a test jobs
5656
type: string
57-
default: "^build.gradle$|^settings.gradle$|^gradle.properties$|^buildSrc/|^gradle/|.circleci"
57+
default: "^build.gradle$|^settings.gradle$|^gradle.properties$|^buildSrc/|^gradle/|.circleci|^gradlew|^mvnw|^.mvn/"
5858

5959
docker_image:
6060
type: string
@@ -660,7 +660,8 @@ jobs:
660660
- DD_POOL_TRACE_CHECK_FAILURES=true
661661
- DD_DISABLE_ERROR_RESPONSES=true
662662
- ENABLED_CHECKS=trace_content_length,trace_stall,meta_tracer_version_header,trace_count_header,trace_peer_service,trace_dd_service
663-
resource_class: xlarge
663+
# TODO: merge xlarge_tests and tests? or rename this?
664+
resource_class: large
664665

665666

666667
# The only way to do fan-in in CircleCI seems to have a proper job, so let's have one that
@@ -781,6 +782,7 @@ jobs:
781782
name: Gather muzzle tasks
782783
command: >-
783784
SKIP_BUILDSCAN="true"
785+
GRADLE_OPTS="-Dorg.gradle.jvmargs='-Xmx2G -Xms2G -XX:ErrorFile=/tmp/hs_err_pid%p.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp'"
784786
./gradlew writeMuzzleTasksToFile
785787
<< pipeline.parameters.gradle_flags >>
786788
--max-workers=3
@@ -814,6 +816,7 @@ jobs:
814816
parameters:
815817
weblog-variant:
816818
type: string
819+
parallelism: 4
817820
steps:
818821
- setup_system_tests
819822
@@ -831,32 +834,50 @@ jobs:
831834
832835
- run:
833836
name: Run
834-
command: |
835-
cd system-tests
836-
DD_API_KEY=$SYSTEM_TESTS_DD_API_KEY ./run.sh
837-
838-
- run:
839-
name: Run APM E2E default tests
840837
# Stop the job after 5m to avoid excessive overhead. Will need adjustment as more tests are added.
841838
no_output_timeout: 5m
842839
command: |
843840
cd system-tests
844-
DD_SITE=datadoghq.com DD_API_KEY=$SYSTEM_TESTS_E2E_DD_API_KEY DD_APPLICATION_KEY=$SYSTEM_TESTS_E2E_DD_APP_KEY ./run.sh APM_TRACING_E2E
841+
(
842+
echo "
843+
DEFAULT
844+
APM_TRACING_E2E
845+
APM_TRACING_E2E_SINGLE_SPAN
846+
"
847+
if ! [[ << parameters.weblog-variant >> =~ .*native ]]; then
848+
echo "
849+
APPSEC_BLOCKING
850+
APPSEC_REQUEST_BLOCKING
851+
APPSEC_RASP
852+
APPSEC_RUNTIME_ACTIVATION
853+
REMOTE_CONFIG_MOCKED_BACKEND_ASM_DD
854+
"
855+
fi
856+
) | circleci tests split > scenarios.list
857+
for scenario in $(<scenarios.list); do
858+
if [[ $scenario =~ .*_E2E.* ]]; then
859+
export DD_SITE=datadoghq.com
860+
export DD_API_KEY=$SYSTEM_TESTS_E2E_DD_API_KEY
861+
export DD_APPLICATION_KEY=$SYSTEM_TESTS_E2E_DD_APP_KEY
862+
else
863+
export DD_API_KEY=$SYSTEM_TESTS_DD_API_KEY
864+
fi
865+
echo "Running scenario $scenario"
866+
./run.sh $scenario
867+
done
845868
846869
- run:
847-
name: Run APM E2E Single Span tests
848-
# Stop the job after 5m to avoid excessive overhead. Will need adjustment as more tests are added.
849-
no_output_timeout: 5m
870+
name: Collect artifacts
850871
command: |
872+
mkdir -p artifacts
851873
cd system-tests
852-
DD_SITE=datadoghq.com DD_API_KEY=$SYSTEM_TESTS_E2E_DD_API_KEY DD_APPLICATION_KEY=$SYSTEM_TESTS_E2E_DD_APP_KEY ./run.sh APM_TRACING_E2E_SINGLE_SPAN
853-
854-
- run:
855-
name: Collect artifacts
856-
command: tar -cvzf logs_java_<< parameters.weblog-variant >>_dev.tar.gz -C system-tests logs logs_apm_tracing_e2e logs_apm_tracing_e2e_single_span
874+
shopt -s nullglob
875+
for log_dir in logs*; do
876+
tar -cvzf ../artifacts/${log_dir}_<< parameters.weblog-variant >>.tar.gz $log_dir
877+
done
857878
858879
- store_artifacts:
859-
path: logs_java_<< parameters.weblog-variant >>_dev.tar.gz
880+
path: artifacts
860881
861882
integrations-system-tests:
862883
machine:
@@ -879,11 +900,27 @@ jobs:
879900
880901
- run:
881902
name: Run APM Integrations tests
903+
environment:
904+
- AWS_ACCESS_KEY_ID: $SYSTEM_TESTS_IDM_AWS_ACCESS_KEY_ID
905+
- AWS_SECRET_ACCESS_KEY: $SYSTEM_TESTS_IDM_AWS_SECRET_ACCESS_KEY
906+
- AWS_REGION: us-east-1
907+
- AWS_DEFAULT_REGION: us-east-1 # AWS services should use `AWS_REGION`, but some still use the older `AWS_DEFAULT_REGION`
882908
# Stop the job after 5m to avoid excessive overhead. Will need adjustment as more tests are added.
883909
no_output_timeout: 5m
884910
command: |
885911
cd system-tests
886912
DD_SITE=datadoghq.com DD_API_KEY=$SYSTEM_TESTS_E2E_DD_API_KEY DD_APPLICATION_KEY=$SYSTEM_TESTS_E2E_DD_APP_KEY ./run.sh INTEGRATIONS
913+
914+
- run:
915+
name: Run IDM Crossed Tracing Libraries propagation tests for messaging
916+
environment:
917+
- AWS_ACCESS_KEY_ID: $SYSTEM_TESTS_IDM_AWS_ACCESS_KEY_ID
918+
- AWS_SECRET_ACCESS_KEY: $SYSTEM_TESTS_IDM_AWS_SECRET_ACCESS_KEY
919+
- AWS_REGION: us-east-1
920+
- AWS_DEFAULT_REGION: us-east-1 # AWS services should use `AWS_REGION`, but some still use the older `AWS_DEFAULT_REGION`
921+
command: |
922+
cd system-tests
923+
DD_API_KEY=$SYSTEM_TESTS_DD_API_KEY ./run.sh CROSSED_TRACING_LIBRARIES
887924
888925
- store_test_results:
889926
path: system-tests/logs_integrations
@@ -944,31 +981,29 @@ jobs:
944981
name: Build runner
945982
command: |
946983
cd system-tests
947-
export TEST_LIBRARY=java
948984
./build.sh -i runner
949985
950986
- run:
951987
name: Run
952988
command: |
953989
set -e
954990
cd system-tests
955-
export TEST_LIBRARY=java
956-
export PYTEST_XDIST_AUTO_NUM_WORKERS=6
957991
set +e
958992
RUN_ATTEMPTS=1
959-
while [ $RUN_ATTEMPTS -le 3 ]; do
993+
MAX_ATTEMPTS=1 # Disable retries as the runner is supposed to be stable. Revert to 3 if needed.
994+
while [ $RUN_ATTEMPTS -le $MAX_ATTEMPTS ]; do
960995
echo "Running parametric test attempt $RUN_ATTEMPTS"
961-
timeout 12m ./run.sh PARAMETRIC --log-cli-level=DEBUG --durations=30 -vv
996+
timeout 20m ./run.sh PARAMETRIC --library java --durations=30 -vv
962997
status=$?
963-
#timneout returns 124 if it times out
964-
#if the return code is not 124, then we exit with the status
998+
# timeout returns 124 if it times out
999+
# if the return code is not 124, then we exit with the status
9651000
if [ $status -ne 124 ]; then
9661001
exit $status
9671002
break
9681003
fi
9691004
RUN_ATTEMPTS=$((RUN_ATTEMPTS+1))
970-
if [ $RUN_ATTEMPTS -eq 4 ]; then
971-
#Max attempts reached, exit with 124
1005+
if [ $RUN_ATTEMPTS -gt $MAX_ATTEMPTS ]; then
1006+
# Max attempts reached, exit with 124
9721007
exit 124
9731008
fi
9741009
done
@@ -979,9 +1014,11 @@ jobs:
9791014
- run:
9801015
name: Collect artifacts
9811016
command: tar -cvzf logs_java_parametric_dev.tar.gz -C system-tests logs_parametric
1017+
when: always
9821018
9831019
- store_artifacts:
9841020
path: logs_java_parametric_dev.tar.gz
1021+
when: always
9851022
9861023
9871024
build_test_jobs: &build_test_jobs
@@ -1099,8 +1136,8 @@ build_test_jobs: &build_test_jobs
10991136
triggeredBy: *instrumentation_modules
11001137
stage: instrumentation
11011138
cacheType: inst
1102-
parallelism: 4
1103-
maxWorkers: 4
1139+
parallelism: 12
1140+
maxWorkers: 3
11041141
matrix:
11051142
<<: *test_matrix
11061143
@@ -1113,8 +1150,8 @@ build_test_jobs: &build_test_jobs
11131150
triggeredBy: *instrumentation_modules
11141151
stage: instrumentation
11151152
cacheType: inst
1116-
parallelism: 4
1117-
maxWorkers: 4
1153+
parallelism: 12
1154+
maxWorkers: 3
11181155
testJvm: "8"
11191156
11201157
- xlarge_tests:
@@ -1127,8 +1164,8 @@ build_test_jobs: &build_test_jobs
11271164
triggeredBy: *instrumentation_modules
11281165
stage: instrumentation
11291166
cacheType: latestdep
1130-
parallelism: 4
1131-
maxWorkers: 4
1167+
parallelism: 12
1168+
maxWorkers: 3
11321169
testJvm: "8"
11331170
11341171
- xlarge_tests:
@@ -1141,8 +1178,8 @@ build_test_jobs: &build_test_jobs
11411178
triggeredBy: *instrumentation_modules
11421179
stage: instrumentation
11431180
cacheType: latestdep
1144-
parallelism: 4
1145-
maxWorkers: 4
1181+
parallelism: 12
1182+
maxWorkers: 3
11461183
testJvm: "17"
11471184
11481185
- xlarge_tests:
@@ -1155,8 +1192,8 @@ build_test_jobs: &build_test_jobs
11551192
triggeredBy: *instrumentation_modules
11561193
stage: instrumentation
11571194
cacheType: latestdep
1158-
parallelism: 4
1159-
maxWorkers: 4
1195+
parallelism: 12
1196+
maxWorkers: 3
11601197
testJvm: "21"
11611198
11621199
{% if flaky %}
@@ -1184,7 +1221,7 @@ build_test_jobs: &build_test_jobs
11841221
triggeredBy: *instrumentation_modules
11851222
stage: instrumentation
11861223
cacheType: inst
1187-
parallelism: 2
1224+
parallelism: 12
11881225
maxWorkers: 4
11891226
testJvm: "8"
11901227
@@ -1200,6 +1237,20 @@ build_test_jobs: &build_test_jobs
12001237
parallelism: 4
12011238
maxWorkers: 4
12021239
testJvm: "8"
1240+
1241+
- tests:
1242+
requires:
1243+
- ok_to_test
1244+
name: z_test_8_flaky_debugger
1245+
gradleTarget: ":debuggerTest"
1246+
gradleParameters: "-PrunFlakyTests"
1247+
continueOnFailure: true
1248+
triggeredBy: *debugger_modules
1249+
stage: debugger
1250+
cacheType: base
1251+
parallelism: 4
1252+
maxWorkers: 4
1253+
testJvm: "8"
12031254
{% endif %}
12041255
12051256
- tests:
@@ -1331,6 +1382,14 @@ build_test_jobs: &build_test_jobs
13311382
stage: tracing
13321383
testJvm: "8"
13331384
1385+
- fan_in:
1386+
requires:
1387+
- test_8_inst_latest
1388+
- test_17_inst_latest
1389+
- test_21_inst_latest
1390+
name: test_inst_latest
1391+
stage: tracing
1392+
13341393
- agent_integration_tests:
13351394
requires:
13361395
- ok_to_test
@@ -1403,6 +1462,8 @@ build_test_jobs: &build_test_jobs
14031462
{% for jdk in all_jdks %}
14041463
- "test_{{ jdk }}"
14051464
{% endfor %}
1465+
- test_inst_latest
1466+
- muzzle
14061467
- profiling
14071468
- debugger
14081469
- system-tests

.circleci/render_config.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
}
2929
# Version to use for all the base Docker images, see
3030
# https://github.com/DataDog/dd-trace-java-docker-build/pkgs/container/dd-trace-java-docker-build
31-
DOCKER_IMAGE_VERSION="v24.08"
31+
DOCKER_IMAGE_VERSION="v24.10"
3232

3333
# Get labels from pull requests to override some defaults for jobs to run.
3434
# `run-tests: all` will run all tests.

0 commit comments

Comments
 (0)