test(bigquery): update and re-enable a streaming payload limit test (#3749)
BigQuery updated the streaming limits, breaking this test. Those
limits are now consistent once again, so we re-enable the test in
accordance with new simplified limits.
diff --git a/bigquery/integration_test.go b/bigquery/integration_test.go
index d1c38c8..8aadccc 100644
--- a/bigquery/integration_test.go
+++ b/bigquery/integration_test.go
@@ -1080,7 +1080,10 @@
}
func TestIntegration_InsertErrors(t *testing.T) {
- t.Skip("Skipping as limits are inconsistent: https://github.com/googleapis/google-cloud-go/issues/3612")
+ // This test serves to verify streaming behavior in the face of oversized data.
+ // BigQuery will reject insertAll payloads that exceed a defined limit (10MB).
+ // Additionally, if a payload vastly exceeds this limit, the request is rejected
+ // by the intermediate architecture.
if client == nil {
t.Skip("Integration tests skipped")
}
@@ -1091,45 +1094,31 @@
ins := table.Inserter()
var saverRows []*ValuesSaver
- // badSaver represents an excessively sized (>5Mb) row message for insertion.
+ // badSaver represents an excessively sized (>10MB) row message for insertion.
badSaver := &ValuesSaver{
Schema: schema,
InsertID: NoDedupeID,
- Row: []Value{strings.Repeat("X", 5242881), []Value{int64(1)}, []Value{true}},
+ Row: []Value{strings.Repeat("X", 10485760), []Value{int64(1)}, []Value{true}},
}
- // Case 1: A single oversized row.
saverRows = append(saverRows, badSaver)
err := ins.Put(ctx, saverRows)
if err == nil {
t.Errorf("Wanted row size error, got successful insert.")
}
- if _, ok := err.(PutMultiError); !ok {
- t.Errorf("Wanted PutMultiError, but wasn't: %v", err)
- }
- got := putError(err)
- want := "Maximum allowed row size exceeded"
- if !strings.Contains(got, want) {
- t.Errorf("Error didn't contain expected substring (%s): %s", want, got)
- }
- // Case 2: The overall request size > 10MB)
- // 2x 5MB rows
- saverRows = append(saverRows, badSaver)
- err = ins.Put(ctx, saverRows)
- if err == nil {
- t.Errorf("Wanted structured size error, got successful insert.")
- }
e, ok := err.(*googleapi.Error)
if !ok {
t.Errorf("Wanted googleapi.Error, got: %v", err)
}
- want = "Request payload size exceeds the limit"
+ want := "Request payload size exceeds the limit"
if !strings.Contains(e.Message, want) {
t.Errorf("Error didn't contain expected message (%s): %s", want, e.Message)
}
- // Case 3: Very Large Request
- // Request so large it gets rejected by an intermediate (4x 5MB rows)
- saverRows = append(saverRows, saverRows...)
+ // Case 2: Very Large Request
+ // Request so large it gets rejected by intermediate infra (3x 10MB rows)
+ saverRows = append(saverRows, badSaver)
+ saverRows = append(saverRows, badSaver)
+
err = ins.Put(ctx, saverRows)
if err == nil {
t.Errorf("Wanted error, got successful insert.")