feat(neo4j): Add dry_run parameter to validate Cypher queries#1769
Merged
Google Cloud Build / integration-test-pr (toolbox-testing-438616)
succeeded
Oct 23, 2025 in 13m 9s
Summary
Build Information
| Trigger | integration-test-pr |
| Build | f20a763d-844d-448d-a568-febaa2b6b0d2 |
| Start | 2025-10-23T15:00:11-07:00 |
| Duration | 5m42.142s |
| Status | SUCCESS |
Steps
| Step | Status | Duration |
|---|---|---|
| install-dependencies | SUCCESS | 22.8s |
| compile-test-binary | SUCCESS | 56.855s |
| cloud-sql-pg | SUCCESS | 18.583s |
| alloydb | SUCCESS | 7.72s |
| alloydb-pg | SUCCESS | 18.048s |
| alloydb-ai-nl | SUCCESS | 9.171s |
| bigtable | SUCCESS | 17.217s |
| bigquery | SUCCESS | 4m14.128s |
| dataplex | SUCCESS | 2m16.437s |
| dataform | SUCCESS | 57.316s |
| postgres | SUCCESS | 23.41s |
| spanner | SUCCESS | 45.102s |
| neo4j | SUCCESS | 5.007s |
| cloud-sql-mssql | SUCCESS | 7.204s |
| cloud-sql-mysql | SUCCESS | 23.409s |
| mysql | SUCCESS | 25.16s |
| mssql | SUCCESS | 6.344s |
| http | SUCCESS | 4.532s |
| sqlite | SUCCESS | 4.787s |
| couchbase | SUCCESS | 31.085s |
| redis | SUCCESS | 6.069s |
| valkey | SUCCESS | 4.38s |
| oceanbase | SUCCESS | 10.388s |
| firestore | SUCCESS | 6.091s |
| looker | SUCCESS | 1m50.092s |
| cloud-sql | SUCCESS | 4.423s |
| tidb | SUCCESS | 9.92s |
| firebird | SUCCESS | 1m8.577s |
| clickhouse | SUCCESS | 9.274s |
| trino | SUCCESS | 7.878s |
| yugabytedb | SUCCESS | 11.954s |
| cassandra | SUCCESS | 12.453s |
| oracle | SUCCESS | 11.368s |
Details
starting build "f20a763d-844d-448d-a568-febaa2b6b0d2"
FETCHSOURCE
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: git branch -m <name>
Initialized empty Git repository in /workspace/.git/
From https://github.com/googleapis/genai-toolbox
* branch 5a96a5b414127911e0f7ba1ebb5e334c05439d8f -> FETCH_HEAD
HEAD is now at 5a96a5b Merge branch 'main' into add-neo4j-dry-run
GitCommit:
5a96a5b414127911e0f7ba1ebb5e334c05439d8f
SETUPBUILD
BUILD
Starting Step #0 - "install-dependencies"
Step #0 - "install-dependencies": Pulling image: golang:1
Step #0 - "install-dependencies": 1: Pulling from library/golang
Step #0 - "install-dependencies": 795dbedde24d: Pulling fs layer
Step #0 - "install-dependencies": 89d573bf42b3: Pulling fs layer
Step #0 - "install-dependencies": 26dfe2fac1c4: Pulling fs layer
Step #0 - "install-dependencies": 1c596538aa11: Pulling fs layer
Step #0 - "install-dependencies": 91631faa732a: Pulling fs layer
Step #0 - "install-dependencies": 923089182cb9: Pulling fs layer
Step #0 - "install-dependencies": 4f4fb700ef54: Pulling fs layer
Step #0 - "install-dependencies": 1c596538aa11: Waiting
Step #0 - "install-dependencies": 91631faa732a: Waiting
Step #0 - "install-dependencies": 923089182cb9: Waiting
Step #0 - "install-dependencies": 4f4fb700ef54: Waiting
Step #0 - "install-dependencies": 89d573bf42b3: Verifying Checksum
Step #0 - "install-dependencies": 89d573bf42b3: Download complete
Step #0 - "install-dependencies": 795dbedde24d: Verifying Checksum
Step #0 - "install-dependencies": 795dbedde24d: Download complete
Step #0 - "install-dependencies": 26dfe2fac1c4: Verifying Checksum
Step #0 - "install-dependencies": 26dfe2fac1c4: Download complete
Step #0 - "install-dependencies": 923089182cb9: Verifying Checksum
Step #0 - "install-dependencies": 923089182cb9: Download complete
Step #0 - "install-dependencies": 4f4fb700ef54: Verifying Checksum
Step #0 - "install-dependencies": 4f4fb700ef54: Download complete
Step #0 - "install-dependencies": 91631faa732a: Verifying Checksum
Step #0 - "install-dependencies": 91631faa732a: Download complete
Step #0 - "install-dependencies": 1c596538aa11: Verifying Checksum
Step #0 - "install-dependencies": 1c596538aa11: Download complete
Step #0 - "install-dependencies": 795dbedde24d: Pull complete
Step #0 - "install-dependencies": 89d573bf42b3: Pull complete
Step #0 - "install-dependencies": 26dfe2fac1c4: Pull complete
Step #0 - "install-dependencies": 1c596538aa11: Pull complete
Step #0 - "install-dependencies": 91631faa732a: Pull complete
Step #0 - "install-dependencies": 923089182cb9: Pull complete
Step #0 - "install-dependencies": 4f4fb700ef54: Pull complete
Step #0 - "install-dependencies": Digest: sha256:8c945d3e25320e771326dafc6fb72ecae5f87b0f29328cbbd87c4dff506c9135
Step #0 - "install-dependencies": Status: Downloaded newer image for golang:1
Step #0 - "install-dependencies": docker.io/library/golang:1
Step #0 - "install-dependencies": go: -d flag is deprecated. -d=true is a no-op
Step #0 - "install-dependencies": go: downloading github.com/ClickHouse/clickhouse-go/v2 v2.40.3
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/geminidataanalytics v0.2.1
Step #0 - "install-dependencies": go: downloading github.com/goccy/go-yaml v1.18.0
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/otel/trace v1.38.0
Step #0 - "install-dependencies": go: downloading github.com/looker-open-source/sdk-codegen/go v0.25.16
Step #0 - "install-dependencies": go: downloading golang.org/x/oauth2 v0.32.0
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/bigquery v1.71.0
Step #0 - "install-dependencies": go: downloading google.golang.org/api v0.251.0
Step #0 - "install-dependencies": go: downloading go.mongodb.org/mongo-driver v1.17.4
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/cloudsqlconn v1.18.1
Step #0 - "install-dependencies": go: downloading github.com/microsoft/go-mssqldb v1.9.3
Step #0 - "install-dependencies": go: downloading github.com/go-sql-driver/mysql v1.9.3
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/bigtable v1.40.1
Step #0 - "install-dependencies": go: downloading github.com/jackc/pgx/v5 v5.7.6
Step #0 - "install-dependencies": go: downloading github.com/neo4j/neo4j-go-driver/v5 v5.28.4
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/alloydbconn v1.15.5
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/firestore v1.20.0
Step #0 - "install-dependencies": go: downloading github.com/sijms/go-ora/v2 v2.9.0
Step #0 - "install-dependencies": go: downloading github.com/gocql/gocql v1.7.0
Step #0 - "install-dependencies": go: downloading github.com/google/uuid v1.6.0
Step #0 - "install-dependencies": go: downloading github.com/trinodb/trino-go-client v0.329.0
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/dataplex v1.27.1
Step #0 - "install-dependencies": go: downloading github.com/redis/go-redis/v9 v9.16.0
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/spanner v1.86.0
Step #0 - "install-dependencies": go: downloading github.com/valkey-io/valkey-go v1.0.66
Step #0 - "install-dependencies": go: downloading github.com/yugabyte/pgx/v5 v5.5.3-yb-5
Step #0 - "install-dependencies": go: downloading modernc.org/sqlite v1.39.1
Step #0 - "install-dependencies": go: downloading github.com/fsnotify/fsnotify v1.9.0
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/otel v1.38.0
Step #0 - "install-dependencies": go: downloading github.com/go-playground/validator/v10 v10.28.0
Step #0 - "install-dependencies": go: downloading github.com/couchbase/gocb/v2 v2.11.1
Step #0 - "install-dependencies": go: downloading github.com/go-chi/chi/v5 v5.2.3
Step #0 - "install-dependencies": go: downloading github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.53.0
Step #0 - "install-dependencies": go: downloading github.com/couchbase/tools-common/http v1.0.9
Step #0 - "install-dependencies": go: downloading github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v1.29.0
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/contrib/propagators/autoprop v0.62.0
Step #0 - "install-dependencies": go: downloading github.com/go-chi/httplog/v2 v2.1.1
Step #0 - "install-dependencies": go: downloading github.com/go-chi/render v1.0.3
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.37.0
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.37.0
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/otel/metric v1.38.0
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/otel/sdk/metric v1.37.0
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/otel/sdk v1.37.0
Step #0 - "install-dependencies": go: downloading cloud.google.com/go v0.121.6
Step #0 - "install-dependencies": go: downloading github.com/spf13/cobra v1.10.1
Step #0 - "install-dependencies": go: downloading github.com/cenkalti/backoff/v5 v5.0.3
Step #0 - "install-dependencies": go: downloading google.golang.org/genproto v0.0.0-20250929231259-57b25ae835d4
Step #0 - "install-dependencies": go: downloading github.com/thlib/go-timezone-local v0.0.7
Step #0 - "install-dependencies": go: downloading github.com/google/go-cmp v0.7.0
Step #0 - "install-dependencies": go: downloading github.com/json-iterator/go v1.1.12
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/contrib/propagators/aws v1.37.0
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/contrib/propagators/b3 v1.37.0
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.37.0
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/contrib/propagators/jaeger v1.37.0
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/contrib/propagators/ot v1.37.0
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/trace v1.11.6
Step #0 - "install-dependencies": go: downloading github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.53.0
Step #0 - "install-dependencies": go: downloading google.golang.org/genproto/googleapis/rpc v0.0.0-20250929231259-57b25ae835d4
Step #0 - "install-dependencies": go: downloading google.golang.org/grpc v1.75.1
Step #0 - "install-dependencies": go: downloading google.golang.org/protobuf v1.36.9
Step #0 - "install-dependencies": go: downloading github.com/ajg/form v1.5.1
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/monitoring v1.24.2
Step #0 - "install-dependencies": go: downloading github.com/googleapis/gax-go/v2 v2.15.0
Step #0 - "install-dependencies": go: downloading google.golang.org/genproto/googleapis/api v0.0.0-20250922171735-9219d122eba9
Step #0 - "install-dependencies": go: downloading gopkg.in/ini.v1 v1.67.0
Step #0 - "install-dependencies": go: downloading github.com/jcmturner/gokrb5/v8 v8.4.4
Step #0 - "install-dependencies": go: downloading github.com/klauspost/compress v1.18.0
Step #0 - "install-dependencies": go: downloading github.com/pierrec/lz4 v2.6.1+incompatible
Step #0 - "install-dependencies": go: downloading github.com/couchbase/tools-common/errors v1.0.0
Step #0 - "install-dependencies": go: downloading github.com/youmark/pkcs8 v0.0.0-20240726163527-a2c0da244d78
Step #0 - "install-dependencies": go: downloading golang.org/x/crypto v0.42.0
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/compute/metadata v0.9.0
Step #0 - "install-dependencies": go: downloading filippo.io/edwards25519 v1.1.0
Step #0 - "install-dependencies": go: downloading golang.org/x/sys v0.36.0
Step #0 - "install-dependencies": go: downloading go.uber.org/multierr v1.11.0
Step #0 - "install-dependencies": go: downloading github.com/ClickHouse/ch-go v0.68.0
Step #0 - "install-dependencies": go: downloading github.com/andybalholm/brotli v1.2.0
Step #0 - "install-dependencies": go: downloading github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd
Step #0 - "install-dependencies": go: downloading github.com/modern-go/reflect2 v1.0.2
Step #0 - "install-dependencies": go: downloading github.com/inconshreveable/mousetrap v1.1.0
Step #0 - "install-dependencies": go: downloading github.com/spf13/pflag v1.0.9
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/iam v1.5.2
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/longrunning v0.6.7
Step #0 - "install-dependencies": go: downloading github.com/apache/arrow/go/v15 v15.0.2
Step #0 - "install-dependencies": go: downloading golang.org/x/sync v0.17.0
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/alloydb v1.18.0
Step #0 - "install-dependencies": go: downloading golang.org/x/net v0.44.0
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/auth v0.16.5
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/auth/oauth2adapt v0.2.8
Step #0 - "install-dependencies": go: downloading github.com/golang/snappy v1.0.0
Step #0 - "install-dependencies": go: downloading github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed
Step #0 - "install-dependencies": go: downloading gopkg.in/inf.v0 v0.9.1
Step #0 - "install-dependencies": go: downloading github.com/gabriel-vasile/mimetype v1.4.10
Step #0 - "install-dependencies": go: downloading github.com/go-playground/universal-translator v0.18.1
Step #0 - "install-dependencies": go: downloading github.com/leodido/go-urn v1.4.0
Step #0 - "install-dependencies": go: downloading golang.org/x/text v0.29.0
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/contrib/detectors/gcp v1.36.0
Step #0 - "install-dependencies": go: downloading github.com/couchbase/gocbcore/v10 v10.8.1
Step #0 - "install-dependencies": go: downloading github.com/couchbase/gocbcoreps v0.1.4
Step #0 - "install-dependencies": go: downloading github.com/couchbase/goprotostellar v1.0.2
Step #0 - "install-dependencies": go: downloading github.com/couchbaselabs/gocbconnstr/v2 v2.0.0
Step #0 - "install-dependencies": go: downloading go.uber.org/zap v1.27.0
Step #0 - "install-dependencies": go: downloading github.com/jcmturner/dnsutils/v2 v2.0.0
Step #0 - "install-dependencies": go: downloading github.com/jcmturner/gofork v1.7.6
Step #0 - "install-dependencies": go: downloading github.com/jcmturner/goidentity/v6 v6.0.1
Step #0 - "install-dependencies": go: downloading github.com/paulmach/orb v0.11.1
Step #0 - "install-dependencies": go: downloading github.com/shopspring/decimal v1.4.0
Step #0 - "install-dependencies": go: downloading go.yaml.in/yaml/v3 v3.0.4
Step #0 - "install-dependencies": go: downloading golang.org/x/time v0.13.0
Step #0 - "install-dependencies": go: downloading github.com/jackc/puddle/v2 v2.2.2
Step #0 - "install-dependencies": go: downloading github.com/cespare/xxhash/v2 v2.3.0
Step #0 - "install-dependencies": go: downloading github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f
Step #0 - "install-dependencies": go: downloading github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9
Step #0 - "install-dependencies": go: downloading github.com/golang-sql/sqlexp v0.1.0
Step #0 - "install-dependencies": go: downloading github.com/GoogleCloudPlatform/grpc-gcp-go/grpcgcp v1.5.3
Step #0 - "install-dependencies": go: downloading go.opencensus.io v0.24.0
Step #0 - "install-dependencies": go: downloading github.com/go-logr/logr v1.4.3
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/proto/otlp v1.7.0
Step #0 - "install-dependencies": go: downloading github.com/go-faster/city v1.0.1
Step #0 - "install-dependencies": go: downloading github.com/go-faster/errors v0.7.1
Step #0 - "install-dependencies": go: downloading github.com/segmentio/asm v1.2.0
Step #0 - "install-dependencies": go: downloading github.com/pierrec/lz4/v4 v4.1.22
Step #0 - "install-dependencies": go: downloading github.com/go-playground/locales v0.14.1
Step #0 - "install-dependencies": go: downloading github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.29.0
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.62.0
Step #0 - "install-dependencies": go: downloading github.com/grpc-ecosystem/go-grpc-middleware v1.4.0
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.62.0
Step #0 - "install-dependencies": go: downloading github.com/hashicorp/go-uuid v1.0.3
Step #0 - "install-dependencies": go: downloading github.com/jackc/pgpassfile v1.0.0
Step #0 - "install-dependencies": go: downloading github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761
Step #0 - "install-dependencies": go: downloading github.com/gorilla/websocket v1.5.3
Step #0 - "install-dependencies": go: downloading github.com/go-logr/stdr v1.2.2
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/auto/sdk v1.1.0
Step #0 - "install-dependencies": go: downloading github.com/google/s2a-go v0.1.9
Step #0 - "install-dependencies": go: downloading github.com/googleapis/enterprise-certificate-proxy v0.3.6
Step #0 - "install-dependencies": go: downloading github.com/jcmturner/aescts/v2 v2.0.0
Step #0 - "install-dependencies": go: downloading github.com/jcmturner/rpc/v2 v2.0.3
Step #0 - "install-dependencies": go: downloading github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.1
Step #0 - "install-dependencies": go: downloading github.com/envoyproxy/go-control-plane/envoy v1.32.4
Step #0 - "install-dependencies": go: downloading github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8
Step #0 - "install-dependencies": go: downloading github.com/felixge/httpsnoop v1.0.4
Step #0 - "install-dependencies": go: downloading github.com/spiffe/go-spiffe/v2 v2.5.0
Step #0 - "install-dependencies": go: downloading github.com/cncf/xds/go v0.0.0-20250501225837-2ac532fd4443
Step #0 - "install-dependencies": go: downloading github.com/go-jose/go-jose/v4 v4.1.1
Step #0 - "install-dependencies": go: downloading github.com/zeebo/errs v1.4.0
Step #0 - "install-dependencies": go: downloading cel.dev/expr v0.24.0
Step #0 - "install-dependencies": go: downloading github.com/envoyproxy/protoc-gen-validate v1.2.1
Step #0 - "install-dependencies": go: downloading golang.org/x/exp v0.0.0-20250620022241-b7579e27df2b
Step #0 - "install-dependencies": go: downloading golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da
Step #0 - "install-dependencies": go: downloading golang.org/x/tools v0.36.0
Step #0 - "install-dependencies": go: downloading github.com/google/flatbuffers v25.2.10+incompatible
Step #0 - "install-dependencies": go: downloading github.com/xdg-go/scram v1.1.2
Step #0 - "install-dependencies": go: downloading github.com/montanaflynn/stats v0.7.1
Step #0 - "install-dependencies": go: downloading github.com/xdg-go/stringprep v1.0.4
Step #0 - "install-dependencies": go: downloading github.com/goccy/go-json v0.10.5
Step #0 - "install-dependencies": go: downloading github.com/zeebo/xxh3 v1.0.2
Step #0 - "install-dependencies": go: downloading github.com/xdg-go/pbkdf2 v1.0.0
Step #0 - "install-dependencies": go: downloading github.com/klauspost/cpuid/v2 v2.2.11
Step #0 - "install-dependencies": go: downloading github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10
Step #0 - "install-dependencies": go: downloading golang.org/x/mod v0.27.0
Step #0 - "install-dependencies": go: downloading modernc.org/libc v1.66.10
Step #0 - "install-dependencies": go: downloading modernc.org/memory v1.11.0
Step #0 - "install-dependencies": go: downloading github.com/ncruces/go-strftime v0.1.9
Step #0 - "install-dependencies": go: downloading github.com/mattn/go-isatty v0.0.20
Step #0 - "install-dependencies": go: downloading github.com/dustin/go-humanize v1.0.1
Step #0 - "install-dependencies": go: downloading modernc.org/mathutil v1.7.1
Step #0 - "install-dependencies": go: downloading github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec
Finished Step #0 - "install-dependencies"
Starting Step #1 - "compile-test-binary"
Step #1 - "compile-test-binary": Already have image (with digest): golang:1
Step #1 - "compile-test-binary": go: downloading github.com/nakagami/firebirdsql v0.9.15
Step #1 - "compile-test-binary": go: downloading gitlab.com/nyarla/go-crypt v0.0.0-20160106005555-d9a5dc2b789b
Step #1 - "compile-test-binary": go: downloading github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0
Step #1 - "compile-test-binary": go: downloading github.com/nakagami/chacha20 v0.1.0
Step #1 - "compile-test-binary": ? github.com/googleapis/genai-toolbox/tests [no test files]
Finished Step #1 - "compile-test-binary"
Starting Step #9 - "dataform"
Starting Step #10 - "postgres"
Starting Step #16 - "mssql"
Starting Step #11 - "spanner"
Starting Step #30 - "yugabytedb"
Starting Step #20 - "redis"
Starting Step #5 - "alloydb-ai-nl"
Starting Step #3 - "alloydb"
Step #9 - "dataform": Already have image (with digest): golang:1
Starting Step #4 - "alloydb-pg"
Starting Step #18 - "sqlite"
Step #16 - "mssql": Already have image (with digest): golang:1
Starting Step #29 - "trino"
Starting Step #21 - "valkey"
Step #20 - "redis": Already have image (with digest): golang:1
Starting Step #32 - "oracle"
Step #5 - "alloydb-ai-nl": Already have image (with digest): golang:1
Starting Step #6 - "bigtable"
Step #11 - "spanner": Already have image (with digest): golang:1
Starting Step #28 - "clickhouse"
Starting Step #22 - "oceanbase"
Step #10 - "postgres": Already have image (with digest): golang:1
Starting Step #2 - "cloud-sql-pg"
Step #3 - "alloydb": Already have image (with digest): golang:1
Starting Step #12 - "neo4j"
Starting Step #19 - "couchbase"
Starting Step #8 - "dataplex"
Starting Step #27 - "firebird"
Step #32 - "oracle": Already have image (with digest): golang:1
Starting Step #14 - "cloud-sql-mysql"
Starting Step #17 - "http"
Starting Step #7 - "bigquery"
Step #21 - "valkey": Already have image (with digest): golang:1
Starting Step #26 - "tidb"
Step #22 - "oceanbase": Already have image (with digest): golang:1
Starting Step #13 - "cloud-sql-mssql"
Step #19 - "couchbase": Already have image (with digest): golang:1
Step #30 - "yugabytedb": Already have image (with digest): golang:1
Step #18 - "sqlite": Already have image (with digest): golang:1
Starting Step #15 - "mysql"
Step #28 - "clickhouse": Already have image (with digest): golang:1
Step #6 - "bigtable": Already have image (with digest): golang:1
Starting Step #31 - "cassandra"
Step #2 - "cloud-sql-pg": Already have image (with digest): golang:1
Step #17 - "http": Already have image (with digest): golang:1
Step #12 - "neo4j": Already have image (with digest): golang:1
Step #13 - "cloud-sql-mssql": Already have image (with digest): golang:1
Step #14 - "cloud-sql-mysql": Already have image (with digest): golang:1
Step #27 - "firebird": Already have image (with digest): golang:1
Step #8 - "dataplex": Already have image (with digest): golang:1
Starting Step #25 - "cloud-sql"
Step #26 - "tidb": Already have image (with digest): golang:1
Step #15 - "mysql": Already have image (with digest): golang:1
Step #29 - "trino": Already have image (with digest): golang:1
Step #7 - "bigquery": Already have image (with digest): golang:1
Starting Step #24 - "looker"
Step #31 - "cassandra": Already have image (with digest): golang:1
Starting Step #23 - "firestore"
Step #4 - "alloydb-pg": Already have image (with digest): golang:1
Step #25 - "cloud-sql": Already have image (with digest): golang:1
Step #24 - "looker": Already have image (with digest): golang:1
Step #23 - "firestore": Already have image (with digest): golang:1
Step #9 - "dataform": Get:1 http://deb.debian.org/debian trixie InRelease [140 kB]
Step #9 - "dataform": Get:2 http://deb.debian.org/debian trixie-updates InRelease [47.3 kB]
Step #9 - "dataform": Get:3 http://deb.debian.org/debian-security trixie-security InRelease [43.4 kB]
Step #9 - "dataform": Get:4 http://deb.debian.org/debian trixie/main amd64 Packages [9669 kB]
Step #9 - "dataform": Get:5 http://deb.debian.org/debian trixie-updates/main amd64 Packages [5412 B]
Step #9 - "dataform": Get:6 http://deb.debian.org/debian-security trixie-security/main amd64 Packages [61.0 kB]
Step #8 - "dataplex": === RUN TestDataplexToolEndpoints
Step #11 - "spanner": === RUN TestSpannerToolEndpoints
Step #17 - "http": === RUN TestHttpToolEndpoints
Step #9 - "dataform": Fetched 9966 kB in 1s (11.3 MB/s)
Step #3 - "alloydb": === RUN TestAlloyDBToolEndpoints
Step #3 - "alloydb": === RUN TestAlloyDBToolEndpoints/get_my-simple-tool
Step #3 - "alloydb": 2025-10-23T22:01:38.359059236Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-simple-tool/" method: "GET" path: "/api/tool/my-simple-tool/" remoteIP: "127.0.0.1:59398" proto: "HTTP/1.1" requestID: "82b0c2779de4/ZdkKO1oTcK-000001"} httpResponse: {status: 200 bytes: 505 elapsed: 0.450879}
Step #3 - "alloydb": 2025-10-23T22:01:38.361190917Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/mcp" method: "POST" path: "/mcp" remoteIP: "127.0.0.1:59398" proto: "HTTP/1.1" requestID: "82b0c2779de4/ZdkKO1oTcK-000002"} httpResponse: {status: 200 bytes: 196 elapsed: 0.801693}
Step #3 - "alloydb": 2025-10-23T22:01:38.36230667Z INFO Response: 202 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/mcp" method: "POST" path: "/mcp" remoteIP: "127.0.0.1:59398" proto: "HTTP/1.1" requestID: "82b0c2779de4/ZdkKO1oTcK-000003"} httpResponse: {status: 202 bytes: 0 elapsed: 0.269848}
Step #3 - "alloydb": === RUN TestAlloyDBToolEndpoints/MCP_Invoke_my-param-tool
Step #21 - "valkey": === RUN TestValkeyToolEndpoints
Step #17 - "http": === RUN TestHttpToolEndpoints/get_my-simple-tool
Step #21 - "valkey": 2025/10/23 22:01:38 Successfully connected to Valkey
Step #17 - "http": 2025-10-23T22:01:38.380943739Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-simple-tool/" method: "GET" path: "/api/tool/my-simple-tool/" remoteIP: "127.0.0.1:59412" proto: "HTTP/1.1" requestID: "e6703683d0d0/NjVBLt3grM-000001"} httpResponse: {status: 200 bytes: 168 elapsed: 0.568097}
Step #17 - "http": === RUN TestHttpToolEndpoints/invoke_my-simple-tool
Step #17 - "http": 2025-10-23T22:01:38.386289991Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-simple-tool/invoke" method: "POST" path: "/api/tool/my-simple-tool/invoke" remoteIP: "127.0.0.1:59412" proto: "HTTP/1.1" requestID: "e6703683d0d0/NjVBLt3grM-000002"} httpResponse: {status: 200 bytes: 29 elapsed: 1.304356}
Step #17 - "http": === RUN TestHttpToolEndpoints/invoke_my-tool
Step #17 - "http": 2025-10-23T22:01:38.387837382Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-tool/invoke" method: "POST" path: "/api/tool/my-tool/invoke" remoteIP: "127.0.0.1:59412" proto: "HTTP/1.1" requestID: "e6703683d0d0/NjVBLt3grM-000003"} httpResponse: {status: 200 bytes: 73 elapsed: 0.832344}
Step #17 - "http": === RUN TestHttpToolEndpoints/invoke_my-tool-by-id_with_nil_response
Step #17 - "http": 2025-10-23T22:01:38.389242475Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-tool-by-id/invoke" method: "POST" path: "/api/tool/my-tool-by-id/invoke" remoteIP: "127.0.0.1:59412" proto: "HTTP/1.1" requestID: "e6703683d0d0/NjVBLt3grM-000004"} httpResponse: {status: 200 bytes: 40 elapsed: 0.692576}
Step #17 - "http": === RUN TestHttpToolEndpoints/invoke_my-tool-by-name_with_nil_response
Step #17 - "http": 2025-10-23T22:01:38.390584614Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-tool-by-name/invoke" method: "POST" path: "/api/tool/my-tool-by-name/invoke" remoteIP: "127.0.0.1:59412" proto: "HTTP/1.1" requestID: "e6703683d0d0/NjVBLt3grM-000005"} httpResponse: {status: 200 bytes: 18 elapsed: 0.632711}
Step #17 - "http": === RUN TestHttpToolEndpoints/Invoke_my-tool_without_parameters
Step #17 - "http": 2025-10-23T22:01:38.391534486Z INFO Response: 400 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-tool/invoke" method: "POST" path: "/api/tool/my-tool/invoke" remoteIP: "127.0.0.1:59412" proto: "HTTP/1.1" requestID: "e6703683d0d0/NjVBLt3grM-000006"} httpResponse: {status: 400 bytes: 100 elapsed: 0.198893}
Step #17 - "http": === RUN TestHttpToolEndpoints/Invoke_my-tool_with_insufficient_parameters
Step #17 - "http": 2025-10-23T22:01:38.392630878Z INFO Response: 400 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-tool/invoke" method: "POST" path: "/api/tool/my-tool/invoke" remoteIP: "127.0.0.1:59418" proto: "HTTP/1.1" requestID: "e6703683d0d0/NjVBLt3grM-000007"} httpResponse: {status: 400 bytes: 100 elapsed: 0.194753}
Step #17 - "http": === RUN TestHttpToolEndpoints/invoke_my-array-tool
Step #17 - "http": === RUN TestHttpToolEndpoints/Invoke_my-auth-tool_with_auth_token
Step #21 - "valkey": === RUN TestValkeyToolEndpoints/get_my-simple-tool
Step #21 - "valkey": 2025-10-23T22:01:38.408603491Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-simple-tool/" method: "GET" path: "/api/tool/my-simple-tool/" remoteIP: "127.0.0.1:59444" proto: "HTTP/1.1" requestID: "32e7d34a961a/9mJlBVXrsV-000001"} httpResponse: {status: 200 bytes: 168 elapsed: 0.436829}
Step #21 - "valkey": === RUN TestValkeyToolEndpoints/invoke_my-simple-tool
Step #21 - "valkey": 2025-10-23T22:01:38.414086122Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-simple-tool/invoke" method: "POST" path: "/api/tool/my-simple-tool/invoke" remoteIP: "127.0.0.1:59444" proto: "HTTP/1.1" requestID: "32e7d34a961a/9mJlBVXrsV-000002"} httpResponse: {status: 200 bytes: 24 elapsed: 0.810143}
Step #21 - "valkey": === RUN TestValkeyToolEndpoints/invoke_my-tool
Step #21 - "valkey": 2025-10-23T22:01:38.415587571Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-tool/invoke" method: "POST" path: "/api/tool/my-tool/invoke" remoteIP: "127.0.0.1:59444" proto: "HTTP/1.1" requestID: "32e7d34a961a/9mJlBVXrsV-000003"} httpResponse: {status: 200 bytes: 81 elapsed: 0.693066}
Step #21 - "valkey": === RUN TestValkeyToolEndpoints/invoke_my-tool-by-id_with_nil_response
Step #21 - "valkey": 2025-10-23T22:01:38.416986554Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-tool-by-id/invoke" method: "POST" path: "/api/tool/my-tool-by-id/invoke" remoteIP: "127.0.0.1:59444" proto: "HTTP/1.1" requestID: "32e7d34a961a/9mJlBVXrsV-000004"} httpResponse: {status: 200 bytes: 44 elapsed: 0.579449}
Step #21 - "valkey": === RUN TestValkeyToolEndpoints/invoke_my-tool-by-name_with_nil_response
Step #21 - "valkey": 2025-10-23T22:01:38.418315631Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-tool-by-name/invoke" method: "POST" path: "/api/tool/my-tool-by-name/invoke" remoteIP: "127.0.0.1:59444" proto: "HTTP/1.1" requestID: "32e7d34a961a/9mJlBVXrsV-000005"} httpResponse: {status: 200 bytes: 24 elapsed: 0.606740}
Step #21 - "valkey": === RUN TestValkeyToolEndpoints/Invoke_my-tool_without_parameters
Step #21 - "valkey": 2025-10-23T22:01:38.419298816Z INFO Response: 400 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-tool/invoke" method: "POST" path: "/api/tool/my-tool/invoke" remoteIP: "127.0.0.1:59444" proto: "HTTP/1.1" requestID: "32e7d34a961a/9mJlBVXrsV-000006"} httpResponse: {status: 400 bytes: 98 elapsed: 0.236686}
Step #21 - "valkey": === RUN TestValkeyToolEndpoints/Invoke_my-tool_with_insufficient_parameters
Step #21 - "valkey": 2025-10-23T22:01:38.420438891Z INFO Response: 400 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-tool/invoke" method: "POST" path: "/api/tool/my-tool/invoke" remoteIP: "127.0.0.1:59450" proto: "HTTP/1.1" requestID: "32e7d34a961a/9mJlBVXrsV-000007"} httpResponse: {status: 400 bytes: 100 elapsed: 0.224845}
Step #21 - "valkey": === RUN TestValkey
...
[Logs truncated due to log size limitations. For full logs, see https://console.cloud.google.com/logs/viewer?advancedFilter=resource.type%3D%22build%22+AND+resource.labels.build_id%3D%22f20a763d-844d-448d-a568-febaa2b6b0d2%22+AND+resource.labels.build_trigger_id%3D%22785da918-06f1-47bb-860c-fbabc80b5977%22&project=toolbox-testing-438616.]
...
imple-tool/" method: "GET" path: "/api/tool/my-simple-tool/" remoteIP: "127.0.0.1:35774" proto: "HTTP/1.1" requestID: "466523ad4b6b/TcZypMetv8-000001"} httpResponse: {status: 200 bytes: 168 elapsed: 0.423848}
Step #10 - "postgres": === RUN TestPostgres/invoke_my-simple-tool
Step #32 - "oracle": === RUN TestOracleSimpleToolEndpoints
Step #26 - "tidb": --- PASS: TestTiDBToolEndpoints (1.75s)
Step #26 - "tidb": --- PASS: TestTiDBToolEndpoints/get_my-simple-tool (0.00s)
Step #26 - "tidb": --- PASS: TestTiDBToolEndpoints/invoke_my-simple-tool (0.00s)
Step #26 - "tidb": --- PASS: TestTiDBToolEndpoints/invoke_my-tool (0.01s)
Step #26 - "tidb": --- PASS: TestTiDBToolEndpoints/invoke_my-tool-by-id_with_nil_response (0.00s)
Step #26 - "tidb": --- PASS: TestTiDBToolEndpoints/invoke_my-tool-by-name_with_nil_response (0.00s)
Step #26 - "tidb": --- PASS: TestTiDBToolEndpoints/Invoke_my-tool_without_parameters (0.00s)
Step #26 - "tidb": --- PASS: TestTiDBToolEndpoints/Invoke_my-tool_with_insufficient_parameters (0.00s)
Step #26 - "tidb": --- PASS: TestTiDBToolEndpoints/invoke_my-array-tool (0.00s)
Step #26 - "tidb": --- PASS: TestTiDBToolEndpoints/Invoke_my-auth-tool_with_auth_token (0.14s)
Step #26 - "tidb": --- PASS: TestTiDBToolEndpoints/Invoke_my-auth-tool_with_invalid_auth_token (0.00s)
Step #26 - "tidb": --- PASS: TestTiDBToolEndpoints/Invoke_my-auth-tool_without_auth_token (0.00s)
Step #26 - "tidb": --- PASS: TestTiDBToolEndpoints/Invoke_my-auth-required-tool_with_auth_token (0.00s)
Step #26 - "tidb": --- PASS: TestTiDBToolEndpoints/Invoke_my-auth-required-tool_with_invalid_auth_token (0.00s)
Step #26 - "tidb": --- PASS: TestTiDBToolEndpoints/Invoke_my-auth-required-tool_without_auth_token (0.00s)
Step #26 - "tidb": --- PASS: TestTiDBToolEndpoints/Invoke_my-client-auth-tool_with_auth_token (0.00s)
Step #26 - "tidb": --- PASS: TestTiDBToolEndpoints/Invoke_my-client-auth-tool_without_auth_token (0.00s)
Step #26 - "tidb": --- PASS: TestTiDBToolEndpoints/Invoke_my-client-auth-tool_with_invalid_auth_token (0.00s)
Step #26 - "tidb": --- PASS: TestTiDBToolEndpoints/MCP_Invoke_my-tool (0.01s)
Step #26 - "tidb": --- PASS: TestTiDBToolEndpoints/MCP_Invoke_invalid_tool (0.00s)
Step #26 - "tidb": --- PASS: TestTiDBToolEndpoints/MCP_Invoke_my-tool_without_parameters (0.00s)
Step #26 - "tidb": --- PASS: TestTiDBToolEndpoints/MCP_Invoke_my-tool_with_insufficient_parameters (0.00s)
Step #26 - "tidb": --- PASS: TestTiDBToolEndpoints/MCP_Invoke_my-auth-required-tool (0.00s)
Step #26 - "tidb": --- PASS: TestTiDBToolEndpoints/MCP_Invoke_my-auth-required-tool_with_invalid_auth_token (0.00s)
Step #26 - "tidb": --- PASS: TestTiDBToolEndpoints/MCP_Invoke_my-auth-required-tool_without_auth_token (0.00s)
Step #26 - "tidb": --- PASS: TestTiDBToolEndpoints/MCP_Invoke_my-client-auth-tool (0.00s)
Step #26 - "tidb": --- PASS: TestTiDBToolEndpoints/MCP_Invoke_my-client-auth-tool_without_access_token (0.00s)
Step #26 - "tidb": --- PASS: TestTiDBToolEndpoints/MCP_Invoke_my-client-auth-tool_with_invalid_access_token (0.00s)
Step #26 - "tidb": --- PASS: TestTiDBToolEndpoints/MCP_Invoke_my-fail-tool (0.00s)
Step #26 - "tidb": --- PASS: TestTiDBToolEndpoints/invoke_my-exec-sql-tool (0.00s)
Step #26 - "tidb": --- PASS: TestTiDBToolEndpoints/invoke_my-exec-sql-tool_create_table (0.13s)
Step #26 - "tidb": --- PASS: TestTiDBToolEndpoints/invoke_my-exec-sql-tool_select_table (0.00s)
Step #26 - "tidb": --- PASS: TestTiDBToolEndpoints/invoke_my-exec-sql-tool_drop_table (0.31s)
Step #26 - "tidb": --- PASS: TestTiDBToolEndpoints/invoke_my-exec-sql-tool_without_body (0.00s)
Step #26 - "tidb": --- PASS: TestTiDBToolEndpoints/Invoke_my-auth-exec-sql-tool_with_auth_token (0.00s)
Step #26 - "tidb": --- PASS: TestTiDBToolEndpoints/Invoke_my-auth-exec-sql-tool_with_invalid_auth_token (0.00s)
Step #26 - "tidb": --- PASS: TestTiDBToolEndpoints/Invoke_my-auth-exec-sql-tool_without_auth_token (0.00s)
Step #26 - "tidb": --- PASS: TestTiDBToolEndpoints/invoke_create-table-templateParams-tool (0.00s)
Step #26 - "tidb": --- PASS: TestTiDBToolEndpoints/invoke_insert-table-templateParams-tool (0.00s)
Step #26 - "tidb": --- PASS: TestTiDBToolEndpoints/invoke_insert-table-templateParams-tool#01 (0.00s)
Step #26 - "tidb": --- PASS: TestTiDBToolEndpoints/invoke_select-templateParams-tool (0.00s)
Step #26 - "tidb": --- PASS: TestTiDBToolEndpoints/invoke_select-templateParams-combined-tool (0.00s)
Step #26 - "tidb": --- PASS: TestTiDBToolEndpoints/invoke_select-templateParams-combined-tool_with_no_results (0.00s)
Step #26 - "tidb": --- PASS: TestTiDBToolEndpoints/invoke_select-fields-templateParams-tool (0.00s)
Step #26 - "tidb": --- PASS: TestTiDBToolEndpoints/invoke_select-filter-templateParams-combined-tool (0.00s)
Step #26 - "tidb": --- PASS: TestTiDBToolEndpoints/invoke_drop-table-templateParams-tool (0.00s)
Step #26 - "tidb": PASS
Step #26 - "tidb": coverage: 4.6% of statements in ./internal/sources/..., ./internal/tools/...
Step #10 - "postgres": 2025-10-23T22:01:45.01509333Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-simple-tool/invoke" method: "POST" path: "/api/tool/my-simple-tool/invoke" remoteIP: "127.0.0.1:35774" proto: "HTTP/1.1" requestID: "466523ad4b6b/TcZypMetv8-000002"} httpResponse: {status: 200 bytes: 32 elapsed: 47.759157}
Step #10 - "postgres": === RUN TestPostgres/invoke_my-tool
Step #31 - "cassandra": === RUN TestCassandra
Step #22 - "oceanbase": 2025-10-23T22:01:45.041417505Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-exec-sql-tool/invoke" method: "POST" path: "/api/tool/my-exec-sql-tool/invoke" remoteIP: "127.0.0.1:35764" proto: "HTTP/1.1" requestID: "50d51a5f79fc/ppoGM1hqp7-000023"} httpResponse: {status: 200 bytes: 18 elapsed: 129.273148}
Step #22 - "oceanbase": === RUN TestOceanBaseToolEndpoints/invoke_my-exec-sql-tool_select_table
Step #10 - "postgres": 2025-10-23T22:01:45.064631265Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-tool/invoke" method: "POST" path: "/api/tool/my-tool/invoke" remoteIP: "127.0.0.1:35774" proto: "HTTP/1.1" requestID: "466523ad4b6b/TcZypMetv8-000003"} httpResponse: {status: 200 bytes: 73 elapsed: 48.560510}
Step #10 - "postgres": === RUN TestPostgres/invoke_my-tool-by-id_with_nil_response
Step #22 - "oceanbase": 2025-10-23T22:01:45.073389191Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-exec-sql-tool/invoke" method: "POST" path: "/api/tool/my-exec-sql-tool/invoke" remoteIP: "127.0.0.1:35764" proto: "HTTP/1.1" requestID: "50d51a5f79fc/ppoGM1hqp7-000024"} httpResponse: {status: 200 bytes: 18 elapsed: 31.022134}
Step #22 - "oceanbase": === RUN TestOceanBaseToolEndpoints/invoke_my-exec-sql-tool_drop_table
Step #10 - "postgres": 2025-10-23T22:01:45.113259218Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-tool-by-id/invoke" method: "POST" path: "/api/tool/my-tool-by-id/invoke" remoteIP: "127.0.0.1:35774" proto: "HTTP/1.1" requestID: "466523ad4b6b/TcZypMetv8-000004"} httpResponse: {status: 200 bytes: 40 elapsed: 47.797799}
Step #10 - "postgres": === RUN TestPostgres/invoke_my-tool-by-name_with_nil_response
Step #24 - "looker": === RUN TestLooker/get_get_models
Step #24 - "looker": 2025-10-23T22:01:45.129927847Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/get_models/" method: "GET" path: "/api/tool/get_models/" remoteIP: "127.0.0.1:35786" proto: "HTTP/1.1" requestID: "ba0bd04f8ac0/THYtsd2iUW-000001"} httpResponse: {status: 200 bytes: 164 elapsed: 0.368144}
Step #24 - "looker": === RUN TestLooker/get_get_explores
Step #24 - "looker": 2025-10-23T22:01:45.130924873Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/get_explores/" method: "GET" path: "/api/tool/get_explores/" remoteIP: "127.0.0.1:35786" proto: "HTTP/1.1" requestID: "ba0bd04f8ac0/THYtsd2iUW-000002"} httpResponse: {status: 200 bytes: 282 elapsed: 0.113077}
Step #24 - "looker": === RUN TestLooker/get_get_dimensions
Step #24 - "looker": 2025-10-23T22:01:45.131822502Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/get_dimensions/" method: "GET" path: "/api/tool/get_dimensions/" remoteIP: "127.0.0.1:35786" proto: "HTTP/1.1" requestID: "ba0bd04f8ac0/THYtsd2iUW-000003"} httpResponse: {status: 200 bytes: 402 elapsed: 0.118388}
Step #24 - "looker": === RUN TestLooker/get_get_measures
Step #24 - "looker": 2025-10-23T22:01:45.132893772Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/get_measures/" method: "GET" path: "/api/tool/get_measures/" remoteIP: "127.0.0.1:35786" proto: "HTTP/1.1" requestID: "ba0bd04f8ac0/THYtsd2iUW-000004"} httpResponse: {status: 200 bytes: 400 elapsed: 0.117898}
Step #24 - "looker": === RUN TestLooker/get_get_parameters
Step #24 - "looker": 2025-10-23T22:01:45.1337696Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/get_parameters/" method: "GET" path: "/api/tool/get_parameters/" remoteIP: "127.0.0.1:35786" proto: "HTTP/1.1" requestID: "ba0bd04f8ac0/THYtsd2iUW-000005"} httpResponse: {status: 200 bytes: 402 elapsed: 0.091236}
Step #24 - "looker": === RUN TestLooker/get_get_filters
Step #24 - "looker": 2025-10-23T22:01:45.13467294Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/get_filters/" method: "GET" path: "/api/tool/get_filters/" remoteIP: "127.0.0.1:35786" proto: "HTTP/1.1" requestID: "ba0bd04f8ac0/THYtsd2iUW-000006"} httpResponse: {status: 200 bytes: 399 elapsed: 0.093636}
Step #24 - "looker": === RUN TestLooker/get_query
Step #24 - "looker": 2025-10-23T22:01:45.135642524Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/query/" method: "GET" path: "/api/tool/query/" remoteIP: "127.0.0.1:35786" proto: "HTTP/1.1" requestID: "ba0bd04f8ac0/THYtsd2iUW-000007"} httpResponse: {status: 200 bytes: 1493 elapsed: 0.198163}
Step #24 - "looker": === RUN TestLooker/get_query_sql
Step #24 - "looker": 2025-10-23T22:01:45.136889235Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/query_sql/" method: "GET" path: "/api/tool/query_sql/" remoteIP: "127.0.0.1:35786" proto: "HTTP/1.1" requestID: "ba0bd04f8ac0/THYtsd2iUW-000008"} httpResponse: {status: 200 bytes: 1497 elapsed: 0.206403}
Step #24 - "looker": === RUN TestLooker/get_query_url
Step #24 - "looker": 2025-10-23T22:01:45.13802343Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/query_url/" method: "GET" path: "/api/tool/query_url/" remoteIP: "127.0.0.1:35786" proto: "HTTP/1.1" requestID: "ba0bd04f8ac0/THYtsd2iUW-000009"} httpResponse: {status: 200 bytes: 1652 elapsed: 0.158771}
Step #24 - "looker": === RUN TestLooker/get_get_looks
Step #24 - "looker": 2025-10-23T22:01:45.139194958Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/get_looks/" method: "GET" path: "/api/tool/get_looks/" remoteIP: "127.0.0.1:35786" proto: "HTTP/1.1" requestID: "ba0bd04f8ac0/THYtsd2iUW-000010"} httpResponse: {status: 200 bytes: 645 elapsed: 0.134899}
Step #24 - "looker": === RUN TestLooker/get_get_dashboards
Step #24 - "looker": 2025-10-23T22:01:45.140310581Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/get_dashboards/" method: "GET" path: "/api/tool/get_dashboards/" remoteIP: "127.0.0.1:35786" proto: "HTTP/1.1" requestID: "ba0bd04f8ac0/THYtsd2iUW-000011"} httpResponse: {status: 200 bytes: 670 elapsed: 0.098456}
Step #24 - "looker": === RUN TestLooker/get_conversational_analytics
Step #24 - "looker": 2025-10-23T22:01:45.141384962Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/conversational_analytics/" method: "GET" path: "/api/tool/conversational_analytics/" remoteIP: "127.0.0.1:35786" proto: "HTTP/1.1" requestID: "ba0bd04f8ac0/THYtsd2iUW-000012"} httpResponse: {status: 200 bytes: 793 elapsed: 0.111538}
Step #24 - "looker": === RUN TestLooker/get_health_pulse
Step #24 - "looker": 2025-10-23T22:01:45.142387878Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/health_pulse/" method: "GET" path: "/api/tool/health_pulse/" remoteIP: "127.0.0.1:35786" proto: "HTTP/1.1" requestID: "ba0bd04f8ac0/THYtsd2iUW-000013"} httpResponse: {status: 200 bytes: 487 elapsed: 0.088295}
Step #24 - "looker": === RUN TestLooker/get_health_analyze
Step #24 - "looker": 2025-10-23T22:01:45.143297848Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/health_analyze/" method: "GET" path: "/api/tool/health_analyze/" remoteIP: "127.0.0.1:35786" proto: "HTTP/1.1" requestID: "ba0bd04f8ac0/THYtsd2iUW-000014"} httpResponse: {status: 200 bytes: 1006 elapsed: 0.120728}
Step #24 - "looker": === RUN TestLooker/get_health_vacuum
Step #24 - "looker": 2025-10-23T22:01:45.14423445Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/health_vacuum/" method: "GET" path: "/api/tool/health_vacuum/" remoteIP: "127.0.0.1:35786" proto: "HTTP/1.1" requestID: "ba0bd04f8ac0/THYtsd2iUW-000015"} httpResponse: {status: 200 bytes: 970 elapsed: 0.111548}
Step #24 - "looker": === RUN TestLooker/get_dev_mode
Step #24 - "looker": 2025-10-23T22:01:45.145433129Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/dev_mode/" method: "GET" path: "/api/tool/dev_mode/" remoteIP: "127.0.0.1:35786" proto: "HTTP/1.1" requestID: "ba0bd04f8ac0/THYtsd2iUW-000016"} httpResponse: {status: 200 bytes: 272 elapsed: 0.089446}
Step #24 - "looker": === RUN TestLooker/get_get_projects
Step #24 - "looker": 2025-10-23T22:01:45.146271674Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/get_projects/" method: "GET" path: "/api/tool/get_projects/" remoteIP: "127.0.0.1:35786" proto: "HTTP/1.1" requestID: "ba0bd04f8ac0/THYtsd2iUW-000017"} httpResponse: {status: 200 bytes: 166 elapsed: 0.089606}
Step #24 - "looker": === RUN TestLooker/get_get_project_files
Step #24 - "looker": 2025-10-23T22:01:45.147094668Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/get_project_files/" method: "GET" path: "/api/tool/get_project_files/" remoteIP: "127.0.0.1:35786" proto: "HTTP/1.1" requestID: "ba0bd04f8ac0/THYtsd2iUW-000018"} httpResponse: {status: 200 bytes: 300 elapsed: 0.089726}
Step #24 - "looker": === RUN TestLooker/get_get_project_file
Step #24 - "looker": 2025-10-23T22:01:45.14787749Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/get_project_file/" method: "GET" path: "/api/tool/get_project_file/" remoteIP: "127.0.0.1:35786" proto: "HTTP/1.1" requestID: "ba0bd04f8ac0/THYtsd2iUW-000019"} httpResponse: {status: 200 bytes: 425 elapsed: 0.097176}
Step #24 - "looker": === RUN TestLooker/get_create_project_file
Step #24 - "looker": 2025-10-23T22:01:45.148701074Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/create_project_file/" method: "GET" path: "/api/tool/create_project_file/" remoteIP: "127.0.0.1:35786" proto: "HTTP/1.1" requestID: "ba0bd04f8ac0/THYtsd2iUW-000020"} httpResponse: {status: 200 bytes: 541 elapsed: 0.096957}
Step #24 - "looker": === RUN TestLooker/get_update_project_file
Step #24 - "looker": 2025-10-23T22:01:45.149521828Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/update_project_file/" method: "GET" path: "/api/tool/update_project_file/" remoteIP: "127.0.0.1:35786" proto: "HTTP/1.1" requestID: "ba0bd04f8ac0/THYtsd2iUW-000021"} httpResponse: {status: 200 bytes: 541 elapsed: 0.093246}
Step #24 - "looker": === RUN TestLooker/get_delete_project_file
Step #24 - "looker": 2025-10-23T22:01:45.150319791Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/delete_project_file/" method: "GET" path: "/api/tool/delete_project_file/" remoteIP: "127.0.0.1:35786" proto: "HTTP/1.1" requestID: "ba0bd04f8ac0/THYtsd2iUW-000022"} httpResponse: {status: 200 bytes: 428 elapsed: 0.087856}
Step #24 - "looker": === RUN TestLooker/invoke_get_models
Step #10 - "postgres": 2025-10-23T22:01:45.161725072Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-tool-by-name/invoke" method: "POST" path: "/api/tool/my-tool-by-name/invoke" remoteIP: "127.0.0.1:35774" proto: "HTTP/1.1" requestID: "466523ad4b6b/TcZypMetv8-000005"} httpResponse: {status: 200 bytes: 18 elapsed: 47.565774}
Step #10 - "postgres": === RUN TestPostgres/Invoke_my-tool_without_parameters
Step #10 - "postgres": 2025-10-23T22:01:45.162868527Z INFO Response: 400 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-tool/invoke" method: "POST" path: "/api/tool/my-tool/invoke" remoteIP: "127.0.0.1:35774" proto: "HTTP/1.1" requestID: "466523ad4b6b/TcZypMetv8-000006"} httpResponse: {status: 400 bytes: 98 elapsed: 0.266678}
Step #10 - "postgres": === RUN TestPostgres/Invoke_my-tool_with_insufficient_parameters
Step #10 - "postgres": 2025-10-23T22:01:45.164179464Z INFO Response: 400 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-tool/invoke" method: "POST" path: "/api/tool/my-tool/invoke" remoteIP: "127.0.0.1:35794" proto: "HTTP/1.1" requestID: "466523ad4b6b/TcZypMetv8-000007"} httpResponse: {status: 400 bytes: 100 elapsed: 0.294879}
Step #10 - "postgres": === RUN TestPostgres/invoke_my-array-tool
Step #5 - "alloydb-ai-nl": Calculating coverage for AlloyDB AI NL...
Step #22 - "oceanbase": 2025-10-23T22:01:45.210872951Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-exec-sql-tool/invoke" method: "POST" path: "/api/tool/my-exec-sql-tool/invoke" remoteIP: "127.0.0.1:35764" proto: "HTTP/1.1" requestID: "50d51a5f79fc/ppoGM1hqp7-000025"} httpResponse: {status: 200 bytes: 18 elapsed: 136.581810}
Step #22 - "oceanbase": === RUN TestOceanBaseToolEndpoints/invoke_my-exec-sql-tool_without_body
Step #22 - "oceanbase": 2025-10-23T22:01:45.211889638Z INFO Response: 400 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-exec-sql-tool/invoke" method: "POST" path: "/api/tool/my-exec-sql-tool/invoke" remoteIP: "127.0.0.1:35764" proto: "HTTP/1.1" requestID: "50d51a5f79fc/ppoGM1hqp7-000026"} httpResponse: {status: 400 bytes: 99 elapsed: 0.211284}
Step #22 - "oceanbase": === RUN TestOceanBaseToolEndpoints/Invoke_my-auth-exec-sql-tool_with_auth_token
Step #10 - "postgres": 2025-10-23T22:01:45.213268059Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-array-tool/invoke" method: "POST" path: "/api/tool/my-array-tool/invoke" remoteIP: "127.0.0.1:35804" proto: "HTTP/1.1" requestID: "466523ad4b6b/TcZypMetv8-000008"} httpResponse: {status: 200 bytes: 73 elapsed: 48.133202}
Step #10 - "postgres": === RUN TestPostgres/Invoke_my-auth-tool_with_auth_token
Step #22 - "oceanbase": 2025-10-23T22:01:45.215395879Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-auth-exec-sql-tool/invoke" method: "POST" path: "/api/tool/my-auth-exec-sql-tool/invoke" remoteIP: "127.0.0.1:35814" proto: "HTTP/1.1" requestID: "50d51a5f79fc/ppoGM1hqp7-000027"} httpResponse: {status: 200 bytes: 25 elapsed: 2.404919}
Step #22 - "oceanbase": === RUN TestOceanBaseToolEndpoints/Invoke_my-auth-exec-sql-tool_with_invalid_auth_token
Step #22 - "oceanbase": 2025-10-23T22:01:45.216401905Z INFO Response: 401 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-auth-exec-sql-tool/invoke" method: "POST" path: "/api/tool/my-auth-exec-sql-tool/invoke" remoteIP: "127.0.0.1:35814" proto: "HTTP/1.1" requestID: "50d51a5f79fc/ppoGM1hqp7-000028"} httpResponse: {status: 401 bytes: 119 elapsed: 0.146160}
Step #22 - "oceanbase": === RUN TestOceanBaseToolEndpoints/Invoke_my-auth-exec-sql-tool_without_auth_token
Step #22 - "oceanbase": 2025-10-23T22:01:45.217568282Z INFO Response: 401 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-auth-exec-sql-tool/invoke" method: "POST" path: "/api/tool/my-auth-exec-sql-tool/invoke" remoteIP: "127.0.0.1:35828" proto: "HTTP/1.1" requestID: "50d51a5f79fc/ppoGM1hqp7-000029"} httpResponse: {status: 401 bytes: 119 elapsed: 0.126639}
Step #22 - "oceanbase": === RUN TestOceanBaseToolEndpoints/invoke_create-table-templateParams-tool
Step #22 - "oceanbase": === RUN TestOceanBaseToolEndpoints/invoke_insert-table-templateParams-tool
Step #22 - "oceanbase": === RUN TestOceanBaseToolEndpoints/invoke_insert-table-templateParams-tool#01
Step #22 - "oceanbase": === RUN TestOceanBaseToolEndpoints/invoke_select-templateParams-tool
Step #22 - "oceanbase": === RUN TestOceanBaseToolEndpoints/invoke_select-templateParams-combined-tool
Step #22 - "oceanbase": === RUN TestOceanBaseToolEndpoints/invoke_select-templateParams-combined-tool_with_no_results
Step #22 - "oceanbase": === RUN TestOceanBaseToolEndpoints/invoke_select-fields-templateParams-tool
Step #22 - "oceanbase": === RUN TestOceanBaseToolEndpoints/invoke_select-filter-templateParams-combined-tool
Step #22 - "oceanbase": === RUN TestOceanBaseToolEndpoints/invoke_drop-table-templateParams-tool
Step #28 - "clickhouse": Calculating coverage for ClickHouse...
Step #5 - "alloydb-ai-nl": AlloyDB AI NL total coverage: 90.0%
Step #5 - "alloydb-ai-nl": Coverage for AlloyDB AI NL is sufficient.
Step #22 - "oceanbase": --- PASS: TestOceanBaseToolEndpoints (1.34s)
Step #22 - "oceanbase": --- PASS: TestOceanBaseToolEndpoints/get_my-simple-tool (0.00s)
Step #22 - "oceanbase": --- PASS: TestOceanBaseToolEndpoints/invoke_my-simple-tool (0.00s)
Step #22 - "oceanbase": --- PASS: TestOceanBaseToolEndpoints/invoke_my-tool (0.01s)
Step #22 - "oceanbase": --- PASS: TestOceanBaseToolEndpoints/invoke_my-tool-by-id_with_nil_response (0.01s)
Step #22 - "oceanbase": --- PASS: TestOceanBaseToolEndpoints/invoke_my-tool-by-name_with_nil_response (0.01s)
Step #22 - "oceanbase": --- PASS: TestOceanBaseToolEndpoints/Invoke_my-tool_without_parameters (0.00s)
Step #22 - "oceanbase": --- PASS: TestOceanBaseToolEndpoints/Invoke_my-tool_with_insufficient_parameters (0.00s)
Step #22 - "oceanbase": --- PASS: TestOceanBaseToolEndpoints/invoke_my-array-tool (0.00s)
Step #22 - "oceanbase": --- PASS: TestOceanBaseToolEndpoints/Invoke_my-auth-tool_with_auth_token (0.14s)
Step #22 - "oceanbase": --- PASS: TestOceanBaseToolEndpoints/Invoke_my-auth-tool_with_invalid_auth_token (0.00s)
Step #22 - "oceanbase": --- PASS: TestOceanBaseToolEndpoints/Invoke_my-auth-tool_without_auth_token (0.00s)
Step #22 - "oceanbase": --- PASS: TestOceanBaseToolEndpoints/Invoke_my-auth-required-tool_with_auth_token (0.00s)
Step #22 - "oceanbase": --- PASS: TestOceanBaseToolEndpoints/Invoke_my-auth-required-tool_with_invalid_auth_token (0.00s)
Step #22 - "oceanbase": --- PASS: TestOceanBaseToolEndpoints/Invoke_my-auth-required-tool_without_auth_token (0.00s)
Step #22 - "oceanbase": --- PASS: TestOceanBaseToolEndpoints/Invoke_my-client-auth-tool_with_auth_token (0.00s)
Step #22 - "oceanbase": --- PASS: TestOceanBaseToolEndpoints/Invoke_my-client-auth-tool_without_auth_token (0.00s)
Step #22 - "oceanbase": --- PASS: TestOceanBaseToolEndpoints/Invoke_my-client-auth-tool_with_invalid_auth_token (0.00s)
Step #22 - "oceanbase": --- PASS: TestOceanBaseToolEndpoints/MCP_Invoke_my-tool (0.00s)
Step #22 - "oceanbase": --- PASS: TestOceanBaseToolEndpoints/MCP_Invoke_invalid_tool (0.00s)
Step #22 - "oceanbase": --- PASS: TestOceanBaseToolEndpoints/MCP_Invoke_my-tool_without_parameters (0.00s)
Step #22 - "oceanbase": --- PASS: TestOceanBaseToolEndpoints/MCP_Invoke_my-tool_with_insufficient_parameters (0.00s)
Step #22 - "oceanbase": --- PASS: TestOceanBaseToolEndpoints/MCP_Invoke_my-auth-required-tool (0.00s)
Step #22 - "oceanbase": --- PASS: TestOceanBaseToolEndpoints/MCP_Invoke_my-auth-required-tool_with_invalid_auth_token (0.00s)
Step #22 - "oceanbase": --- PASS: TestOceanBaseToolEndpoints/MCP_Invoke_my-auth-required-tool_without_auth_token (0.00s)
Step #22 - "oceanbase": --- PASS: TestOceanBaseToolEndpoints/MCP_Invoke_my-client-auth-tool (0.00s)
Step #22 - "oceanbase": --- PASS: TestOceanBaseToolEndpoints/MCP_Invoke_my-client-auth-tool_without_access_token (0.00s)
Step #22 - "oceanbase": --- PASS: TestOceanBaseToolEndpoints/MCP_Invoke_my-client-auth-tool_with_invalid_access_token (0.00s)
Step #22 - "oceanbase": --- PASS: TestOceanBaseToolEndpoints/MCP_Invoke_my-fail-tool (0.00s)
Step #22 - "oceanbase": --- PASS: TestOceanBaseToolEndpoints/invoke_my-exec-sql-tool (0.00s)
Step #22 - "oceanbase": --- PASS: TestOceanBaseToolEndpoints/invoke_my-exec-sql-tool_create_table (0.13s)
Step #22 - "oceanbase": --- PASS: TestOceanBaseToolEndpoints/invoke_my-exec-sql-tool_select_table (0.03s)
Step #22 - "oceanbase": --- PASS: TestOceanBaseToolEndpoints/invoke_my-exec-sql-tool_drop_table (0.14s)
Step #22 - "oceanbase": --- PASS: TestOceanBaseToolEndpoints/invoke_my-exec-sql-tool_without_body (0.00s)
Step #22 - "oceanbase": --- PASS: TestOceanBaseToolEndpoints/Invoke_my-auth-exec-sql-tool_with_auth_token (0.00s)
Step #22 - "oceanbase": --- PASS: TestOceanBaseToolEndpoints/Invoke_my-auth-exec-sql-tool_with_invalid_auth_token (0.00s)
Step #22 - "oceanbase": --- PASS: TestOceanBaseToolEndpoints/Invoke_my-auth-exec-sql-tool_without_auth_token (0.00s)
Step #22 - "oceanbase": --- PASS: TestOceanBaseToolEndpoints/invoke_create-table-templateParams-tool (0.00s)
Step #22 - "oceanbase": --- PASS: TestOceanBaseToolEndpoints/invoke_insert-table-templateParams-tool (0.00s)
Step #22 - "oceanbase": --- PASS: TestOceanBaseToolEndpoints/invoke_insert-table-templateParams-tool#01 (0.00s)
Step #22 - "oceanbase": --- PASS: TestOceanBaseToolEndpoints/invoke_select-templateParams-tool (0.00s)
Step #22 - "oceanbase": --- PASS: TestOceanBaseToolEndpoints/invoke_select-templateParams-combined-tool (0.00s)
Step #22 - "oceanbase": --- PASS: TestOceanBaseToolEndpoints/invoke_select-templateParams-combined-tool_with_no_results (0.00s)
Step #22 - "oceanbase": --- PASS: TestOceanBaseToolEndpoints/invoke_select-fields-templateParams-tool (0.00s)
Step #22 - "oceanbase": --- PASS: TestOceanBaseToolEndpoints/invoke_select-filter-templateParams-combined-tool (0.00s)
Step #22 - "oceanbase": --- PASS: TestOceanBaseToolEndpoints/invoke_drop-table-templateParams-tool (0.00s)
Step #22 - "oceanbase": PASS
Step #10 - "postgres": 2025-10-23T22:01:45.399033009Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-auth-tool/invoke" method: "POST" path: "/api/tool/my-auth-tool/invoke" remoteIP: "127.0.0.1:35804" proto: "HTTP/1.1" requestID: "466523ad4b6b/TcZypMetv8-000009"} httpResponse: {status: 200 bytes: 36 elapsed: 184.764055}
Step #10 - "postgres": === RUN TestPostgres/Invoke_my-auth-tool_with_invalid_auth_token
Step #10 - "postgres": 2025-10-23T22:01:45.400437551Z INFO Response: 401 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-auth-tool/invoke" method: "POST" path: "/api/tool/my-auth-tool/invoke" remoteIP: "127.0.0.1:35804" proto: "HTTP/1.1" requestID: "466523ad4b6b/TcZypMetv8-000010"} httpResponse: {status: 401 bytes: 140 elapsed: 0.284739}
Step #10 - "postgres": === RUN TestPostgres/Invoke_my-auth-tool_without_auth_token
Step #10 - "postgres": 2025-10-23T22:01:45.402027926Z INFO Response: 401 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-auth-tool/invoke" method: "POST" path: "/api/tool/my-auth-tool/invoke" remoteIP: "127.0.0.1:35836" proto: "HTTP/1.1" requestID: "466523ad4b6b/TcZypMetv8-000011"} httpResponse: {status: 401 bytes: 140 elapsed: 0.276408}
Step #10 - "postgres": === RUN TestPostgres/Invoke_my-auth-required-tool_with_auth_token
Step #22 - "oceanbase": coverage: 4.6% of statements in ./internal/sources/..., ./internal/tools/...
Step #10 - "postgres": 2025-10-23T22:01:45.427449291Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-auth-required-tool/invoke" method: "POST" path: "/api/tool/my-auth-required-tool/invoke" remoteIP: "127.0.0.1:35838" proto: "HTTP/1.1" requestID: "466523ad4b6b/TcZypMetv8-000012"} httpResponse: {status: 200 bytes: 32 elapsed: 24.080397}
Step #10 - "postgres": === RUN TestPostgres/Invoke_my-auth-required-tool_with_invalid_auth_token
Step #10 - "postgres": 2025-10-23T22:01:45.428579726Z INFO Response: 401 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-auth-required-tool/invoke" method: "POST" path: "/api/tool/my-auth-required-tool/invoke" remoteIP: "127.0.0.1:35838" proto: "HTTP/1.1" requestID: "466523ad4b6b/TcZypMetv8-000013"} httpResponse: {status: 401 bytes: 119 elapsed: 0.139379}
Step #10 - "postgres": === RUN TestPostgres/Invoke_my-auth-required-tool_without_auth_token
Step #10 - "postgres": 2025-10-23T22:01:45.430225144Z INFO Response: 401 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-auth-tool/invoke" method: "POST" path: "/api/tool/my-auth-tool/invoke" remoteIP: "127.0.0.1:35848" proto: "HTTP/1.1" requestID: "466523ad4b6b/TcZypMetv8-000014"} httpResponse: {status: 401 bytes: 140 elapsed: 0.315100}
Step #10 - "postgres": === RUN TestPostgres/Invoke_my-client-auth-tool_with_auth_token
Step #10 - "postgres": === RUN TestPostgres/Invoke_my-client-auth-tool_without_auth_token
Step #10 - "postgres": === RUN TestPostgres/Invoke_my-client-auth-tool_with_invalid_auth_token
Step #10 - "postgres": 2025-10-23T22:01:45.432273719Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/mcp" method: "POST" path: "/mcp" remoteIP: "127.0.0.1:35860" proto: "HTTP/1.1" requestID: "466523ad4b6b/TcZypMetv8-000015"} httpResponse: {status: 200 bytes: 196 elapsed: 0.738968}
Step #10 - "postgres": 2025-10-23T22:01:45.433244643Z INFO Response: 202 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/mcp" method: "POST" path: "/mcp" remoteIP: "127.0.0.1:35860" proto: "HTTP/1.1" requestID: "466523ad4b6b/TcZypMetv8-000016"} httpResponse: {status: 202 bytes: 0 elapsed: 0.202423}
Loading