Skip to content

Commit b6dd187

Browse files
committed
test/e2e: check CHYT and YQL via query tracker
It was here once but lost in battle with sdk bugs. Signed-off-by: Konstantin Khlebnikov <[email protected]>
1 parent 93f1300 commit b6dd187

File tree

2 files changed

+64
-0
lines changed

2 files changed

+64
-0
lines changed

test/e2e/helpers_test.go

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -442,6 +442,52 @@ func queryClickHouseID(ytProxyAddress string) (guid.GUID, error) {
442442
return guid.ParseString(strings.TrimSpace(result))
443443
}
444444

445+
func makeQuery(ctx context.Context, ytClient yt.Client, engine yt.QueryEngine, query string) []map[string]any {
446+
id, err := ytClient.StartQuery(ctx, engine, query, nil)
447+
Expect(err).To(Succeed())
448+
log.Info("Query started", "id", id)
449+
450+
var previousState yt.QueryState
451+
Eventually(func() (yt.QueryState, error) {
452+
result, err := ytClient.GetQuery(ctx, id, &yt.GetQueryOptions{
453+
Attributes: []string{"state", "error"},
454+
})
455+
if err != nil || result.State == nil {
456+
return yt.QueryStateFailed, err
457+
}
458+
if previousState != *result.State {
459+
log.Info("Query state", "id", id, "state", *result.State, "error", result.Err)
460+
previousState = *result.State
461+
}
462+
return *result.State, nil
463+
}, "60s").To(BeElementOf(yt.QueryStateAborted, yt.QueryStateCompleted, yt.QueryStateFailed))
464+
465+
result, err := ytClient.GetQuery(ctx, id, nil)
466+
Expect(err).To(Succeed())
467+
468+
Expect(result.State).To(HaveValue(Equal(yt.QueryStateCompleted)))
469+
Expect(result.ResultCount).To(HaveValue(Equal(int64(1))))
470+
471+
_, err = ytClient.GetQueryResult(ctx, id, 0, nil)
472+
Expect(err).To(Succeed())
473+
474+
reader, err := ytClient.ReadQueryResult(ctx, id, 0, nil)
475+
Expect(err).To(Succeed())
476+
477+
var rows []map[string]any
478+
for reader.Next() {
479+
var row map[string]any
480+
Expect(reader.Scan(&row)).To(Succeed())
481+
rows = append(rows, row)
482+
}
483+
Expect(reader.Err()).To(Succeed())
484+
Expect(reader.Close()).To(Succeed())
485+
486+
log.Info("Query result", "id", id, "rows", rows)
487+
488+
return rows
489+
}
490+
445491
func readFileObject(namespace string, source ytv1.FileObjectReference) ([]byte, error) {
446492
objectName := types.NamespacedName{
447493
Namespace: namespace,

test/e2e/ytsaurus_controller_test.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -568,6 +568,24 @@ var _ = Describe("Basic e2e test for Ytsaurus controller", Label("e2e"), func()
568568
).MustPassRepeatedly(3).Should(Equal("1\n"))
569569
})
570570

571+
JustBeforeEach(func(ctx context.Context) {
572+
if chyt == nil || ytsaurus.Spec.QueryTrackers == nil {
573+
return
574+
}
575+
576+
By("Checking CHYT via query tracker")
577+
Expect(makeQuery(ctx, ytClient, yt.QueryEngineCHYT, "SELECT 1")).To(HaveLen(1))
578+
})
579+
580+
JustBeforeEach(func(ctx context.Context) {
581+
if ytsaurus.Spec.YQLAgents == nil || ytsaurus.Spec.QueryTrackers == nil {
582+
return
583+
}
584+
585+
By("Checking YQL via query tracker")
586+
Expect(makeQuery(ctx, ytClient, yt.QueryEngineYQL, "SELECT 1")).To(HaveLen(1))
587+
})
588+
571589
JustAfterEach(func(ctx context.Context) {
572590
if CurrentSpecReport().Failed() {
573591
return

0 commit comments

Comments
 (0)