Skip to content

Commit 3e8a344

Browse files
authored
change bruteforce for scripting (#10246)
1 parent ebdb387 commit 3e8a344

File tree

1 file changed

+30
-5
lines changed

1 file changed

+30
-5
lines changed

ydb/core/kqp/ut/yql/kqp_scripting_ut.cpp

Lines changed: 30 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -698,8 +698,10 @@ Y_UNIT_TEST_SUITE(KqpScripting) {
698698
auto expected = TString("[") + EXPECTED_EIGHTSHARD_VALUE1 + "]";
699699

700700
int unsuccessStatus = 0;
701+
int successResults = 0;
702+
constexpr int delta = NSan::PlainOrUnderSanitizer(1, 3);
701703

702-
for (int i = 1; i < maxTimeoutMs; i++) {
704+
for (int i = 1; i < maxTimeoutMs; i += delta) {
703705
auto it = client.StreamExecuteYqlScript(R"(
704706
SELECT * FROM `/Root/EightShard` WHERE Text = "Value1" ORDER BY Key;
705707
)", getExecuteYqlRequestSettings(i)).GetValueSync();
@@ -708,6 +710,11 @@ Y_UNIT_TEST_SUITE(KqpScripting) {
708710
try {
709711
auto yson = StreamResultToYson(it, true);
710712
CompareYson(expected, yson);
713+
++successResults;
714+
if (successResults == 3) {
715+
break;
716+
}
717+
711718
} catch (const TStreamReadError& ex) {
712719
unsuccessStatus++;
713720
if (ex.Status != NYdb::EStatus::CLIENT_DEADLINE_EXCEEDED && ex.Status != NYdb::EStatus::TIMEOUT) {
@@ -736,14 +743,22 @@ Y_UNIT_TEST_SUITE(KqpScripting) {
736743
int maxTimeoutMs = 1000;
737744

738745
auto getExecuteYqlRequestSettings = GetExecuteYqlRequestSettingsFn(clientTimeout, operationTimeout);
746+
int successResults = 0;
739747

740-
for (int i = 1; i < maxTimeoutMs; i++) {
748+
constexpr int delta = NSan::PlainOrUnderSanitizer(1, 3);
749+
750+
for (int i = 1; i < maxTimeoutMs; i += delta) {
741751
auto result = client.ExecuteYqlScript(R"(
742752
SELECT * FROM `/Root/EightShard` WHERE Text = "Value1" ORDER BY Key;
743753
)", getExecuteYqlRequestSettings(i)).GetValueSync();
744754

745755
if (result.IsSuccess()) {
746756
CompareYson(EXPECTED_EIGHTSHARD_VALUE1, FormatResultSetYson(result.GetResultSet(0)));
757+
successResults++;
758+
if (successResults == 3) {
759+
break;
760+
}
761+
747762
} else {
748763
switch (result.GetStatus()) {
749764
case NYdb::EStatus::CLIENT_DEADLINE_EXCEEDED:
@@ -771,7 +786,10 @@ Y_UNIT_TEST_SUITE(KqpScripting) {
771786

772787
auto expected = TString("[") + EXPECTED_EIGHTSHARD_VALUE1 + "]";
773788

774-
for (int i = 1; i < maxTimeoutMs; i++) {
789+
constexpr int delta = NSan::PlainOrUnderSanitizer(1, 5);
790+
int successResults = 0;
791+
792+
for (int i = 1; i < maxTimeoutMs; i += delta) {
775793
auto it = client.StreamExecuteYqlScript(R"(
776794
SELECT * FROM `/Root/EightShard` WHERE Text = "Value1" ORDER BY Key;
777795
)", TExecuteYqlRequestSettings().CancelAfter(TDuration::MilliSeconds(i))).GetValueSync();
@@ -780,6 +798,11 @@ Y_UNIT_TEST_SUITE(KqpScripting) {
780798
try {
781799
auto yson = StreamResultToYson(it, true);
782800
CompareYson(expected, yson);
801+
++successResults;
802+
if (successResults == 3) {
803+
break;
804+
}
805+
783806
} catch (const TStreamReadError& ex) {
784807
if (ex.Status != NYdb::EStatus::CANCELLED) {
785808
TStringStream msg;
@@ -813,8 +836,9 @@ Y_UNIT_TEST_SUITE(KqpScripting) {
813836
};
814837

815838
TString expected;
839+
const int delta = NSan::PlainOrUnderSanitizer(1, 5);
816840

817-
for (int i = 1; i <= maxTimeoutMs; i++) {
841+
for (int i = 1; i <= maxTimeoutMs; i += delta) {
818842
auto it = client.StreamExecuteYqlScript(Sprintf(R"(
819843
UPSERT INTO `/Root/EightShard` (Key, Data, Text) VALUES (%lu, 100500, "newrecords");
820844
COMMIT;
@@ -860,9 +884,10 @@ Y_UNIT_TEST_SUITE(KqpScripting) {
860884
return Sprintf(R"([[100500];[%luu];["newrecords"]])", key);
861885
};
862886

887+
constexpr int delta = NSan::PlainOrUnderSanitizer(1, 5);
863888
TString expected;
864889

865-
for (int i = 1; i <= maxTimeoutMs; i++) {
890+
for (int i = 1; i <= maxTimeoutMs; i += delta) {
866891
auto result = client.ExecuteYqlScript(Sprintf(R"(
867892
UPSERT INTO `/Root/EightShard` (Key, Data, Text) VALUES (%lu, 100500, "newrecords");
868893
COMMIT;

0 commit comments

Comments
 (0)