Skip to content

Default to SVG name for display for non-base DC#1956

Draft
n-h-diaz wants to merge 2 commits into
datacommonsorg:masterfrom
n-h-diaz:specialized_entity
Draft

Default to SVG name for display for non-base DC#1956
n-h-diaz wants to merge 2 commits into
datacommonsorg:masterfrom
n-h-diaz:specialized_entity

split

c22a92b
Select commit
Loading
Failed to load commit list.
Google Cloud Build / mixer-pull-request (datcom-ci) succeeded Jun 23, 2026 in 3m 59s

Summary

Build Information

Trigger mixer-pull-request
Build 7fe331fa-75d1-42b5-b051-95c0098b3680
Start 2026-06-23T12:27:33-07:00
Duration 3m4.012s
Status SUCCESS

Steps

Step Status Duration
lint SUCCESS 1m23.489s
validate-feature-flags SUCCESS 1.882s
build-proto SUCCESS 1.103s
test SUCCESS 1m30.857s

Details

starting build "7fe331fa-75d1-42b5-b051-95c0098b3680"

FETCHSOURCE
From https://github.com/datacommonsorg/mixer
 * branch            c22a92baebe23b758192a56fd32a4c99dab0c1df -> FETCH_HEAD
HEAD is now at c22a92b split
GitCommit:
c22a92baebe23b758192a56fd32a4c99dab0c1df
BUILD
Starting Step #0 - "lint"
Step #0 - "lint": Pulling image: gcr.io/datcom-ci/full-env:mixer-only-2026-02-20
Step #0 - "lint": mixer-only-2026-02-20: Pulling from datcom-ci/full-env
Step #0 - "lint": 4831516dd0cb: Pulling fs layer
Step #0 - "lint": eca621ed31da: Pulling fs layer
Step #0 - "lint": ea9918785904: Pulling fs layer
Step #0 - "lint": 4e61b9e01774: Pulling fs layer
Step #0 - "lint": 71b0f9d5b525: Pulling fs layer
Step #0 - "lint": 96221a5ca3b0: Pulling fs layer
Step #0 - "lint": e6ce5089d906: Pulling fs layer
Step #0 - "lint": dd5ab1f34322: Pulling fs layer
Step #0 - "lint": 511f0c43c2f4: Pulling fs layer
Step #0 - "lint": 5f8a573e5a03: Pulling fs layer
Step #0 - "lint": f2ff01b34a28: Pulling fs layer
Step #0 - "lint": dd5ab1f34322: Waiting
Step #0 - "lint": 5f8a573e5a03: Waiting
Step #0 - "lint": f2ff01b34a28: Waiting
Step #0 - "lint": 511f0c43c2f4: Waiting
Step #0 - "lint": e6ce5089d906: Waiting
Step #0 - "lint": 71b0f9d5b525: Verifying Checksum
Step #0 - "lint": 71b0f9d5b525: Download complete
Step #0 - "lint": eca621ed31da: Download complete
Step #0 - "lint": 96221a5ca3b0: Download complete
Step #0 - "lint": 4831516dd0cb: Verifying Checksum
Step #0 - "lint": 4831516dd0cb: Download complete
Step #0 - "lint": ea9918785904: Verifying Checksum
Step #0 - "lint": ea9918785904: Download complete
Step #0 - "lint": 4831516dd0cb: Pull complete
Step #0 - "lint": eca621ed31da: Pull complete
Step #0 - "lint": 4e61b9e01774: Verifying Checksum
Step #0 - "lint": 4e61b9e01774: Download complete
Step #0 - "lint": 511f0c43c2f4: Verifying Checksum
Step #0 - "lint": 511f0c43c2f4: Download complete
Step #0 - "lint": 5f8a573e5a03: Verifying Checksum
Step #0 - "lint": 5f8a573e5a03: Download complete
Step #0 - "lint": dd5ab1f34322: Verifying Checksum
Step #0 - "lint": dd5ab1f34322: Download complete
Step #0 - "lint": ea9918785904: Pull complete
Step #0 - "lint": f2ff01b34a28: Verifying Checksum
Step #0 - "lint": f2ff01b34a28: Download complete
Step #0 - "lint": e6ce5089d906: Verifying Checksum
Step #0 - "lint": e6ce5089d906: Download complete
Step #0 - "lint": 4e61b9e01774: Pull complete
Step #0 - "lint": 71b0f9d5b525: Pull complete
Step #0 - "lint": 96221a5ca3b0: Pull complete
Step #0 - "lint": e6ce5089d906: Pull complete
Step #0 - "lint": dd5ab1f34322: Pull complete
Step #0 - "lint": 511f0c43c2f4: Pull complete
Step #0 - "lint": 5f8a573e5a03: Pull complete
Step #0 - "lint": f2ff01b34a28: Pull complete
Step #0 - "lint": Digest: sha256:748a5cbd59ddca050ae4b02cbb4696aad3a7cfc03066df8609ba9565ab6c20ee
Step #0 - "lint": Status: Downloaded newer image for gcr.io/datcom-ci/full-env:mixer-only-2026-02-20
Step #0 - "lint": gcr.io/datcom-ci/full-env:mixer-only-2026-02-20
Step #0 - "lint": level=info msg="golangci-lint has version 2.3.0 built with go1.24.4 from 364a4bbe on 2025-07-21T14:49:16Z"
Step #0 - "lint": level=info msg="[config_reader] Config search paths: [./ /workspace / /builder/home]"
Step #0 - "lint": level=info msg="[config_reader] Used config file .golangci.yml"
Step #0 - "lint": level=info msg="[config_reader] Module name \"github.com/datacommonsorg/mixer\""
Step #0 - "lint": level=info msg="maxprocs: Leaving GOMAXPROCS=32: CPU quota undefined"
Step #0 - "lint": level=info msg="[goenv] Read go env for 4.15035ms: map[string]string{\"GOCACHE\":\"/builder/home/.cache/go-build\", \"GOROOT\":\"/usr/local/go\"}"
Step #0 - "lint": level=info msg="[lintersdb] Active 5 linters: [errcheck govet ineffassign staticcheck unused]"
Step #0 - "lint": level=info msg="[loader] Go packages loading at mode 8767 (compiled_files|deps|exports_file|name|types_sizes|files|imports) took 36.187409591s"
Step #0 - "lint": level=info msg="[runner/filename_unadjuster] Pre-built 0 adjustments in 49.934492ms"
Step #0 - "lint": level=info msg="[linters_context/goanalysis] analyzers took 2m55.095411537s with top 10 stages: buildir: 2m8.3750029s, inspect: 3.73731817s, nilness: 2.844473195s, fact_deprecated: 2.737210513s, fact_purity: 2.541923459s, printf: 2.359775894s, ctrlflow: 1.805447263s, unused: 1.438529791s, typedness: 1.390762615s, S1038: 1.331854782s"
Step #0 - "lint": level=info msg="[runner/exclusion_paths] Skipped 285 issues by pattern \"internal/proto\""
Step #0 - "lint": level=info msg="[runner] Issues before processing: 303, after processing: 0"
Step #0 - "lint": level=info msg="[runner] Processors filtering stat (in/out): path_absoluter: 303/303, cgo: 303/303, invalid_issue: 303/303, path_relativity: 303/303, exclusion_paths: 303/18, exclusion_rules: 18/18, filename_unadjuster: 303/303, generated_file_filter: 18/18, nolint_filter: 18/0"
Step #0 - "lint": level=info msg="[runner] processing took 6.221451ms with stages: nolint_filter: 5.656426ms, generated_file_filter: 256.497µs, path_relativity: 134.596µs, exclusion_paths: 116.45µs, invalid_issue: 30.448µs, cgo: 9.075µs, path_absoluter: 7.151µs, filename_unadjuster: 3.014µs, sort_results: 2.241µs, max_same_issues: 1.187µs, fixer: 832ns, exclusion_rules: 730ns, uniq_by_line: 582ns, path_prettifier: 546ns, diff: 411ns, path_shortener: 347ns, max_from_linter: 322ns, source_code: 241ns, severity-rules: 204ns, max_per_file_from_linter: 151ns"
Step #0 - "lint": level=info msg="[runner] linters took 16.666533082s with stages: goanalysis_metalinter: 16.660228166s"
Step #0 - "lint": level=info msg="File cache stats: 0 entries of total size 0B"
Step #0 - "lint": 0 issues.
Step #0 - "lint": level=info msg="Memory: 531 samples, avg is 744.1MB, max is 3137.8MB"
Step #0 - "lint": level=info msg="Execution took 52.909813882s"
Finished Step #0 - "lint"
Starting Step #1 - "validate-feature-flags"
Starting Step #2 - "build-proto"
Step #1 - "validate-feature-flags": Already have image (with digest): gcr.io/datcom-ci/full-env:mixer-only-2026-02-20
Step #2 - "build-proto": Already have image (with digest): gcr.io/datcom-ci/full-env:mixer-only-2026-02-20
Step #1 - "validate-feature-flags": HEAD: Checking flags against mixer server at current HEAD.
Step #1 - "validate-feature-flags": Checking feature flag parsing for all envs in /workspace/deploy/featureflags...
Step #1 - "validate-feature-flags": Checking feature flag parsing for /workspace/deploy/featureflags/dev_website.yaml...
Step #1 - "validate-feature-flags": Successfully validated /workspace/deploy/featureflags/dev_website.yaml
Step #1 - "validate-feature-flags": 2026/06/23 19:29:04 INFO Feature flags initialized from file path=/workspace/deploy/featureflags/dev_website.yaml flags="\nEnableV3: false\nV3MirrorFraction: 1\nUseSpannerGraph: true\nUseMultiEntitySchema: false\nSpannerGraphDatabase: dc_graph_2026_01_27\nUseStaleReads: false\nEnableEmbeddingsResolver: true\nV2DivertFraction: 1\nUseStatisticalCalculation: false\nEnableSDMXDataApi: false\nEnableSpannerSearchEmbeddings: false\n"
Step #1 - "validate-feature-flags": Checking feature flag parsing for /workspace/deploy/featureflags/prod_website.yaml...
Step #1 - "validate-feature-flags": 2026/06/23 19:29:04 INFO Feature flags initialized from file path=/workspace/deploy/featureflags/prod_website.yaml flags="\nEnableV3: true\nV3MirrorFraction: 0.8\nUseSpannerGraph: true\nUseMultiEntitySchema: false\nSpannerGraphDatabase: dc_graph_2026_01_27\nUseStaleReads: true\nEnableEmbeddingsResolver: true\nV2DivertFraction: 0\nUseStatisticalCalculation: false\nEnableSDMXDataApi: false\nEnableSpannerSearchEmbeddings: false\n"
Step #1 - "validate-feature-flags": Successfully validated /workspace/deploy/featureflags/prod_website.yaml
Step #1 - "validate-feature-flags": Checking feature flag parsing for /workspace/deploy/featureflags/prod.yaml...
Step #1 - "validate-feature-flags": 2026/06/23 19:29:04 INFO Feature flags initialized from file path=/workspace/deploy/featureflags/prod.yaml flags="\nEnableV3: true\nV3MirrorFraction: 0.8\nUseSpannerGraph: true\nUseMultiEntitySchema: false\nSpannerGraphDatabase: dc_graph_2026_01_27\nUseStaleReads: true\nEnableEmbeddingsResolver: true\nV2DivertFraction: 0\nUseStatisticalCalculation: false\nEnableSDMXDataApi: false\nEnableSpannerSearchEmbeddings: false\n"
Step #1 - "validate-feature-flags": Successfully validated /workspace/deploy/featureflags/prod.yaml
Step #1 - "validate-feature-flags": Checking feature flag parsing for /workspace/deploy/featureflags/dev.yaml...
Finished Step #2 - "build-proto"
Starting Step #3 - "test"
Step #3 - "test": Already have image (with digest): gcr.io/datcom-ci/full-env:mixer-only-2026-02-20
Step #1 - "validate-feature-flags": Successfully validated /workspace/deploy/featureflags/dev.yaml
Step #1 - "validate-feature-flags": 2026/06/23 19:29:05 INFO Feature flags initialized from file path=/workspace/deploy/featureflags/dev.yaml flags="\nEnableV3: false\nV3MirrorFraction: 1\nUseSpannerGraph: true\nUseMultiEntitySchema: false\nSpannerGraphDatabase: dc_graph_2026_01_27\nUseStaleReads: false\nEnableEmbeddingsResolver: true\nV2DivertFraction: 1\nUseStatisticalCalculation: false\nEnableSDMXDataApi: false\nEnableSpannerSearchEmbeddings: false\n"
Step #1 - "validate-feature-flags": Checking feature flag parsing for /workspace/deploy/featureflags/staging_website.yaml...
Step #1 - "validate-feature-flags": Successfully validated /workspace/deploy/featureflags/staging_website.yaml
Step #1 - "validate-feature-flags": 2026/06/23 19:29:05 INFO Feature flags initialized from file path=/workspace/deploy/featureflags/staging_website.yaml flags="\nEnableV3: false\nV3MirrorFraction: 1\nUseSpannerGraph: true\nUseMultiEntitySchema: false\nSpannerGraphDatabase: dc_graph_2026_01_27\nUseStaleReads: false\nEnableEmbeddingsResolver: true\nV2DivertFraction: 0\nUseStatisticalCalculation: false\nEnableSDMXDataApi: false\nEnableSpannerSearchEmbeddings: false\n"
Step #1 - "validate-feature-flags": Checking feature flag parsing for /workspace/deploy/featureflags/local.yaml...
Step #1 - "validate-feature-flags": Successfully validated /workspace/deploy/featureflags/local.yaml
Step #1 - "validate-feature-flags": 2026/06/23 19:29:05 INFO Feature flags initialized from file path=/workspace/deploy/featureflags/local.yaml flags="\nEnableV3: false\nV3MirrorFraction: 0\nUseSpannerGraph: false\nUseMultiEntitySchema: false\nSpannerGraphDatabase: \"\"\nUseStaleReads: false\nEnableEmbeddingsResolver: true\nV2DivertFraction: 0\nUseStatisticalCalculation: false\nEnableSDMXDataApi: true\nEnableSpannerSearchEmbeddings: false\n"
Step #1 - "validate-feature-flags": Checking feature flag parsing for /workspace/deploy/featureflags/autopush_website.yaml...
Step #1 - "validate-feature-flags": 2026/06/23 19:29:05 INFO Feature flags initialized from file path=/workspace/deploy/featureflags/autopush_website.yaml flags="\nEnableV3: false\nV3MirrorFraction: 1\nUseSpannerGraph: true\nUseMultiEntitySchema: false\nSpannerGraphDatabase: dc_graph_2026_01_27\nUseStaleReads: false\nEnableEmbeddingsResolver: true\nV2DivertFraction: 0\nUseStatisticalCalculation: false\nEnableSDMXDataApi: false\nEnableSpannerSearchEmbeddings: false\n"
Step #1 - "validate-feature-flags": Successfully validated /workspace/deploy/featureflags/autopush_website.yaml
Step #1 - "validate-feature-flags": Checking feature flag parsing for /workspace/deploy/featureflags/custom.yaml...
Step #1 - "validate-feature-flags": 2026/06/23 19:29:05 INFO Feature flags initialized from file path=/workspace/deploy/featureflags/custom.yaml flags="\nEnableV3: false\nV3MirrorFraction: 0\nUseSpannerGraph: false\nUseMultiEntitySchema: true\nSpannerGraphDatabase: \"\"\nUseStaleReads: false\nEnableEmbeddingsResolver: false\nV2DivertFraction: 0\nUseStatisticalCalculation: false\nEnableSDMXDataApi: true\nEnableSpannerSearchEmbeddings: true\n"
Step #1 - "validate-feature-flags": Successfully validated /workspace/deploy/featureflags/custom.yaml
Step #1 - "validate-feature-flags": Checking feature flag parsing for /workspace/deploy/featureflags/staging.yaml...
Step #1 - "validate-feature-flags": Successfully validated /workspace/deploy/featureflags/staging.yaml
Step #1 - "validate-feature-flags": 2026/06/23 19:29:05 INFO Feature flags initialized from file path=/workspace/deploy/featureflags/staging.yaml flags="\nEnableV3: false\nV3MirrorFraction: 1\nUseSpannerGraph: true\nUseMultiEntitySchema: false\nSpannerGraphDatabase: dc_graph_2026_01_27\nUseStaleReads: false\nEnableEmbeddingsResolver: true\nV2DivertFraction: 0\nUseStatisticalCalculation: false\nEnableSDMXDataApi: false\nEnableSpannerSearchEmbeddings: false\n"
Step #1 - "validate-feature-flags": Checking feature flag parsing for /workspace/deploy/featureflags/autopush.yaml...
Step #1 - "validate-feature-flags": 2026/06/23 19:29:05 INFO Feature flags initialized from file path=/workspace/deploy/featureflags/autopush.yaml flags="\nEnableV3: false\nV3MirrorFraction: 1\nUseSpannerGraph: true\nUseMultiEntitySchema: false\nSpannerGraphDatabase: dc_graph_2026_01_27\nUseStaleReads: false\nEnableEmbeddingsResolver: true\nV2DivertFraction: 0\nUseStatisticalCalculation: false\nEnableSDMXDataApi: false\nEnableSpannerSearchEmbeddings: false\n"
Step #1 - "validate-feature-flags": Successfully validated /workspace/deploy/featureflags/autopush.yaml
Finished Step #1 - "validate-feature-flags"
Step #3 - "test": ?   	github.com/datacommonsorg/mixer/cmd	[no test files]
Step #3 - "test": ?   	github.com/datacommonsorg/mixer/cmd/tools	[no test files]
Step #3 - "test": ?   	github.com/datacommonsorg/mixer/examples/api	[no test files]
Step #3 - "test": === RUN   TestCacheCheckAvailability
Step #3 - "test": === RUN   TestCacheCheckAvailability/100%_Cache_Hit_-_returns_instantly_without_calling_V2Observation
Step #3 - "test": === RUN   TestCacheCheckAvailability/Cache_Miss_-_triggers_V2Observation_wildcard_query_and_caches_results
Step #3 - "test": === RUN   TestCacheCheckAvailability/Partial_Cache_Hit_-_fetches_missing_place_and_keeps_existing_cache
Step #3 - "test": --- PASS: TestCacheCheckAvailability (0.00s)
Step #3 - "test":     --- PASS: TestCacheCheckAvailability/100%_Cache_Hit_-_returns_instantly_without_calling_V2Observation (0.00s)
Step #3 - "test":     --- PASS: TestCacheCheckAvailability/Cache_Miss_-_triggers_V2Observation_wildcard_query_and_caches_results (0.00s)
Step #3 - "test":     --- PASS: TestCacheCheckAvailability/Partial_Cache_Hit_-_fetches_missing_place_and_keeps_existing_cache (0.00s)
Step #3 - "test": === RUN   TestGetVariableMetadata
Step #3 - "test": === RUN   TestGetVariableMetadata/Successfully_retrieve_metadata_across_variable,_provenance,_and_observation_facets
Step #3 - "test": 2026/06/23 19:29:16 INFO Tracked function execution time name="Agent: GetVariableMetadata" duration=419.679µs
Step #3 - "test": === RUN   TestGetVariableMetadata/Validation_Failure:_Missing_variable_dcids
Step #3 - "test": 2026/06/23 19:29:16 INFO Tracked function execution time name="Agent: GetVariableMetadata" duration=1.236µs
Step #3 - "test": === RUN   TestGetVariableMetadata/Validation_Failure:_Missing_entity_dcids
Step #3 - "test": 2026/06/23 19:29:16 INFO Tracked function execution time name="Agent: GetVariableMetadata" duration=365ns
Step #3 - "test": === RUN   TestGetVariableMetadata/Validation_Failure:_variable_dcids_exceed_limit_of_10
Step #3 - "test": 2026/06/23 19:29:16 INFO Tracked function execution time name="Agent: GetVariableMetadata" duration=1.321µs
Step #3 - "test": === RUN   TestGetVariableMetadata/Validation_Failure:_entity_dcids_exceed_limit_of_10
Step #3 - "test": 2026/06/23 19:29:16 INFO Tracked function execution time name="Agent: GetVariableMetadata" duration=696ns
Step #3 - "test": === RUN   TestGetVariableMetadata/Graceful_Degradation:_Fail_to_fetch_one_variable,_but_successfully_return_other
Step #3 - "test": 2026/06/23 19:29:16 INFO Tracked function execution time name="Agent: GetVariableMetadata" duration=35.931µs
Step #3 - "test": === RUN   TestGetVariableMetadata/Critical_Path_Failure:_observations_query_fails
Step #3 - "test": 2026/06/23 19:29:16 INFO Tracked function execution time name="Agent: GetVariableMetadata" duration=74.436µs
Step #3 - "test": --- PASS: TestGetVariableMetadata (0.00s)
Step #3 - "test":     --- PASS: TestGetVariableMetadata/Successfully_retrieve_metadata_across_variable,_provenance,_and_observation_facets (0.00s)
Step #3 - "test":     --- PASS: TestGetVariableMetadata/Validation_Failure:_Missing_variable_dcids (0.00s)
Step #3 - "test":     --- PASS: TestGetVariableMetadata/Validation_Failure:_Missing_entity_dcids (0.00s)
Step #3 - "test":     --- PASS: TestGetVariableMetadata/Validation_Failure:_variable_dcids_exceed_limit_of_10 (0.00s)
Step #3 - "test":     --- PASS: TestGetVariableMetadata/Validation_Failure:_entity_dcids_exceed_limit_of_10 (0.00s)
Step #3 - "test":     --- PASS: TestGetVariableMetadata/Graceful_Degradation:_Fail_to_fetch_one_variable,_but_successfully_return_other (0.00s)
Step #3 - "test":     --- PASS: TestGetVariableMetadata/Critical_Path_Failure:_observations_query_fails (0.00s)
Step #3 - "test": === RUN   TestObservationsDate
Step #3 - "test": === RUN   TestObservationsDate/validateDateFormat
Step #3 - "test": === RUN   TestObservationsDate/parseDateFilter
Step #3 - "test": === RUN   TestObservationsDate/parseDateFilter/default_latest
Step #3 - "test": === RUN   TestObservationsDate/parseDateFilter/all
Step #3 - "test": === RUN   TestObservationsDate/parseDateFilter/all_with_start_error
Step #3 - "test": === RUN   TestObservationsDate/parseDateFilter/specific_year
Step #3 - "test": === RUN   TestObservationsDate/parseDateFilter/specific_month
Step #3 - "test": === RUN   TestObservationsDate/parseDateFilter/range_with_start_and_end
Step #3 - "test": === RUN   TestObservationsDate/parseDateFilter/range_missing_start_and_end
Step #3 - "test": === RUN   TestObservationsDate/parseDateFilter/range_start_after_end
Step #3 - "test": === RUN   TestObservationsDate/isDateInInterval
Step #3 - "test": === RUN   TestObservationsDate/isDateInInterval/latest_always_matches
Step #3 - "test": === RUN   TestObservationsDate/isDateInInterval/all_always_matches
Step #3 - "test": === RUN   TestObservationsDate/isDateInInterval/exact_year_match
Step #3 - "test": === RUN   TestObservationsDate/isDateInInterval/exact_year_mismatch
Step #3 - "test": === RUN   TestObservationsDate/isDateInInterval/range_match_start_boundary
Step #3 - "test": === RUN   TestObservationsDate/isDateInInterval/range_match_end_boundary
Step #3 - "test": === RUN   TestObservationsDate/isDateInInterval/range_match_inside
Step #3 - "test": === RUN   TestObservationsDate/isDateInInterval/range_mismatch_before
Step #3 - "test": === RUN   TestObservationsDate/isDateInInterval/range_mismatch_after
Step #3 - "test": === RUN   TestObservationsDate/isDateInInterval/invalid_obs_date_ignored
Step #3 - "test": --- PASS: TestObservationsDate (0.00s)
Step #3 - "test":     --- PASS: TestObservationsDate/validateDateFormat (0.00s)
Step #3 - "test":     --- PASS: TestObservationsDate/parseDateFilter (0.00s)
Step #3 - "test":         --- PASS: TestObservationsDate/parseDateFilter/default_latest (0.00s)
Step #3 - "test":         --- PASS: TestObservationsDate/parseDateFilter/all (0.00s)
Step #3 - "test":         --- PASS: TestObservationsDate/parseDateFilter/all_with_start_error (0.00s)
Step #3 - "test":         --- PASS: TestObservationsDate/parseDateFilter/specific_year (0.00s)
Step #3 - "test":         --- PASS: TestObservationsDate/parseDateFilter/specific_month (0.00s)
Step #3 - "test":         --- PASS: TestObservationsDate/parseDateFilter/range_with_start_and_end (0.00s)
Step #3 - "test":         --- PASS: TestObservationsDate/parseDateFilter/range_missing_start_and_end (0.00s)
Step #3 - "test":         --- PASS: TestObservationsDate/parseDateFilter/range_start_after_end (0.00s)
Step #3 - "test":     --- PASS: TestObservationsDate/isDateInInterval (0.00s)
Step #3 - "test":         --- PASS: TestObservationsDate/isDateInInterval/latest_always_matches (0.00s)
Step #3 - "test":         --- PASS: TestObservationsDate/isDateInInterval/all_always_matches (0.00s)
Step #3 - "test":         --- PASS: TestObservationsDate/isDateInInterval/exact_year_match (0.00s)
Step #3 - "test":         --- PASS: TestObservationsDate/isDateInInterval/exact_year_mismatch (0.00s)
Step #3 - "test":         --- PASS: TestObservationsDate/isDateInInterval/range_match_start_boundary (0.00s)
Step #3 - "test":         --- PASS: TestObservationsDate/isDateInInterval/range_match_end_boundary (0.00s)
Step #3 - "test":         --- PASS: TestObservationsDate/isDateInInterval/range_match_inside (0.00s)
Step #3 - "test":         --- PASS: TestObservationsDate/isDateInInterval/range_mismatch_before (0.00s)
Step #3 - "test":         --- PASS: TestObservationsDate/isDateInInterval/range_mismatch_after (0.00s)
Step #3 - "test":         --- PASS: TestObservationsDate/isDateInInterval/invalid_obs_date_ignored (0.00s)
Step #3 - "test": === RUN   TestSelectPrimarySource
Step #3 - "test": === RUN   TestSelectPrimarySource/Heuristic_1:_Place_Coverage_Wins
Step #3 - "test": === RUN   TestSelectPrimarySource/Heuristic_2:_Total_Observations_Wins
Step #3 - "test": === RUN   TestSelectPrimarySource/Heuristic_3:_Recency_Wins
Step #3 - "test": === RUN   TestSelectPrimarySource/Heuristic_4:_Original_Index_Wins
Step #3 - "test": === RUN   TestSelectPrimarySource/Source_Override_Bypasses_Ranking
Step #3 - "test": === RUN   TestSelectPrimarySource/Filter_Latest_Returns_Only_the_Most_Recent_Point
Step #3 - "test": --- PASS: TestSelectPrimarySource (0.00s)
Step #3 - "test":     --- PASS: TestSelectPrimarySource/Heuristic_1:_Place_Coverage_Wins (0.00s)
Step #3 - "test":     --- PASS: TestSelectPrimarySource/Heuristic_2:_Total_Observations_Wins (0.00s)
Step #3 - "test":     --- PASS: TestSelectPrimarySource/Heuristic_3:_Recency_Wins (0.00s)
Step #3 - "test":     --- PASS: TestSelectPrimarySource/Heuristic_4:_Original_Index_Wins (0.00s)
Step #3 - "test":     --- PASS: TestSelectPrimarySource/Source_Override_Bypasses_Ranking (0.00s)
Step #3 - "test":     --- PASS: TestSelectPrimarySource/Filter_Latest_Returns_Only_the_Most_Recent_Point (0.00s)
Step #3 - "test": === RUN   TestGetObservations
Step #3 - "test": === RUN   TestGetObservations/Validation_Failures
Step #3 - "test": === RUN   TestGetObservations/Validation_Failures/nil_request
Step #3 - "test": === RUN   TestGetObservations/Validation_Failures/missing_variable
Step #3 - "test": === RUN   TestGetObservations/Validation_Failures/missing_place
Step #3 - "test": === RUN   TestGetObservations/Validation_Failures/invalid_date_format
Step #3 - "test": === RUN   TestGetObservations/Case_1:_Basic_Single_Place_(Latest_Date)
Step #3 - "test": === RUN   TestGetObservations/Case_2:_ContainedInPlace_Hierarchy_Query_(Latest_Date)
Step #3 - "test": === RUN   TestGetObservations/Case_3:_Date_Filtering_(Specific_Year_'2020')
Step #3 - "test": === RUN   TestGetObservations/Case_4:_Source_Override
Step #3 - "test": --- PASS: TestGetObservations (0.00s)
Step #3 - "test":     --- PASS: TestGetObservations/Validation_Failures (0.00s)
Step #3 - "test":         --- PASS: TestGetObservations/Validation_Failures/nil_request (0.00s)
Step #3 - "test":         --- PASS: TestGetObservations/Validation_Failures/missing_variable (0.00s)
Step #3 - "test":         --- PASS: TestGetObservations/Validation_Failures/missing_place (0.00s)
Step #3 - "test":         --- PASS: TestGetObservations/Validation_Failures/invalid_date_format (0.00s)
Step #3 - "test":     --- PASS: TestGetObservations/Case_1:_Basic_Single_Place_(Latest_Date) (0.00s)
Step #3 - "test":     --- PASS: TestGetObservations/Case_2:_ContainedInPlace_Hierarchy_Query_(Latest_Date) (0.00s)
Step #3 - "test":     --- PASS: TestGetObservations/Case_3:_Date_Filtering_(Specific_Year_'2020') (0.00s)
Step #3 - "test":     --- PASS: TestGetObservations/Case_4:_Source_Override (0.00s)
Step #3 - "test": === RUN   TestSearchIndicators_Basic
Step #3 - "test": === RUN   TestSearchIndicators_Basic/Basic_indicator_search_without_place_constraints
Step #3 - "test": 2026/06/23 19:29:16 INFO SearchIndicators started query="health in america" places=[] parentPlace=""
Step #3 - "test": 2026/06/23 19:29:16 INFO Tracked function execution time name="Agent: fetchCandidates" duration=2.711µs
Step #3 - "test": 2026/06/23 19:29:16 INFO Tracked function execution time name="Agent: resolvePlaces" duration=373ns
Step #3 - "test": 2026/06/23 19:29:16 INFO Enriching resolved place names and types via V2Node placesCount=0
Step #3 - "test": 2026/06/23 19:29:16 INFO Tracked function execution time name="Agent: enrichPlaceNamesAndTypes" duration=17.022µs
Step #3 - "test": 2026/06/23 19:29:16 INFO Tracked function execution time name="Agent: SearchIndicators" duration=126.09µs
Step #3 - "test": === RUN   TestSearchIndicators_Basic/Browsing_root_topics_defaults_to_World_place_resolution
Step #3 - "test": 2026/06/23 19:29:16 INFO SearchIndicators started query="" places=[] parentPlace=""
Step #3 - "test": 2026/06/23 19:29:16 INFO Tracked function execution time name="Agent: fetchCandidates" duration=2.349µs
Step #3 - "test": 2026/06/23 19:29:16 INFO Tracked function execution time name="Agent: resolvePlaces" duration=1.706µs
Step #3 - "test": 2026/06/23 19:29:16 INFO Enriching resolved place names and types via V2Node placesCount=1
Step #3 - "test": 2026/06/23 19:29:16 INFO Tracked function execution time name="Agent: enrichPlaceNamesAndTypes" duration=17.342µs
Step #3 - "test": 2026/06/23 19:29:16 INFO Filtering indicators by place existence candidatesCount=1 placesCount=1
Step #3 - "test": 2026/06/23 19:29:16 INFO Tracked function execution time name="Agent: fetchDescendantVariables" duration=1.846µs
Step #3 - "test": 2026/06/23 19:29:16 INFO Tracked function execution time name="Agent: filterByPlaceExistence" duration=47.405µs
Step #3 - "test": 2026/06/23 19:29:16 INFO Tracked function execution time name="Agent: SearchIndicators" duration=176.417µs
Step #3 - "test": === RUN   TestSearchIndicators_Basic/Flatten_and_deduplicate_topic_candidates_into_standard_variables_when_include_topics_is_false
Step #3 - "test": 2026/06/23 19:29:16 INFO SearchIndicators started query="health in america" places=[] parentPlace=""
Step #3 - "test": 2026/06/23 19:29:16 INFO Tracked function execution time name="Agent: fetchCandidates" duration=1.484µs
Step #3 - "test": 2026/06/23 19:29:16 INFO Tracked function execution time name="Agent: resolvePlaces" duration=232ns
Step #3 - "test": 2026/06/23 19:29:16 INFO Enriching resolved place names and types via V2Node placesCount=0
Step #3 - "test": 2026/06/23 19:29:16 INFO Tracked function execution time name="Agent: enrichPlaceNamesAndTypes" duration=25.89µs
Step #3 - "test": 2026/06/23 19:29:16 INFO Tracked function execution time name="Agent: SearchIndicators" duration=142.261µs
Step #3 - "test": === RUN   TestSearchIndicators_Basic/Serve_hierarchical_nested_topics_when_expand_topics_is_false
Step #3 - "test": 2026/06/23 19:29:16 INFO SearchIndicators started query="health in america" places=[] parentPlace=""
Step #3 - "test": 2026/06/23 19:29:16 INFO Tracked function execution time name="Agent: fetchCandidates" duration=1.751µs
Step #3 - "test": 2026/06/23 19:29:16 INFO Tracked function execution time name="Agent: resolvePlaces" duration=646ns
Step #3 - "test": 2026/06/23 19:29:16 INFO Enriching resolved place names and types via V2Node placesCount=0
Step #3 - "test": 2026/06/23 19:29:16 INFO Tracked function execution time name="Agent: enrichPlaceNamesAndTypes" duration=29.69µs
Step #3 - "test": 2026/06/23 19:29:16 INFO Tracked function execution time name="Agent: SearchIndicators" duration=241.465µs
Step #3 - "test": === RUN   TestSearchIndicators_Basic/Extract_only_immediate_direct_variables_flat_when_include_topics_is_false_and_expand_topics_is_false
Step #3 - "test": 2026/06/23 19:29:16 INFO SearchIndicators started query="health in america" places=[] parentPlace=""
Step #3 - "test": 2026/06/23 19:29:16 INFO Tracked function execution time name="Agent: fetchCandidates" duration=2.311µs
Step #3 - "test": 2026/06/23 19:29:16 INFO Tracked function execution time name="Agent: resolvePlaces" duration=448ns
Step #3 - "test": 2026/06/23 19:29:16 INFO Enriching resolved place names and types via V2Node placesCount=0
Step #3 - "test": 2026/06/23 19:29:16 INFO Tracked function execution time name="Agent: enrichPlaceNamesAndTypes" duration=26.288µs
Step #3 - "test": 2026/06/23 19:29:16 INFO Tracked function execution time name="Agent: SearchIndicators" duration=201.412µs
Step #3 - "test": === RUN   TestSearchIndicators_Basic/Truncate_results_correctly_and_do_not_pollute_DcidNameMappings_with_truncated_variable_names
Step #3 - "test": 2026/06/23 19:29:16 INFO SearchIndicators started query="health in america" places=[] parentPlace=""
Step #3 - "test": 2026/06/23 19:29:16 INFO Tracked function execution time name="Agent: fetchCandidates" duration=1.557µs
Step #3 - "test": 2026/06/23 19:29:16 INFO Tracked function execution time name="Agent: resolvePlaces" duration=147ns
Step #3 - "test": 2026/06/23 19:29:16 INFO Enriching resolved place names and types via V2Node placesCount=0
Step #3 - "test": 2026/06/23 19:29:16 INFO Tracked function execution time name="Agent: enrichPlaceNamesAndTypes" duration=51.526µs
Step #3 - "test": 2026/06/23 19:29:16 INFO Tracked function execution time name="Agent: SearchIndicators" duration=124.074µs
Step #3 - "test": === RUN   TestSearchIndicators_Basic/Do_existence_checks_successfully_for_topics_when_expand_topics_is_false
Step #3 - "test": 2026/06/23 19:29:16 INFO SearchIndicators started query="" places=[geoId/06] parentPlace=""
Step #3 - "test": 2026/06/23 19:29:16 INFO Tracked function execution time name="Agent: fetchCandidates" duration=1.503µs
Step #3 - "test": 2026/06/23 19:29:16 INFO Tracked function execution time name="Agent: resolvePlaces" duration=4.739µs
Step #3 - "test": 2026/06/23 19:29:16 INFO Enriching resolved place names and types via V2Node placesCount=1
Step #3 - "test": 2026/06/23 19:29:16 INFO Tracked function execution time name="Agent: enrichPlaceNamesAndTypes" duration=27.264µs
Step #3 - "test": 2026/06/23 19:29:16 INFO Filtering indicators by place existence candidatesCount=1 placesCount=1
Step #3 - "test": 2026/06/23 19:29:16 INFO Tracked function execution time name="Agent: fetchDescendantVariables" duration=5.711µs
Step #3 - "test": 2026/06/23 19:29:16 INFO Tracked function execution time name="Agent: filterByPlaceExistence" duration=81.969µs
Step #3 - "test": 2026/06/23 19:29:16 INFO Tracked function execution time name="Agent: SearchIndicators" duration=232.763µs
Step #3 - "test": --- PASS: TestSearchIndicators_Basic (0.00s)
Step #3 - "test":     --- PASS: TestSearchIndicators_Basic/Basic_indicator_search_without_place_constraints (0.00s)
Step #3 - "test":     
...
[Logs truncated due to log size limitations. For full logs, see https://console.cloud.google.com/cloud-build/builds/7fe331fa-75d1-42b5-b051-95c0098b3680?project=879489846695.]
...
 "test": 2026/06/23 19:29:45 INFO Tracked function execution time name="SQL: GetEntityInfoTriples" duration=362.687µs
Step #3 - "test": --- PASS: TestSimplePropertyValues (16.75s)
Step #3 - "test": 2026/06/23 19:30:13 INFO No feature flag path specified. Using default flag values. flags="\nEnableV3: false\nV3MirrorFraction: 0\nUseSpannerGraph: false\nUseMultiEntitySchema: false\nSpannerGraphDatabase: \"\"\nUseStaleReads: false\nEnableEmbeddingsResolver: true\nV2DivertFraction: 0\nUseStatisticalCalculation: false\nEnableSDMXDataApi: false\nEnableSpannerSearchEmbeddings: false\n"
Step #3 - "test": --- PASS: TestSpecializationOf (44.55s)
Step #3 - "test": PASS
Step #3 - "test": ok  	github.com/datacommonsorg/mixer/internal/server/v2/propertyvalues/golden	44.867s
Step #3 - "test": === RUN   TestResolveUsingEmbeddings
Step #3 - "test": --- PASS: TestResolveUsingEmbeddings (0.02s)
Step #3 - "test": === RUN   TestResolveUsingEmbeddings_Errors
Step #3 - "test": === RUN   TestResolveUsingEmbeddings_Errors/Server_Error_(500)
Step #3 - "test": 2026/06/23 19:29:29 ERROR Embeddings server returned non-200 status status_code=500 body="internal error" url=http://127.0.0.1:44199 queries=[query]
Step #3 - "test": === RUN   TestResolveUsingEmbeddings_Errors/Bad_Request_(400)
Step #3 - "test": 2026/06/23 19:29:29 ERROR Embeddings server returned non-200 status status_code=400 body="bad index name" url=http://127.0.0.1:38261 queries=[query]
Step #3 - "test": === RUN   TestResolveUsingEmbeddings_Errors/Not_Found_(404)
Step #3 - "test": 2026/06/23 19:29:29 ERROR Embeddings server returned non-200 status status_code=404 body="index not found" url=http://127.0.0.1:39349 queries=[query]
Step #3 - "test": === RUN   TestResolveUsingEmbeddings_Errors/Malformed_JSON
Step #3 - "test": 2026/06/23 19:29:29 ERROR Failed to decode embeddings server response error="invalid character 'i' looking for beginning of object key string" url=http://127.0.0.1:34851
Step #3 - "test": === RUN   TestResolveUsingEmbeddings_Errors/Empty_Server_URL
Step #3 - "test": 2026/06/23 19:29:29 ERROR resolver=indicator requested, but the embeddings server is not configured for this deployment
Step #3 - "test": --- PASS: TestResolveUsingEmbeddings_Errors (0.00s)
Step #3 - "test":     --- PASS: TestResolveUsingEmbeddings_Errors/Server_Error_(500) (0.00s)
Step #3 - "test":     --- PASS: TestResolveUsingEmbeddings_Errors/Bad_Request_(400) (0.00s)
Step #3 - "test":     --- PASS: TestResolveUsingEmbeddings_Errors/Not_Found_(404) (0.00s)
Step #3 - "test":     --- PASS: TestResolveUsingEmbeddings_Errors/Malformed_JSON (0.00s)
Step #3 - "test":     --- PASS: TestResolveUsingEmbeddings_Errors/Empty_Server_URL (0.00s)
Step #3 - "test": === RUN   TestResolveUsingEmbeddings_InconsistentSearchVarsResponse
Step #3 - "test": --- PASS: TestResolveUsingEmbeddings_InconsistentSearchVarsResponse (0.00s)
Step #3 - "test": === RUN   TestResolveUsingEmbeddings_IdxParameter
Step #3 - "test": === RUN   TestResolveUsingEmbeddings_IdxParameter/With_Custom_Indexes
Step #3 - "test": === RUN   TestResolveUsingEmbeddings_IdxParameter/With_Empty_Index
Step #3 - "test": --- PASS: TestResolveUsingEmbeddings_IdxParameter (0.00s)
Step #3 - "test":     --- PASS: TestResolveUsingEmbeddings_IdxParameter/With_Custom_Indexes (0.00s)
Step #3 - "test":     --- PASS: TestResolveUsingEmbeddings_IdxParameter/With_Empty_Index (0.00s)
Step #3 - "test": === RUN   TestResolveUsingEmbeddings_Filter
Step #3 - "test": --- PASS: TestResolveUsingEmbeddings_Filter (0.00s)
Step #3 - "test": === RUN   TestSelectEmbeddingsIndex
Step #3 - "test": === RUN   TestSelectEmbeddingsIndex/No_header
Step #3 - "test": === RUN   TestSelectEmbeddingsIndex/Valid_header,_enabled
Step #3 - "test": === RUN   TestSelectEmbeddingsIndex/Valid_header_(base-nl),_enabled
Step #3 - "test": === RUN   TestSelectEmbeddingsIndex/Invalid_header,_pass_through
Step #3 - "test": 2026/06/23 19:29:29 INFO V2Resolve index label not in map, passing directly label=invalid header=X-V2Resolve-Index
Step #3 - "test": --- PASS: TestSelectEmbeddingsIndex (0.00s)
Step #3 - "test":     --- PASS: TestSelectEmbeddingsIndex/No_header (0.00s)
Step #3 - "test":     --- PASS: TestSelectEmbeddingsIndex/Valid_header,_enabled (0.00s)
Step #3 - "test":     --- PASS: TestSelectEmbeddingsIndex/Valid_header_(base-nl),_enabled (0.00s)
Step #3 - "test":     --- PASS: TestSelectEmbeddingsIndex/Invalid_header,_pass_through (0.00s)
Step #3 - "test": === RUN   TestParseCoordinate
Step #3 - "test": --- PASS: TestParseCoordinate (0.00s)
Step #3 - "test": === RUN   TestResolveRouting
Step #3 - "test": === RUN   TestResolveRouting/Base_instance_(empty_remote_domain)
Step #3 - "test": === RUN   TestResolveRouting/Custom_instance,_target_base_only
Step #3 - "test": === RUN   TestResolveRouting/Custom_instance,_target_custom_only
Step #3 - "test": === RUN   TestResolveRouting/Custom_instance,_target_base_and_custom
Step #3 - "test": --- PASS: TestResolveRouting (0.00s)
Step #3 - "test":     --- PASS: TestResolveRouting/Base_instance_(empty_remote_domain) (0.00s)
Step #3 - "test":     --- PASS: TestResolveRouting/Custom_instance,_target_base_only (0.00s)
Step #3 - "test":     --- PASS: TestResolveRouting/Custom_instance,_target_custom_only (0.00s)
Step #3 - "test":     --- PASS: TestResolveRouting/Custom_instance,_target_base_and_custom (0.00s)
Step #3 - "test": === RUN   TestValidateAndParseResolveInputs
Step #3 - "test": === RUN   TestValidateAndParseResolveInputs/all_empty
Step #3 - "test": === RUN   TestValidateAndParseResolveInputs/partial_set_-_target
Step #3 - "test": === RUN   TestValidateAndParseResolveInputs/partial_set_-_resolver
Step #3 - "test": === RUN   TestValidateAndParseResolveInputs/partial_set_-_topic
Step #3 - "test": === RUN   TestValidateAndParseResolveInputs/fully_set
Step #3 - "test": === RUN   TestValidateAndParseResolveInputs/typeOf_filter
Step #3 - "test": === RUN   TestValidateAndParseResolveInputs/invalid_target
Step #3 - "test": === RUN   TestValidateAndParseResolveInputs/invalid_resolver
Step #3 - "test": === RUN   TestValidateAndParseResolveInputs/invalid_target_and_resolver
Step #3 - "test": === RUN   TestValidateAndParseResolveInputs/invalid_property_expression
Step #3 - "test": === RUN   TestValidateAndParseResolveInputs/unknown_property_for_place_resolver
Step #3 - "test": === RUN   TestValidateAndParseResolveInputs/invalid_property_for_indicator_resolver_(inProp)
Step #3 - "test": === RUN   TestValidateAndParseResolveInputs/invalid_property_for_indicator_resolver_(outProp)
Step #3 - "test": === RUN   TestValidateAndParseResolveInputs/invalid_target_+_valid_unknown_property
Step #3 - "test": === RUN   TestValidateAndParseResolveInputs/invalid_output_property_for_place_(description)
Step #3 - "test": --- PASS: TestValidateAndParseResolveInputs (0.01s)
Step #3 - "test":     --- PASS: TestValidateAndParseResolveInputs/all_empty (0.01s)
Step #3 - "test":     --- PASS: TestValidateAndParseResolveInputs/partial_set_-_target (0.00s)
Step #3 - "test":     --- PASS: TestValidateAndParseResolveInputs/partial_set_-_resolver (0.00s)
Step #3 - "test":     --- PASS: TestValidateAndParseResolveInputs/partial_set_-_topic (0.00s)
Step #3 - "test":     --- PASS: TestValidateAndParseResolveInputs/fully_set (0.00s)
Step #3 - "test":     --- PASS: TestValidateAndParseResolveInputs/typeOf_filter (0.00s)
Step #3 - "test":     --- PASS: TestValidateAndParseResolveInputs/invalid_target (0.00s)
Step #3 - "test":     --- PASS: TestValidateAndParseResolveInputs/invalid_resolver (0.00s)
Step #3 - "test":     --- PASS: TestValidateAndParseResolveInputs/invalid_target_and_resolver (0.00s)
Step #3 - "test":     --- PASS: TestValidateAndParseResolveInputs/invalid_property_expression (0.00s)
Step #3 - "test":     --- PASS: TestValidateAndParseResolveInputs/unknown_property_for_place_resolver (0.00s)
Step #3 - "test":     --- PASS: TestValidateAndParseResolveInputs/invalid_property_for_indicator_resolver_(inProp) (0.00s)
Step #3 - "test":     --- PASS: TestValidateAndParseResolveInputs/invalid_property_for_indicator_resolver_(outProp) (0.00s)
Step #3 - "test":     --- PASS: TestValidateAndParseResolveInputs/invalid_target_+_valid_unknown_property (0.00s)
Step #3 - "test":     --- PASS: TestValidateAndParseResolveInputs/invalid_output_property_for_place_(description) (0.00s)
Step #3 - "test": === RUN   TestResolveTopics
Step #3 - "test": === RUN   TestResolveTopics/Empty_nodes_list_resolves_root_topics
Step #3 - "test": === RUN   TestResolveTopics/Exact_topic_dcid_resolution
Step #3 - "test": --- PASS: TestResolveTopics (0.00s)
Step #3 - "test":     --- PASS: TestResolveTopics/Empty_nodes_list_resolves_root_topics (0.00s)
Step #3 - "test":     --- PASS: TestResolveTopics/Exact_topic_dcid_resolution (0.00s)
Step #3 - "test": PASS
Step #3 - "test": ok  	github.com/datacommonsorg/mixer/internal/server/v2/resolve	0.137s
Step #3 - "test": === RUN   TestResolveCoordinate
Step #3 - "test": === PAUSE TestResolveCoordinate
Step #3 - "test": === RUN   TestResolveDescription
Step #3 - "test": === PAUSE TestResolveDescription
Step #3 - "test": === RUN   TestResolveID
Step #3 - "test": === PAUSE TestResolveID
Step #3 - "test": === CONT  TestResolveCoordinate
Step #3 - "test": === CONT  TestResolveID
Step #3 - "test": === CONT  TestResolveDescription
Step #3 - "test": 2026/06/23 19:29:39 INFO No feature flag path specified. Using default flag values. flags="\nEnableV3: false\nV3MirrorFraction: 0\nUseSpannerGraph: false\nUseMultiEntitySchema: false\nSpannerGraphDatabase: \"\"\nUseStaleReads: false\nEnableEmbeddingsResolver: true\nV2DivertFraction: 0\nUseStatisticalCalculation: false\nEnableSDMXDataApi: false\nEnableSpannerSearchEmbeddings: false\n"
Step #3 - "test": 2026/06/23 19:29:39 INFO No feature flag path specified. Using default flag values. flags="\nEnableV3: false\nV3MirrorFraction: 0\nUseSpannerGraph: false\nUseMultiEntitySchema: false\nSpannerGraphDatabase: \"\"\nUseStaleReads: false\nEnableEmbeddingsResolver: true\nV2DivertFraction: 0\nUseStatisticalCalculation: false\nEnableSDMXDataApi: false\nEnableSpannerSearchEmbeddings: false\n"
Step #3 - "test": 2026/06/23 19:29:39 INFO No feature flag path specified. Using default flag values. flags="\nEnableV3: false\nV3MirrorFraction: 0\nUseSpannerGraph: false\nUseMultiEntitySchema: false\nSpannerGraphDatabase: \"\"\nUseStaleReads: false\nEnableEmbeddingsResolver: true\nV2DivertFraction: 0\nUseStatisticalCalculation: false\nEnableSDMXDataApi: false\nEnableSpannerSearchEmbeddings: false\n"
Step #3 - "test": --- PASS: TestResolveID (9.65s)
Step #3 - "test": --- PASS: TestResolveDescription (10.31s)
Step #3 - "test": --- PASS: TestResolveCoordinate (10.99s)
Step #3 - "test": PASS
Step #3 - "test": ok  	github.com/datacommonsorg/mixer/internal/server/v2/resolve/golden	11.263s
Step #3 - "test": === RUN   TestFetchChildPlaces
Step #3 - "test": === PAUSE TestFetchChildPlaces
Step #3 - "test": === CONT  TestFetchChildPlaces
Step #3 - "test": --- PASS: TestFetchChildPlaces (0.00s)
Step #3 - "test": PASS
Step #3 - "test": ok  	github.com/datacommonsorg/mixer/internal/server/v2/shared	0.083s
Step #3 - "test": ?   	github.com/datacommonsorg/mixer/internal/server/v3	[no test files]
Step #3 - "test": === RUN   TestV3BulkVariableGroupInfo
Step #3 - "test": --- PASS: TestV3BulkVariableGroupInfo (0.00s)
Step #3 - "test": PASS
Step #3 - "test": ok  	github.com/datacommonsorg/mixer/internal/server/v3/bulk_variable_group_info	0.211s
Step #3 - "test": === RUN   TestV3BulkVariableInfo
Step #3 - "test": --- PASS: TestV3BulkVariableInfo (0.00s)
Step #3 - "test": PASS
Step #3 - "test": ok  	github.com/datacommonsorg/mixer/internal/server/v3/bulk_variable_info/golden	0.104s
Step #3 - "test": === RUN   TestV3Node
Step #3 - "test": --- PASS: TestV3Node (0.00s)
Step #3 - "test": === RUN   TestV3NodePagination
Step #3 - "test": --- PASS: TestV3NodePagination (0.00s)
Step #3 - "test": PASS
Step #3 - "test": ok  	github.com/datacommonsorg/mixer/internal/server/v3/node/golden	0.121s
Step #3 - "test": === RUN   TestV3NodeSearch
Step #3 - "test": --- PASS: TestV3NodeSearch (0.00s)
Step #3 - "test": PASS
Step #3 - "test": ok  	github.com/datacommonsorg/mixer/internal/server/v3/nodesearch/golden	0.143s
Step #3 - "test": ?   	github.com/datacommonsorg/mixer/internal/server/v3/observation	[no test files]
Step #3 - "test": === RUN   TestV3Observation
Step #3 - "test": --- PASS: TestV3Observation (0.00s)
Step #3 - "test": PASS
Step #3 - "test": ok  	github.com/datacommonsorg/mixer/internal/server/v3/observation/golden	0.091s
Step #3 - "test": === RUN   TestV3Resolve
Step #3 - "test": --- PASS: TestV3Resolve (0.00s)
Step #3 - "test": PASS
Step #3 - "test": ok  	github.com/datacommonsorg/mixer/internal/server/v3/resolve/golden	0.152s
Step #3 - "test": === RUN   TestV3Sparql
Step #3 - "test": --- PASS: TestV3Sparql (0.00s)
Step #3 - "test": PASS
Step #3 - "test": ok  	github.com/datacommonsorg/mixer/internal/server/v3/sparql/golden	0.294s
Step #3 - "test": === RUN   TestId
Step #3 - "test": 2026/06/23 19:29:33 INFO Connected to sqlite db path=../../test/sqlquery/key_value/datacommons.db
Step #3 - "test": --- PASS: TestId (0.00s)
Step #3 - "test": === RUN   TestGetKeyValue
Step #3 - "test": 2026/06/23 19:29:33 INFO Connected to sqlite db path=../../test/sqlquery/key_value/datacommons.db
Step #3 - "test": 2026/06/23 19:29:33 INFO Tracked function execution time name="SQL: GetKeyValue" duration=1.871411ms
Step #3 - "test": --- PASS: TestGetKeyValue (0.00s)
Step #3 - "test": === RUN   TestGenerateCTESelectStatement
Step #3 - "test": --- PASS: TestGenerateCTESelectStatement (0.00s)
Step #3 - "test": === RUN   TestChunkSlice
Step #3 - "test": --- PASS: TestChunkSlice (0.00s)
Step #3 - "test": PASS
Step #3 - "test": ok  	github.com/datacommonsorg/mixer/internal/sqldb	0.081s
Step #3 - "test": === RUN   TestCountObservation
Step #3 - "test": 2026/06/23 19:29:33 INFO Connected to sqlite db path=../../../test/datacommons.db
Step #3 - "test": 2026/06/23 19:29:33 INFO Tracked function execution time name="SQL: GetObservationCount" duration=1.96853ms
Step #3 - "test": 2026/06/23 19:29:33 INFO Tracked function execution time name="SQL: GetObservationCount" duration=781.91µs
Step #3 - "test": --- PASS: TestCountObservation (0.00s)
Step #3 - "test": === RUN   TestGetImportTableData
Step #3 - "test": 2026/06/23 19:29:33 INFO Connected to sqlite db path=../../../test/test_get_import_table_data.db
Step #3 - "test": 2026/06/23 19:29:33 INFO Tracked function execution time name="SQL: GetAllImports" duration=777.546µs
Step #3 - "test": --- PASS: TestGetImportTableData (0.00s)
Step #3 - "test": === RUN   TestGetStatVarSummaries
Step #3 - "test": 2026/06/23 19:29:33 INFO Connected to sqlite db path=../../../test/sqlquery/statvar_summary/datacommons.db
Step #3 - "test": 2026/06/23 19:29:33 INFO SQL tables check succeeded.
Step #3 - "test": 2026/06/23 19:29:33 INFO SQL schema check succeeded.
Step #3 - "test": 2026/06/23 19:29:33 INFO Tracked function execution time name="SQL: GetSVSummaries" duration=4.216628ms
Step #3 - "test": 2026/06/23 19:29:33 INFO Tracked function execution time name="SQL: GetSVProvenanceSummaries" duration=11.671641ms
Step #3 - "test": 2026/06/23 19:29:33 INFO Tracked function execution time name="SQL: GetStatVarSummaries (var1, var2, var3)" duration=11.933028ms
Step #3 - "test": --- PASS: TestGetStatVarSummaries (0.01s)
Step #3 - "test": PASS
Step #3 - "test": ok  	github.com/datacommonsorg/mixer/internal/sqldb/sqlquery	0.197s
Step #3 - "test": ?   	github.com/datacommonsorg/mixer/internal/store	[no test files]
Step #3 - "test": === RUN   TestReadOneTable
Step #3 - "test": --- PASS: TestReadOneTable (0.16s)
Step #3 - "test": === RUN   TestReadTwoTables
Step #3 - "test": --- PASS: TestReadTwoTables (0.05s)
Step #3 - "test": === RUN   TestSortTables
Step #3 - "test": --- PASS: TestSortTables (0.00s)
Step #3 - "test": === RUN   TestBuildRowList
Step #3 - "test": --- PASS: TestBuildRowList (0.00s)
Step #3 - "test": === RUN   TestParseTableInfo
Step #3 - "test": --- PASS: TestParseTableInfo (0.01s)
Step #3 - "test": PASS
Step #3 - "test": ok  	github.com/datacommonsorg/mixer/internal/store/bigtable	0.400s
Step #3 - "test": === RUN   TestLoadRecogPlaceStore
Step #3 - "test": --- PASS: TestLoadRecogPlaceStore (6.52s)
Step #3 - "test": PASS
Step #3 - "test": ok  	github.com/datacommonsorg/mixer/internal/store/files	6.666s
Step #3 - "test": === RUN   TestBind
Step #3 - "test": --- PASS: TestBind (0.00s)
Step #3 - "test": === RUN   TestGetBindings
Step #3 - "test": --- PASS: TestGetBindings (0.00s)
Step #3 - "test": === RUN   TestGetGraph
Step #3 - "test": --- PASS: TestGetGraph (0.00s)
Step #3 - "test": === RUN   TestGetConstraint
Step #3 - "test": --- PASS: TestGetConstraint (0.00s)
Step #3 - "test": === RUN   TestGetSQL
Step #3 - "test": --- PASS: TestGetSQL (0.00s)
Step #3 - "test": === RUN   TestTranslate
Step #3 - "test": --- PASS: TestTranslate (0.13s)
Step #3 - "test": === RUN   TestDcidSimplified
Step #3 - "test": --- PASS: TestDcidSimplified (0.03s)
Step #3 - "test": === RUN   TestTranslateIOCountyBQ
Step #3 - "test": Multiple functional deps: `dc_v3.bq_county_outcomes`->E2 => map[gender:`dc_v3.bq_county_outcomes`->gender location:`dc_v3.bq_county_outcomes`->E1 outcome:`dc_v3.bq_county_outcomes`->outcome percentile:`dc_v3.bq_county_outcomes`->percentile race:`dc_v3.bq_county_outcomes`->race]
Step #3 - "test": Multiple functional deps: `dc_v3.bq_county_outcomes`->E2 => map[gender:`dc_v3.bq_county_outcomes`->gender location:`dc_v3.bq_county_outcomes`->E1 outcome:`dc_v3.bq_county_outcomes`->outcome percentile:`dc_v3.bq_county_outcomes`->percentile race:`dc_v3.bq_county_outcomes`->race]
Step #3 - "test": --- PASS: TestTranslateIOCountyBQ (0.00s)
Step #3 - "test": === RUN   TestTranslateWeather
Step #3 - "test": Multiple functional deps: `dc_v3.MonthlyWeather`->E1 => map[observationDate:`dc_v3.MonthlyWeather`->observation_date observationPeriod:P1M observedNode:`dc_v3.MonthlyWeather`->E2]
Step #3 - "test": Multiple functional deps: `dc_v3.MonthlyWeather`->E1 => map[observationDate:`dc_v3.MonthlyWeather`->observation_date observationPeriod:P1M observedNode:`dc_v3.MonthlyWeather`->E2]
Step #3 - "test": Multiple functional deps: `dc_v3.MonthlyWeather`->E1 => map[observationDate:`dc_v3.MonthlyWeather`->observation_date observationPeriod:P1M observedNode:`dc_v3.MonthlyWeather`->E2]
Step #3 - "test": Multiple functional deps: `dc_v3.MonthlyWeather`->E1 => map[observationDate:`dc_v3.MonthlyWeather`->observation_date observationPeriod:P1M observedNode:`dc_v3.MonthlyWeather`->E2]
Step #3 - "test": --- PASS: TestTranslateWeather (0.00s)
Step #3 - "test": === RUN   TestTranslateWeatherSparql
Step #3 - "test": Multiple functional deps: `dc_v3.MonthlyWeather`->E1 => map[observationDate:`dc_v3.MonthlyWeather`->observation_date observationPeriod:P1M observedNode:`dc_v3.MonthlyWeather`->E2]
Step #3 - "test": Multiple functional deps: `dc_v3.MonthlyWeather`->E1 => map[observationDate:`dc_v3.MonthlyWeather`->observation_date observationPeriod:P1M observedNode:`dc_v3.MonthlyWeather`->E2]
Step #3 - "test": --- PASS: TestTranslateWeatherSparql (0.00s)
Step #3 - "test": === RUN   TestTranslatePew
Step #3 - "test": --- PASS: TestTranslatePew (0.00s)
Step #3 - "test": === RUN   TestSparql
Step #3 - "test": --- PASS: TestSparql (0.05s)
Step #3 - "test": === RUN   TestStatVarObs
Step #3 - "test": --- PASS: TestStatVarObs (0.01s)
Step #3 - "test": PASS
Step #3 - "test": ok  	github.com/datacommonsorg/mixer/internal/translator	0.386s
Step #3 - "test": === RUN   TestSplit
Step #3 - "test": --- PASS: TestSplit (0.00s)
Step #3 - "test": === RUN   TestParseQuery
Step #3 - "test": --- PASS: TestParseQuery (0.00s)
Step #3 - "test": PASS
Step #3 - "test": ok  	github.com/datacommonsorg/mixer/internal/translator/datalog	0.101s
Step #3 - "test": === RUN   TestGetNodeType
Step #3 - "test": --- PASS: TestGetNodeType (0.00s)
Step #3 - "test": === RUN   TestGetEntityType
Step #3 - "test": --- PASS: TestGetEntityType (0.00s)
Step #3 - "test": === RUN   TestGetExplicitTypeProp
Step #3 - "test": --- PASS: TestGetExplicitTypeProp (0.00s)
Step #3 - "test": === RUN   TestGetQueryID
Step #3 - "test": --- PASS: TestGetQueryID (0.00s)
Step #3 - "test": === RUN   TestMatchTriple
Step #3 - "test": --- PASS: TestMatchTriple (0.00s)
Step #3 - "test": === RUN   TestGetFuncDeps
Step #3 - "test": --- PASS: TestGetFuncDeps (0.00s)
Step #3 - "test": === RUN   TestGetFuncDepsWithEntity
Step #3 - "test": --- PASS: TestGetFuncDepsWithEntity (0.00s)
Step #3 - "test": === RUN   TestGetProvColumn
Step #3 - "test": --- PASS: TestGetProvColumn (0.00s)
Step #3 - "test": === RUN   TestRewriteQuery
Step #3 - "test": --- PASS: TestRewriteQuery (0.00s)
Step #3 - "test": === RUN   TestGetOutArcInfo
Step #3 - "test": --- PASS: TestGetOutArcInfo (0.00s)
Step #3 - "test": PASS
Step #3 - "test": ok  	github.com/datacommonsorg/mixer/internal/translator/solver	0.077s
Step #3 - "test": === RUN   TestParsePrologue
Step #3 - "test": --- PASS: TestParsePrologue (0.00s)
Step #3 - "test": === RUN   TestParseSelect
Step #3 - "test": --- PASS: TestParseSelect (0.00s)
Step #3 - "test": === RUN   TestParseWhere
Step #3 - "test": --- PASS: TestParseWhere (0.00s)
Step #3 - "test": === RUN   TestParseOrderBy
Step #3 - "test": --- PASS: TestParseOrderBy (0.00s)
Step #3 - "test": === RUN   TestParseLimit
Step #3 - "test": --- PASS: TestParseLimit (0.00s)
Step #3 - "test": === RUN   TestParseTree
Step #3 - "test": --- PASS: TestParseTree (0.00s)
Step #3 - "test": === RUN   TestReader
Step #3 - "test": --- PASS: TestReader (0.00s)
Step #3 - "test": === RUN   TestScanSimple
Step #3 - "test": --- PASS: TestScanSimple (0.00s)
Step #3 - "test": === RUN   TestMulti
Step #3 - "test": --- PASS: TestMulti (0.00s)
Step #3 - "test": PASS
Step #3 - "test": ok  	github.com/datacommonsorg/mixer/internal/translator/sparql	0.050s
Step #3 - "test": ?   	github.com/datacommonsorg/mixer/internal/translator/testutil	[no test files]
Step #3 - "test": === RUN   TestQuery
Step #3 - "test": --- PASS: TestQuery (0.00s)
Step #3 - "test": === RUN   TestEntity
Step #3 - "test": --- PASS: TestEntity (0.00s)
Step #3 - "test": === RUN   TestColumn
Step #3 - "test": --- PASS: TestColumn (0.00s)
Step #3 - "test": === RUN   TestMapping
Step #3 - "test": --- PASS: TestMapping (0.00s)
Step #3 - "test": === RUN   TestTableAlias
Step #3 - "test": --- PASS: TestTableAlias (0.00s)
Step #3 - "test": PASS
Step #3 - "test": ok  	github.com/datacommonsorg/mixer/internal/translator/types	0.114s
Step #3 - "test": === RUN   TestGetDominantType
Step #3 - "test": === RUN   TestGetDominantType/Empty_input
Step #3 - "test": === RUN   TestGetDominantType/Single_match
Step #3 - "test": === RUN   TestGetDominantType/Multiple_matches,_first_priority_wins_(Country_vs_State)
Step #3 - "test": === RUN   TestGetDominantType/Multiple_matches,_first_priority_wins_(County_vs_City)
Step #3 - "test": === RUN   TestGetDominantType/No_matches_in_priority_list
Step #3 - "test": === RUN   TestGetDominantType/Mixed_types_with_match
Step #3 - "test": --- PASS: TestGetDominantType (0.00s)
Step #3 - "test":     --- PASS: TestGetDominantType/Empty_input (0.00s)
Step #3 - "test":     --- PASS: TestGetDominantType/Single_match (0.00s)
Step #3 - "test":     --- PASS: TestGetDominantType/Multiple_matches,_first_priority_wins_(Country_vs_State) (0.00s)
Step #3 - "test":     --- PASS: TestGetDominantType/Multiple_matches,_first_priority_wins_(County_vs_City) (0.00s)
Step #3 - "test":     --- PASS: TestGetDominantType/No_matches_in_priority_list (0.00s)
Step #3 - "test":     --- PASS: TestGetDominantType/Mixed_types_with_match (0.00s)
Step #3 - "test": === RUN   TestLoadPlaceTypesFromFile_MissingFile
Step #3 - "test": === PAUSE TestLoadPlaceTypesFromFile_MissingFile
Step #3 - "test": === RUN   TestLoadPlaceTypesFromFile_InvalidYAML
Step #3 - "test": === PAUSE TestLoadPlaceTypesFromFile_InvalidYAML
Step #3 - "test": === RUN   TestZipAndEndocde
Step #3 - "test": --- PASS: TestZipAndEndocde (0.04s)
Step #3 - "test": === RUN   TestSnakeToCamel
Step #3 - "test": --- PASS: TestSnakeToCamel (0.00s)
Step #3 - "test": === RUN   TestCheckValidDCIDs
Step #3 - "test": --- PASS: TestCheckValidDCIDs (0.00s)
Step #3 - "test": === RUN   TestMergeDedupe
Step #3 - "test": --- PASS: TestMergeDedupe (0.00s)
Step #3 - "test": === RUN   TestSample
Step #3 - "test": --- PASS: TestSample (0.00s)
Step #3 - "test": === RUN   TestKeysToSlice
Step #3 - "test": --- PASS: TestKeysToSlice (0.00s)
Step #3 - "test": === RUN   TestEncode
Step #3 - "test": --- PASS: TestEncode (0.00s)
Step #3 - "test": === RUN   TestStringListIntersection
Step #3 - "test": --- PASS: TestStringListIntersection (0.00s)
Step #3 - "test": === RUN   TestGetFacetID
Step #3 - "test": --- PASS: TestGetFacetID (0.00s)
Step #3 - "test": === RUN   TestShouldIncludeFacet
Step #3 - "test": --- PASS: TestShouldIncludeFacet (0.00s)
Step #3 - "test": === RUN   TestToStringListValue
Step #3 - "test": === RUN   TestToStringListValue/non-empty_list_of_strings
Step #3 - "test": === RUN   TestToStringListValue/empty_list_of_strings
Step #3 - "test": --- PASS: TestToStringListValue (0.00s)
Step #3 - "test":     --- PASS: TestToStringListValue/non-empty_list_of_strings (0.00s)
Step #3 - "test":     --- PASS: TestToStringListValue/empty_list_of_strings (0.00s)
Step #3 - "test": === CONT  TestLoadPlaceTypesFromFile_MissingFile
Step #3 - "test": === CONT  TestLoadPlaceTypesFromFile_InvalidYAML
Step #3 - "test": --- PASS: TestLoadPlaceTypesFromFile_MissingFile (0.00s)
Step #3 - "test": --- PASS: TestLoadPlaceTypesFromFile_InvalidYAML (0.00s)
Step #3 - "test": PASS
Step #3 - "test": ok  	github.com/datacommonsorg/mixer/internal/util	0.099s
Step #3 - "test": ?   	github.com/datacommonsorg/mixer/scripts	[no test files]
Step #3 - "test": === RUN   TestChartConfigRankings
Step #3 - "test": === PAUSE TestChartConfigRankings
Step #3 - "test": === CONT  TestChartConfigRankings
Step #3 - "test": 2026/06/23 19:29:43 INFO No feature flag path specified. Using default flag values. flags="\nEnableV3: false\nV3MirrorFraction: 0\nUseSpannerGraph: false\nUseMultiEntitySchema: false\nSpannerGraphDatabase: \"\"\nUseStaleReads: false\nEnableEmbeddingsResolver: true\nV2DivertFraction: 0\nUseStatisticalCalculation: false\nEnableSDMXDataApi: false\nEnableSpannerSearchEmbeddings: false\n"
Step #3 - "test": === RUN   TestChartConfigRankings/missing_Earth_country_rankings.json
Step #3 - "test": === PAUSE TestChartConfigRankings/missing_Earth_country_rankings.json
Step #3 - "test": === RUN   TestChartConfigRankings/missing_USA_state_rankings.json
Step #3 - "test": === PAUSE TestChartConfigRankings/missing_USA_state_rankings.json
Step #3 - "test": === RUN   TestChartConfigRankings/missing_USA_county_rankings.json
Step #3 - "test": === PAUSE TestChartConfigRankings/missing_USA_county_rankings.json
Step #3 - "test": === RUN   TestChartConfigRankings/missing_USA_city_rankings.json
Step #3 - "test": === PAUSE TestChartConfigRankings/missing_USA_city_rankings.json
Step #3 - "test": === CONT  TestChartConfigRankings/missing_Earth_country_rankings.json
Step #3 - "test": === CONT  TestChartConfigRankings/missing_USA_county_rankings.json
Step #3 - "test": === CONT  TestChartConfigRankings/missing_USA_state_rankings.json
Step #3 - "test": === CONT  TestChartConfigRankings/missing_USA_city_rankings.json
Step #3 - "test": --- PASS: TestChartConfigRankings (7.47s)
Step #3 - "test":     --- PASS: TestChartConfigRankings/missing_USA_state_rankings.json (1.85s)
Step #3 - "test":     --- PASS: TestChartConfigRankings/missing_USA_city_rankings.json (1.85s)
Step #3 - "test":     --- PASS: TestChartConfigRankings/missing_USA_county_rankings.json (1.85s)
Step #3 - "test":     --- PASS: TestChartConfigRankings/missing_Earth_country_rankings.json (1.86s)
Step #3 - "test": PASS
Step #3 - "test": ok  	github.com/datacommonsorg/mixer/test	9.671s
Step #3 - "test": ?   	github.com/datacommonsorg/mixer/test/http_memprof	[no test files]
Step #3 - "test": === RUN   TestValidateInputsBulkVariableGroupInfoMethods
Step #3 - "test": === RUN   TestValidateInputsBulkVariableGroupInfoMethods/stat_var_group_node_accepts_nodes
Step #3 - "test": === RUN   TestValidateInputsBulkVariableGroupInfoMethods/stat_var_group_node_rejects_missing_nodes
Step #3 - "test": === RUN   TestValidateInputsBulkVariableGroupInfoMethods/filtered_stat_var_group_node_accepts_constraints
Step #3 - "test": === RUN   TestValidateInputsBulkVariableGroupInfoMethods/filtered_topic_accepts_source_constraint
Step #3 - "test": === RUN   TestValidateInputsBulkVariableGroupInfoMethods/filtered_topic_rejects_missing_nodes
Step #3 - "test": === RUN   TestValidateInputsBulkVariableGroupInfoMethods/filtered_topic_rejects_missing_constraints
Step #3 - "test": === RUN   TestValidateInputsBulkVariableGroupInfoMethods/filtered_topic_rejects_empty_comma_constraints
Step #3 - "test": === RUN   TestValidateInputsBulkVariableGroupInfoMethods/filtered_topic_rejects_negative_entity_threshold
Step #3 - "test": === RUN   TestValidateInputsBulkVariableGroupInfoMethods/filtered_topic_rejects_multiple_import_constraints
Step #3 - "test": --- PASS: TestValidateInputsBulkVariableGroupInfoMethods (0.00s)
Step #3 - "test":     --- PASS: TestValidateInputsBulkVariableGroupInfoMethods/stat_var_group_node_accepts_nodes (0.00s)
Step #3 - "test":     --- PASS: TestValidateInputsBulkVariableGroupInfoMethods/stat_var_group_node_rejects_missing_nodes (0.00s)
Step #3 - "test":     --- PASS: TestValidateInputsBulkVariableGroupInfoMethods/filtered_stat_var_group_node_accepts_constraints (0.00s)
Step #3 - "test":     --- PASS: TestValidateInputsBulkVariableGroupInfoMethods/filtered_topic_accepts_source_constraint (0.00s)
Step #3 - "test":     --- PASS: TestValidateInputsBulkVariableGroupInfoMethods/filtered_topic_rejects_missing_nodes (0.00s)
Step #3 - "test":     --- PASS: TestValidateInputsBulkVariableGroupInfoMethods/filtered_topic_rejects_missing_constraints (0.00s)
Step #3 - "test":     --- PASS: TestValidateInputsBulkVariableGroupInfoMethods/filtered_topic_rejects_empty_comma_constraints (0.00s)
Step #3 - "test":     --- PASS: TestValidateInputsBulkVariableGroupInfoMethods/filtered_topic_rejects_negative_entity_threshold (0.00s)
Step #3 - "test":     --- PASS: TestValidateInputsBulkVariableGroupInfoMethods/filtered_topic_rejects_multiple_import_constraints (0.00s)
Step #3 - "test": === RUN   TestParseConstrainedEntities
Step #3 - "test": --- PASS: TestParseConstrainedEntities (0.00s)
Step #3 - "test": === RUN   TestParseConstrainedEntitiesRejectsMultipleImports
Step #3 - "test": --- PASS: TestParseConstrainedEntitiesRejectsMultipleImports (0.00s)
Step #3 - "test": PASS
Step #3 - "test": ok  	github.com/datacommonsorg/mixer/tools/perf_test	0.094s
Step #3 - "test": ?   	github.com/datacommonsorg/mixer/tools/send_email	[no test files]
Finished Step #3 - "test"
PUSH
DONE

Build Log: https://console.cloud.google.com/cloud-build/builds/7fe331fa-75d1-42b5-b051-95c0098b3680?project=879489846695