diff --git a/lib/datadog/core/remote/worker.rb b/lib/datadog/core/remote/worker.rb index d25cab4cec6..b5506b501a9 100644 --- a/lib/datadog/core/remote/worker.rb +++ b/lib/datadog/core/remote/worker.rb @@ -23,7 +23,7 @@ def initialize(interval:, logger:, &block) attr_reader :logger def start - logger.debug { 'remote worker starting' } + logger.debug { "remote worker starting (pid: #{Process.pid})" } acquire_lock @@ -50,7 +50,7 @@ def start end def stop - logger.debug { 'remote worker stopping' } + logger.debug { "remote worker stopping (pid: #{Process.pid})" } acquire_lock diff --git a/lib/datadog/di/el/evaluator.rb b/lib/datadog/di/el/evaluator.rb index 0ab07b8f5b6..e8f5b41f1fc 100644 --- a/lib/datadog/di/el/evaluator.rb +++ b/lib/datadog/di/el/evaluator.rb @@ -17,7 +17,7 @@ def iref(var) def len(var, var_name) case var - when Array, String + when Array, String, Hash var.length else raise DI::Error::ExpressionEvaluationError, "Unsupported type for length: #{var.class}: #{var_name}" diff --git a/spec/datadog/di/el/integration_cases/all_any.yml b/spec/datadog/di/el/integration_cases/all_any.yml index 043c983ee0f..af48a01c631 100644 --- a/spec/datadog/di/el/integration_cases/all_any.yml +++ b/spec/datadog/di/el/integration_cases/all_any.yml @@ -72,3 +72,32 @@ - locals: collection: [] result: false + +- name: "any with @value" + ast: + any: + - ref: collection + - isEmpty: + ref: '@value' + + # compiled: + + eval: + - locals: + collection: + foo: "" + result: true + + - locals: + collection: + foo: 42 + result: false + + - locals: + collection: [1] + # TODO reconsider - there are no keys in an array + result: false + + - locals: + collection: [] + result: false diff --git a/spec/datadog/di/el/integration_cases/length.yml b/spec/datadog/di/el/integration_cases/length.yml index 8e184bf7d19..b03071d13c2 100644 --- a/spec/datadog/di/el/integration_cases/length.yml +++ b/spec/datadog/di/el/integration_cases/length.yml @@ -23,10 +23,23 @@ compiled: len(ref('var'), 'var') eval: - - locals: + - name: string + locals: var: 'test' result: 4 + - name: array + locals: + var: [1, 2, 3] + result: 3 + + - name: hash + locals: + var: + foo: bar + foo1: bar1 + result: 2 + - name: length of complex expression ast: len: