Skip to content

Commit 45d1f43

Browse files
committed
tests
1 parent aba0d24 commit 45d1f43

File tree

8 files changed

+430
-376
lines changed

8 files changed

+430
-376
lines changed

tests/connection_test.go

Lines changed: 0 additions & 110 deletions
Original file line numberDiff line numberDiff line change
@@ -7,31 +7,25 @@ import (
77
"context"
88
"crypto/tls"
99
"fmt"
10-
"net/url"
1110
"os"
1211
"testing"
1312
"time"
1413

1514
"github.com/ydb-platform/ydb-go-genproto/Ydb_Discovery_V1"
1615
"github.com/ydb-platform/ydb-go-genproto/Ydb_Export_V1"
17-
"github.com/ydb-platform/ydb-go-genproto/Ydb_Monitoring_V1"
1816
"github.com/ydb-platform/ydb-go-genproto/Ydb_Scripting_V1"
1917
"github.com/ydb-platform/ydb-go-genproto/protos/Ydb"
2018
"github.com/ydb-platform/ydb-go-genproto/protos/Ydb_Discovery"
2119
"github.com/ydb-platform/ydb-go-genproto/protos/Ydb_Export"
22-
"github.com/ydb-platform/ydb-go-genproto/protos/Ydb_Monitoring"
2320
"github.com/ydb-platform/ydb-go-genproto/protos/Ydb_Operations"
2421
"github.com/ydb-platform/ydb-go-genproto/protos/Ydb_Scripting"
2522
"google.golang.org/grpc"
26-
grpcCredentials "google.golang.org/grpc/credentials"
27-
"google.golang.org/grpc/credentials/insecure"
2823
"google.golang.org/grpc/metadata"
2924
"google.golang.org/protobuf/proto"
3025
"google.golang.org/protobuf/types/known/durationpb"
3126

3227
"github.com/ydb-platform/ydb-go-sdk/v3"
3328
"github.com/ydb-platform/ydb-go-sdk/v3/config"
34-
"github.com/ydb-platform/ydb-go-sdk/v3/credentials"
3529
"github.com/ydb-platform/ydb-go-sdk/v3/internal/meta"
3630
"github.com/ydb-platform/ydb-go-sdk/v3/log"
3731
"github.com/ydb-platform/ydb-go-sdk/v3/retry"
@@ -320,107 +314,3 @@ func TestConnection(t *testing.T) {
320314
}
321315
})
322316
}
323-
324-
func TestStaticCredentials(t *testing.T) {
325-
t.Skip("wait for newest cr.yandex/yc/yandex-docker-local-ydb:latest was published")
326-
327-
ctx, cancel := context.WithTimeout(context.Background(), time.Second*10)
328-
defer cancel()
329-
330-
var dsn string
331-
if v, has := os.LookupEnv("YDB_CONNECTION_STRING"); !has {
332-
t.Fatal("env YDB_CONNECTION_STRING required")
333-
} else {
334-
dsn = v
335-
}
336-
337-
url, err := url.Parse(dsn)
338-
if err != nil {
339-
t.Fatal(err)
340-
}
341-
342-
staticCredentials := credentials.NewStaticCredentials("root", "", url.Host, func() grpc.DialOption {
343-
if url.Scheme == "grpcs" {
344-
transportCredentials, transportCredentialsErr := grpcCredentials.NewClientTLSFromFile(
345-
os.Getenv("YDB_SSL_ROOT_CERTIFICATES_FILE"), url.Hostname(),
346-
)
347-
if err != nil {
348-
t.Fatalf("cannot create transport credentials: %v", transportCredentialsErr)
349-
}
350-
return grpc.WithTransportCredentials(transportCredentials)
351-
}
352-
return grpc.WithTransportCredentials(insecure.NewCredentials())
353-
}())
354-
355-
token, err := staticCredentials.Token(ctx)
356-
if err != nil {
357-
t.Fatalf("get token failed: %v", err)
358-
} else {
359-
fmt.Printf("token: %s\n", token)
360-
}
361-
362-
db, err := ydb.Open(
363-
ctx,
364-
"", // corner case for check replacement of endpoint+database+secure
365-
ydb.WithConnectionString(os.Getenv("YDB_CONNECTION_STRING")),
366-
ydb.WithCredentials(staticCredentials),
367-
)
368-
if err != nil {
369-
t.Fatal(err)
370-
}
371-
defer func() {
372-
// cleanup connection
373-
if e := db.Close(ctx); e != nil {
374-
t.Fatalf("close failed: %+v", e)
375-
}
376-
}()
377-
_, err = db.Discovery().WhoAmI(ctx)
378-
if err != nil {
379-
t.Fatal(err)
380-
}
381-
}
382-
383-
func TestMonitoring(t *testing.T) {
384-
t.Skip("wait for newest cr.yandex/yc/yandex-docker-local-ydb:latest was published")
385-
386-
ctx, cancel := context.WithTimeout(context.Background(), time.Second*10)
387-
defer cancel()
388-
389-
db, err := ydb.Open(
390-
ctx,
391-
"", // corner case for check replacement of endpoint+database+secure
392-
ydb.WithConnectionString(os.Getenv("YDB_CONNECTION_STRING")),
393-
)
394-
if err != nil {
395-
t.Fatal(err)
396-
}
397-
defer func() {
398-
// cleanup connection
399-
if e := db.Close(ctx); e != nil {
400-
t.Fatalf("close failed: %+v", e)
401-
}
402-
}()
403-
t.Run("monitoring.SelfCheck", func(t *testing.T) {
404-
if err = retry.Retry(ctx, func(ctx context.Context) (err error) {
405-
client := Ydb_Monitoring_V1.NewMonitoringServiceClient(ydb.GRPCConn(db))
406-
response, err := client.SelfCheck(ctx, &Ydb_Monitoring.SelfCheckRequest{
407-
OperationParams: nil,
408-
ReturnVerboseStatus: false,
409-
MinimumStatus: 0,
410-
MaximumLevel: 0,
411-
})
412-
if err != nil {
413-
return err
414-
}
415-
var result Ydb_Monitoring.SelfCheckResult
416-
err = response.Operation.Result.UnmarshalTo(&result)
417-
if err != nil {
418-
return err
419-
}
420-
fmt.Printf("%+v\n", &result)
421-
return nil
422-
}, retry.WithIdempotent(true)); err != nil {
423-
t.Fatalf("Execute failed: %v", err)
424-
}
425-
})
426-
}
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
package tests
2+
3+
import (
4+
"context"
5+
"database/sql"
6+
"errors"
7+
"math/rand"
8+
"os"
9+
"testing"
10+
"time"
11+
12+
"github.com/ydb-platform/ydb-go-genproto/protos/Ydb"
13+
14+
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xerrors"
15+
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xsql/badconn"
16+
"github.com/ydb-platform/ydb-go-sdk/v3/retry"
17+
)
18+
19+
func TestRegressionCloud109307(t *testing.T) {
20+
db, err := sql.Open("ydb", os.Getenv("YDB_CONNECTION_STRING"))
21+
if err != nil {
22+
t.Fatal(err)
23+
}
24+
25+
ctx, cancel := context.WithTimeout(context.Background(), 42*time.Second)
26+
defer cancel()
27+
28+
for i := int64(1); ; i++ {
29+
if ctx.Err() != nil {
30+
break
31+
}
32+
33+
if err = retry.DoTx(ctx, db, func(ctx context.Context, tx *sql.Tx) error {
34+
//nolint:gosec
35+
if rand.Int31n(3) == 0 {
36+
return badconn.Map(xerrors.Operation(xerrors.WithStatusCode(Ydb.StatusIds_BAD_SESSION)))
37+
}
38+
var rows *sql.Rows
39+
rows, err = tx.QueryContext(ctx, `
40+
DECLARE $i AS Int64;
41+
42+
SELECT $i;
43+
`, sql.Named("i", i))
44+
if err != nil {
45+
return err
46+
}
47+
defer rows.Close()
48+
if !rows.Next() {
49+
return errors.New("no rows")
50+
}
51+
var result interface{}
52+
if err = rows.Scan(&result); err != nil {
53+
return err
54+
}
55+
if result.(int64)%100 == 0 {
56+
t.Logf("result: %+v\n", result)
57+
}
58+
return rows.Err()
59+
}, retry.WithTxOptions(&sql.TxOptions{
60+
Isolation: sql.LevelSnapshot,
61+
ReadOnly: true,
62+
}), retry.WithDoTxRetryOptions(
63+
retry.WithIdempotent(true),
64+
)); err != nil {
65+
if ctx.Err() == nil {
66+
t.Fatalf("error: %+v\n", err)
67+
}
68+
}
69+
}
70+
}

tests/database_sql_test.go

Lines changed: 0 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -7,22 +7,17 @@ import (
77
"bytes"
88
"context"
99
"database/sql"
10-
"errors"
1110
"fmt"
12-
"math/rand"
1311
"os"
1412
"path"
1513
"sync/atomic"
1614
"testing"
1715
"text/template"
1816
"time"
1917

20-
"github.com/ydb-platform/ydb-go-genproto/protos/Ydb"
2118
"google.golang.org/grpc/metadata"
2219

2320
"github.com/ydb-platform/ydb-go-sdk/v3"
24-
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xerrors"
25-
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xsql/badconn"
2621
"github.com/ydb-platform/ydb-go-sdk/v3/meta"
2722
"github.com/ydb-platform/ydb-go-sdk/v3/retry"
2823
"github.com/ydb-platform/ydb-go-sdk/v3/sugar"
@@ -563,56 +558,3 @@ func (scope *databaseSQLScope) render(t *template.Template, data interface{}) st
563558
}
564559
return buf.String()
565560
}
566-
567-
func TestRegressionCloud109307(t *testing.T) {
568-
db, err := sql.Open("ydb", os.Getenv("YDB_CONNECTION_STRING"))
569-
if err != nil {
570-
t.Fatal(err)
571-
}
572-
573-
ctx, cancel := context.WithTimeout(context.Background(), 42*time.Second)
574-
defer cancel()
575-
576-
for i := int64(1); ; i++ {
577-
if ctx.Err() != nil {
578-
break
579-
}
580-
581-
if err = retry.DoTx(ctx, db, func(ctx context.Context, tx *sql.Tx) error {
582-
//nolint:gosec
583-
if rand.Int31n(3) == 0 {
584-
return badconn.Map(xerrors.Operation(xerrors.WithStatusCode(Ydb.StatusIds_BAD_SESSION)))
585-
}
586-
var rows *sql.Rows
587-
rows, err = tx.QueryContext(ctx, `
588-
DECLARE $i AS Int64;
589-
590-
SELECT $i;
591-
`, sql.Named("i", i))
592-
if err != nil {
593-
return err
594-
}
595-
defer rows.Close()
596-
if !rows.Next() {
597-
return errors.New("no rows")
598-
}
599-
var result interface{}
600-
if err = rows.Scan(&result); err != nil {
601-
return err
602-
}
603-
if result.(int64)%100 == 0 {
604-
t.Logf("result: %+v\n", result)
605-
}
606-
return rows.Err()
607-
}, retry.WithTxOptions(&sql.TxOptions{
608-
Isolation: sql.LevelSnapshot,
609-
ReadOnly: true,
610-
}), retry.WithDoTxRetryOptions(
611-
retry.WithIdempotent(true),
612-
)); err != nil {
613-
if ctx.Err() == nil {
614-
t.Fatalf("error: %+v\n", err)
615-
}
616-
}
617-
}
618-
}

tests/monitoring_test.go

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
package tests
2+
3+
import (
4+
"context"
5+
"fmt"
6+
"os"
7+
"testing"
8+
"time"
9+
10+
"github.com/ydb-platform/ydb-go-genproto/Ydb_Monitoring_V1"
11+
"github.com/ydb-platform/ydb-go-genproto/protos/Ydb_Monitoring"
12+
13+
"github.com/ydb-platform/ydb-go-sdk/v3"
14+
"github.com/ydb-platform/ydb-go-sdk/v3/retry"
15+
)
16+
17+
func TestMonitoring(t *testing.T) {
18+
t.Skip("wait for newest cr.yandex/yc/yandex-docker-local-ydb:latest was published")
19+
20+
ctx, cancel := context.WithTimeout(context.Background(), time.Second*10)
21+
defer cancel()
22+
23+
db, err := ydb.Open(
24+
ctx,
25+
"", // corner case for check replacement of endpoint+database+secure
26+
ydb.WithConnectionString(os.Getenv("YDB_CONNECTION_STRING")),
27+
)
28+
if err != nil {
29+
t.Fatal(err)
30+
}
31+
defer func() {
32+
// cleanup connection
33+
if e := db.Close(ctx); e != nil {
34+
t.Fatalf("close failed: %+v", e)
35+
}
36+
}()
37+
t.Run("monitoring.SelfCheck", func(t *testing.T) {
38+
if err = retry.Retry(ctx, func(ctx context.Context) (err error) {
39+
client := Ydb_Monitoring_V1.NewMonitoringServiceClient(ydb.GRPCConn(db))
40+
response, err := client.SelfCheck(ctx, &Ydb_Monitoring.SelfCheckRequest{
41+
OperationParams: nil,
42+
ReturnVerboseStatus: false,
43+
MinimumStatus: 0,
44+
MaximumLevel: 0,
45+
})
46+
if err != nil {
47+
return err
48+
}
49+
var result Ydb_Monitoring.SelfCheckResult
50+
err = response.Operation.Result.UnmarshalTo(&result)
51+
if err != nil {
52+
return err
53+
}
54+
fmt.Printf("%+v\n", &result)
55+
return nil
56+
}, retry.WithIdempotent(true)); err != nil {
57+
t.Fatalf("Execute failed: %v", err)
58+
}
59+
})
60+
}

tests/ratelimiter_test.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,12 @@ import (
1818
"github.com/ydb-platform/ydb-go-sdk/v3/trace"
1919
)
2020

21-
const (
22-
testCoordinationNodePath = "/local/ratelimiter_test"
23-
testResource = "test_resource"
24-
)
25-
2621
func TestRatelimiter(t *testing.T) {
22+
const (
23+
testCoordinationNodePath = "/local/ratelimiter_test"
24+
testResource = "test_resource"
25+
)
26+
2727
ctx, cancel := context.WithTimeout(context.Background(), time.Second*4)
2828
defer cancel()
2929
db, err := ydb.Open(

0 commit comments

Comments
 (0)