Skip to content

Commit 7973f5a

Browse files
authored
Add errors test (#35)
1 parent 6319d59 commit 7973f5a

File tree

16 files changed

+115
-59
lines changed

16 files changed

+115
-59
lines changed

integration_tests/run.sh

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
LOGS_WAIT_SECONDS=45
1010

11-
DEFAULT_NODE_LAYER_VERSION=64
11+
DEFAULT_NODE_LAYER_VERSION=66
1212
DEFAULT_PYTHON_LAYER_VERSION=49
1313

1414
set -e
@@ -79,12 +79,9 @@ NODE_LAYER_VERSION=${NODE_LAYER_VERSION} \
7979
serverless deploy --stage ${stage}
8080

8181
# invoke functions
82-
83-
python_node_function_names=("enhanced-metric-node" "enhanced-metric-python" "no-enhanced-metric-node" "no-enhanced-metric-python" "timeout-python" "timeout-node")
82+
python_node_function_names=("enhanced-metric-node" "enhanced-metric-python" "no-enhanced-metric-node" "no-enhanced-metric-python" "timeout-python" "timeout-node" "error-node" "error-python")
8483
python_node_log_function_names=("log-node" "log-python")
85-
8684
go_function_names=("with-ddlambda-go" "without-ddlambda-go" "timeout-go")
87-
8885
trace_function_names=("simple-trace-node" "simple-trace-python" "simple-trace-go")
8986

9087
all_functions=("${python_node_function_names[@]}" "${python_node_log_function_names[@]}" "${go_function_names[@]}" "${trace_function_names[@]}")
@@ -98,7 +95,7 @@ for function_name in "${all_functions[@]}"; do
9895

9996
# Compare new return value to snapshot
10097
diff_output=$(echo "$return_value" | diff - "./snapshots/expectedInvocationResult")
101-
if [ $? -eq 1 ] && [ ${function_name:0:7} != timeout ]; then
98+
if [ "$?" -eq 1 ] && [ [ "${function_name:0:7}" != timeout ] || [ "${function_name:0:5}" != error ] ]; then
10299
echo "Failed: Return value for $function_name does not match snapshot:"
103100
echo "$diff_output"
104101
mismatch_found=true
@@ -224,9 +221,14 @@ for function_name in "${all_functions[@]}"; do
224221

225222
done
226223

227-
if [ "$mismatch_found" = true ]; then
224+
echo
225+
if [ "$UPDATE_SNAPSHOTS" == "true" ]; then
226+
echo "DONE: Snapshots were updated for all functions."
227+
exit 0
228+
elif [ "$mismatch_found" == true ]; then
228229
echo "FAILURE: A mismatch between new data and a snapshot was found and printed above."
229230
exit 1
230231
fi
231232

232233
echo "SUCCESS: No difference found between snapshots and new return values or logs"
234+
echo

integration_tests/serverless.yml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,17 @@ functions:
5353
DD_TAGS: tagA:valueA tagB:valueB
5454
DD_EXTRA_TAGS: tagC:valueC tagD:valueD
5555

56+
error-node:
57+
runtime: nodejs14.x
58+
handler: src/metric.errorTest
59+
layers:
60+
- arn:aws:lambda:${self:provider.region}:464622532012:layer:Datadog-Node14-x:${env:NODE_LAYER_VERSION}
61+
- { Ref: RecorderExtensionLambdaLayer }
62+
- { Ref: DatadogExtensionIntegrationTestLambdaLayer }
63+
environment:
64+
DD_TAGS: tagA:valueA tagB:valueB
65+
DD_EXTRA_TAGS: tagC:valueC tagD:valueD
66+
5667
enhanced-metric-python:
5768
runtime: python3.8
5869
handler: datadog_lambda.handler.handler
@@ -65,6 +76,18 @@ functions:
6576
DD_EXTRA_TAGS: tagC:valueC tagD:valueD
6677
DD_LAMBDA_HANDLER: src/metricPython.metric
6778

79+
error-python:
80+
runtime: python3.8
81+
handler: datadog_lambda.handler.handler
82+
layers:
83+
- arn:aws:lambda:${self:provider.region}:464622532012:layer:Datadog-Python38:${env:PYTHON_LAYER_VERSION}
84+
- { Ref: RecorderExtensionLambdaLayer }
85+
- { Ref: DatadogExtensionIntegrationTestLambdaLayer }
86+
environment:
87+
DD_TAGS: tagA:valueA tagB:valueB
88+
DD_EXTRA_TAGS: tagC:valueC tagD:valueD
89+
DD_LAMBDA_HANDLER: src/metricPython.error
90+
6891
with-ddlambda-go:
6992
runtime: provided.al2
7093
handler: src/bin/with-ddlambda

integration_tests/snapshots/enhanced-metric-node

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,6 @@
66
[sketch] {"metric":"aws.lambda.enhanced.invocations","distributions":null,"tags":["account_id:601427279990","architecture:x86_64","aws_account:601427279990","cold_start:true","datadog_lambda:vX.X.X","dd_extension_version:123","env:integration-tests-env","function_arn:arn:aws:lambda:sa-east-1:601427279990:function:integration-tests-extension-XXXXXX-enhanced-metric-node","functionname:integration-tests-extension-XXXXXX-enhanced-metric-node","memorysize:1024","region:sa-east-1","resource:integration-tests-extension-XXXXXX-enhanced-metric-node","runtime:nodejs14.x","service:integration-tests-service","taga:valuea","tagb:valueb","tagc:valuec","tagd:valued","version:integration-tests-version"],"dogsketches":[{"ts":XXX,"cnt":1,"min":1,"max":1,"avg":1,"sum":1,"k":[XXX],"n":[1]}]}
77
[sketch] {"metric":"aws.lambda.enhanced.max_memory_used","distributions":null,"tags":["account_id:601427279990","architecture:x86_64","aws_account:601427279990","cold_start:true","dd_extension_version:123","env:integration-tests-env","function_arn:arn:aws:lambda:sa-east-1:601427279990:function:integration-tests-extension-XXXXXX-enhanced-metric-node","functionname:integration-tests-extension-XXXXXX-enhanced-metric-node","memorysize:1024","region:sa-east-1","resource:integration-tests-extension-XXXXXX-enhanced-metric-node","service:integration-tests-service","taga:valuea","tagb:valueb","tagc:valuec","tagd:valued","version:integration-tests-version"],"dogsketches":[{"ts":XXX,"cnt":1,"min":XXX,"max":XXX,"avg":XXX,"sum":XXX,"k":[XXX],"n":[1]}]}
88
[sketch] {"metric":"aws.lambda.enhanced.memorysize","distributions":null,"tags":["account_id:601427279990","architecture:x86_64","aws_account:601427279990","cold_start:true","dd_extension_version:123","env:integration-tests-env","function_arn:arn:aws:lambda:sa-east-1:601427279990:function:integration-tests-extension-XXXXXX-enhanced-metric-node","functionname:integration-tests-extension-XXXXXX-enhanced-metric-node","memorysize:1024","region:sa-east-1","resource:integration-tests-extension-XXXXXX-enhanced-metric-node","service:integration-tests-service","taga:valuea","tagb:valueb","tagc:valuec","tagd:valued","version:integration-tests-version"],"dogsketches":[{"ts":XXX,"cnt":1,"min":XXX,"max":XXX,"avg":XXX,"sum":XXX,"k":[XXX],"n":[1]}]}
9+
[sketch] {"metric":"aws.lambda.enhanced.runtime_duration","distributions":null,"tags":["account_id:601427279990","architecture:x86_64","aws_account:601427279990","cold_start:false","dd_extension_version:123","env:integration-tests-env","function_arn:arn:aws:lambda:sa-east-1:601427279990:function:integration-tests-extension-XXXXXX-enhanced-metric-node","functionname:integration-tests-extension-XXXXXX-enhanced-metric-node","memorysize:1024","region:sa-east-1","resource:integration-tests-extension-XXXXXX-enhanced-metric-node","service:integration-tests-service","taga:valuea","tagb:valueb","tagc:valuec","tagd:valued","version:integration-tests-version"],"dogsketches":[{"ts":XXX,"cnt":1,"min":XXX,"max":XXX,"avg":XXX,"sum":XXX,"k":[XXX],"n":[1]}]}
910
[sketch] {"metric":"aws.lambda.enhanced.runtime_duration","distributions":null,"tags":["account_id:601427279990","architecture:x86_64","aws_account:601427279990","cold_start:true","dd_extension_version:123","env:integration-tests-env","function_arn:arn:aws:lambda:sa-east-1:601427279990:function:integration-tests-extension-XXXXXX-enhanced-metric-node","functionname:integration-tests-extension-XXXXXX-enhanced-metric-node","memorysize:1024","region:sa-east-1","resource:integration-tests-extension-XXXXXX-enhanced-metric-node","service:integration-tests-service","taga:valuea","tagb:valueb","tagc:valuec","tagd:valued","version:integration-tests-version"],"dogsketches":[{"ts":XXX,"cnt":1,"min":XXX,"max":XXX,"avg":XXX,"sum":XXX,"k":[XXX],"n":[1]}]}
1011
[sketch] {"metric":"serverless.lambda-extension.integration-test.count","distributions":null,"tags":["account_id:601427279990","architecture:x86_64","aws_account:601427279990","dd_extension_version:123","dd_lambda_layer:datadog-nodevX.X.X","env:integration-tests-env","function_arn:arn:aws:lambda:sa-east-1:601427279990:function:integration-tests-extension-XXXXXX-enhanced-metric-node","functionname:integration-tests-extension-XXXXXX-enhanced-metric-node","memorysize:1024","region:sa-east-1","resource:integration-tests-extension-XXXXXX-enhanced-metric-node","service:integration-tests-service","taga:valuea","tagb:valueb","tagc:valuec","tagd:valued","version:integration-tests-version"],"dogsketches":[{"ts":XXX,"cnt":1,"min":1,"max":1,"avg":1,"sum":1,"k":[XXX],"n":[1]}]}

integration_tests/snapshots/enhanced-metric-python

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,6 @@
66
[sketch] {"metric":"aws.lambda.enhanced.invocations","distributions":null,"tags":["account_id:601427279990","architecture:x86_64","aws_account:601427279990","cold_start:true","datadog_lambda:vX.X.X","dd_extension_version:123","dd_lambda_layer:datadog-pythonX.X.X","env:integration-tests-env","function_arn:arn:aws:lambda:sa-east-1:601427279990:function:integration-tests-extension-XXXXXX-enhanced-metric-python","functionname:integration-tests-extension-XXXXXX-enhanced-metric-python","memorysize:1024","region:sa-east-1","resource:integration-tests-extension-XXXXXX-enhanced-metric-python","runtime:python3.8","service:integration-tests-service","taga:valuea","tagb:valueb","tagc:valuec","tagd:valued","version:integration-tests-version"],"dogsketches":[{"ts":XXX,"cnt":1,"min":1,"max":1,"avg":1,"sum":1,"k":[XXX],"n":[1]}]}
77
[sketch] {"metric":"aws.lambda.enhanced.max_memory_used","distributions":null,"tags":["account_id:601427279990","architecture:x86_64","aws_account:601427279990","cold_start:true","dd_extension_version:123","env:integration-tests-env","function_arn:arn:aws:lambda:sa-east-1:601427279990:function:integration-tests-extension-XXXXXX-enhanced-metric-python","functionname:integration-tests-extension-XXXXXX-enhanced-metric-python","memorysize:1024","region:sa-east-1","resource:integration-tests-extension-XXXXXX-enhanced-metric-python","service:integration-tests-service","taga:valuea","tagb:valueb","tagc:valuec","tagd:valued","version:integration-tests-version"],"dogsketches":[{"ts":XXX,"cnt":1,"min":XXX,"max":XXX,"avg":XXX,"sum":XXX,"k":[XXX],"n":[1]}]}
88
[sketch] {"metric":"aws.lambda.enhanced.memorysize","distributions":null,"tags":["account_id:601427279990","architecture:x86_64","aws_account:601427279990","cold_start:true","dd_extension_version:123","env:integration-tests-env","function_arn:arn:aws:lambda:sa-east-1:601427279990:function:integration-tests-extension-XXXXXX-enhanced-metric-python","functionname:integration-tests-extension-XXXXXX-enhanced-metric-python","memorysize:1024","region:sa-east-1","resource:integration-tests-extension-XXXXXX-enhanced-metric-python","service:integration-tests-service","taga:valuea","tagb:valueb","tagc:valuec","tagd:valued","version:integration-tests-version"],"dogsketches":[{"ts":XXX,"cnt":1,"min":XXX,"max":XXX,"avg":XXX,"sum":XXX,"k":[XXX],"n":[1]}]}
9+
[sketch] {"metric":"aws.lambda.enhanced.runtime_duration","distributions":null,"tags":["account_id:601427279990","architecture:x86_64","aws_account:601427279990","cold_start:false","dd_extension_version:123","env:integration-tests-env","function_arn:arn:aws:lambda:sa-east-1:601427279990:function:integration-tests-extension-XXXXXX-enhanced-metric-python","functionname:integration-tests-extension-XXXXXX-enhanced-metric-python","memorysize:1024","region:sa-east-1","resource:integration-tests-extension-XXXXXX-enhanced-metric-python","service:integration-tests-service","taga:valuea","tagb:valueb","tagc:valuec","tagd:valued","version:integration-tests-version"],"dogsketches":[{"ts":XXX,"cnt":1,"min":3,"max":3,"avg":3,"sum":3,"k":[XXX],"n":[1]}]}
910
[sketch] {"metric":"aws.lambda.enhanced.runtime_duration","distributions":null,"tags":["account_id:601427279990","architecture:x86_64","aws_account:601427279990","cold_start:true","dd_extension_version:123","env:integration-tests-env","function_arn:arn:aws:lambda:sa-east-1:601427279990:function:integration-tests-extension-XXXXXX-enhanced-metric-python","functionname:integration-tests-extension-XXXXXX-enhanced-metric-python","memorysize:1024","region:sa-east-1","resource:integration-tests-extension-XXXXXX-enhanced-metric-python","service:integration-tests-service","taga:valuea","tagb:valueb","tagc:valuec","tagd:valued","version:integration-tests-version"],"dogsketches":[{"ts":XXX,"cnt":1,"min":XXX,"max":XXX,"avg":XXX,"sum":XXX,"k":[XXX],"n":[1]}]}
1011
[sketch] {"metric":"serverless.lambda-extension.integration-test.count","distributions":null,"tags":["account_id:601427279990","architecture:x86_64","aws_account:601427279990","dd_extension_version:123","dd_lambda_layer:datadog-pythonX.X.X","env:integration-tests-env","function_arn:arn:aws:lambda:sa-east-1:601427279990:function:integration-tests-extension-XXXXXX-enhanced-metric-python","functionname:integration-tests-extension-XXXXXX-enhanced-metric-python","memorysize:1024","region:sa-east-1","resource:integration-tests-extension-XXXXXX-enhanced-metric-python","service:integration-tests-service","taga:valuea","tagb:valueb","tagc:valuec","tagd:valued","version:integration-tests-version"],"dogsketches":[{"ts":XXX,"cnt":1,"min":1,"max":1,"avg":1,"sum":1,"k":[XXX],"n":[1]}]}

0 commit comments

Comments
 (0)