diff options
author | max42 <max42@yandex-team.com> | 2023-06-30 03:37:03 +0300 |
---|---|---|
committer | max42 <max42@yandex-team.com> | 2023-06-30 03:37:03 +0300 |
commit | fac2bd72b4b31ec3238292caf8fb2a8aaa6d6c4a (patch) | |
tree | b8cbc1deb00309c7f1a7ab6df520a76cf0b5c6d7 /yt/cpp/mapreduce/interface/job_counters_ut.cpp | |
parent | 7bf166b1a7ed0af927f230022b245af618e998c1 (diff) | |
download | ydb-fac2bd72b4b31ec3238292caf8fb2a8aaa6d6c4a.tar.gz |
YT-19324: move YT provider to ydb/library/yql
This commit is formed by the following script: https://paste.yandex-team.ru/6f92e4b8-efc5-4d34-948b-15ee2accd7e7/text.
This commit has zero effect on all projects that depend on YQL.
The summary of changes:
- `yql/providers/yt -> ydb/library/yql/providers/yt `- the whole implementation of YT provider is moved into YDB code base for further export as a part of YT YQL plugin shared library;
- `yql/providers/stat/{expr_nodes,uploader} -> ydb/library/yql/providers/stat/{expr_nodes,uploader}` - a small interface without implementation and the description of stat expr nodes;
- `yql/core/extract_predicate/ut -> ydb/library/yql/core/extract_predicate/ut`;
- `yql/core/{ut,ut_common} -> ydb/library/yql/core/{ut,ut_common}`;
- `yql/core` is gone;
- `yql/library/url_preprocessing -> ydb/library/yql/core/url_preprocessing`.
**NB**: all new targets inside `ydb/` are under `IF (NOT CMAKE_EXPORT)` clause which disables them from open-source cmake generation and ya make build. They will be enabled in the subsequent commits.
Diffstat (limited to 'yt/cpp/mapreduce/interface/job_counters_ut.cpp')
-rw-r--r-- | yt/cpp/mapreduce/interface/job_counters_ut.cpp | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/yt/cpp/mapreduce/interface/job_counters_ut.cpp b/yt/cpp/mapreduce/interface/job_counters_ut.cpp new file mode 100644 index 0000000000..56d3932b8f --- /dev/null +++ b/yt/cpp/mapreduce/interface/job_counters_ut.cpp @@ -0,0 +1,103 @@ +#include <yt/cpp/mapreduce/interface/job_counters.h> +#include <yt/cpp/mapreduce/interface/operation.h> + +#include <library/cpp/yson/node/node_io.h> + +#include <library/cpp/testing/unittest/registar.h> + +using namespace NYT; + +Y_UNIT_TEST_SUITE(JobCounters) +{ + Y_UNIT_TEST(Full) + { + const TString input = R"""( + { + "completed" = { + "total" = 6; + "non-interrupted" = 1; + "interrupted" = { + "whatever_interrupted" = 2; + "whatever_else_interrupted" = 3; + }; + }; + "aborted" = { + "non_scheduled" = { + "whatever_non_scheduled" = 4; + "whatever_else_non_scheduled" = 5; + }; + "scheduled" = { + "whatever_scheduled" = 6; + "whatever_else_scheduled" = 7; + }; + "total" = 22; + }; + "lost" = 8; + "invalidated" = 9; + "failed" = 10; + "running" = 11; + "suspended" = 12; + "pending" = 13; + "blocked" = 14; + "total" = 105; + })"""; + + TJobCounters counters(NodeFromYsonString(input)); + + UNIT_ASSERT_VALUES_EQUAL(counters.GetTotal(), 105); + + UNIT_ASSERT_VALUES_EQUAL(counters.GetCompleted().GetTotal(), 6); + UNIT_ASSERT_VALUES_EQUAL(counters.GetCompletedNonInterrupted().GetTotal(), 1); + UNIT_ASSERT_VALUES_EQUAL(counters.GetCompletedInterrupted().GetTotal(), 5); + UNIT_ASSERT_VALUES_EQUAL(counters.GetAborted().GetTotal(), 22); + UNIT_ASSERT_VALUES_EQUAL(counters.GetAbortedNonScheduled().GetTotal(), 9); + UNIT_ASSERT_VALUES_EQUAL(counters.GetAbortedScheduled().GetTotal(), 13); + UNIT_ASSERT_VALUES_EQUAL(counters.GetLost().GetTotal(), 8); + UNIT_ASSERT_VALUES_EQUAL(counters.GetInvalidated().GetTotal(), 9); + UNIT_ASSERT_VALUES_EQUAL(counters.GetFailed().GetTotal(), 10); + UNIT_ASSERT_VALUES_EQUAL(counters.GetRunning().GetTotal(), 11); + UNIT_ASSERT_VALUES_EQUAL(counters.GetSuspended().GetTotal(), 12); + UNIT_ASSERT_VALUES_EQUAL(counters.GetPending().GetTotal(), 13); + UNIT_ASSERT_VALUES_EQUAL(counters.GetBlocked().GetTotal(), 14); + + UNIT_ASSERT_VALUES_EQUAL(counters.GetCompletedInterrupted().GetValue("whatever_interrupted"), 2); + UNIT_ASSERT_VALUES_EQUAL(counters.GetCompletedInterrupted().GetValue("whatever_else_interrupted"), 3); + UNIT_ASSERT_VALUES_EQUAL(counters.GetAbortedNonScheduled().GetValue("whatever_non_scheduled"), 4); + UNIT_ASSERT_VALUES_EQUAL(counters.GetAbortedNonScheduled().GetValue("whatever_else_non_scheduled"), 5); + UNIT_ASSERT_VALUES_EQUAL(counters.GetAbortedScheduled().GetValue("whatever_scheduled"), 6); + UNIT_ASSERT_VALUES_EQUAL(counters.GetAbortedScheduled().GetValue("whatever_else_scheduled"), 7); + + UNIT_ASSERT_EXCEPTION(counters.GetCompletedInterrupted().GetValue("Nothingness"), yexception); + } + + Y_UNIT_TEST(Empty) + { + const TString input = "{}"; + + TJobCounters counters(NodeFromYsonString(input)); + + UNIT_ASSERT_VALUES_EQUAL(counters.GetTotal(), 0); + + UNIT_ASSERT_VALUES_EQUAL(counters.GetCompleted().GetTotal(), 0); + UNIT_ASSERT_VALUES_EQUAL(counters.GetCompletedNonInterrupted().GetTotal(), 0); + UNIT_ASSERT_VALUES_EQUAL(counters.GetCompletedInterrupted().GetTotal(), 0); + UNIT_ASSERT_VALUES_EQUAL(counters.GetAborted().GetTotal(), 0); + UNIT_ASSERT_VALUES_EQUAL(counters.GetAbortedNonScheduled().GetTotal(), 0); + UNIT_ASSERT_VALUES_EQUAL(counters.GetAbortedScheduled().GetTotal(), 0); + UNIT_ASSERT_VALUES_EQUAL(counters.GetLost().GetTotal(), 0); + UNIT_ASSERT_VALUES_EQUAL(counters.GetInvalidated().GetTotal(), 0); + UNIT_ASSERT_VALUES_EQUAL(counters.GetFailed().GetTotal(), 0); + UNIT_ASSERT_VALUES_EQUAL(counters.GetRunning().GetTotal(), 0); + UNIT_ASSERT_VALUES_EQUAL(counters.GetSuspended().GetTotal(), 0); + UNIT_ASSERT_VALUES_EQUAL(counters.GetPending().GetTotal(), 0); + UNIT_ASSERT_VALUES_EQUAL(counters.GetBlocked().GetTotal(), 0); + } + + Y_UNIT_TEST(Broken) + { + UNIT_ASSERT_EXCEPTION_CONTAINS(TJobCounters(TNode()), yexception, "TJobCounters"); + UNIT_ASSERT_EXCEPTION_CONTAINS(TJobCounters(TNode(1)), yexception, "TJobCounters"); + UNIT_ASSERT_EXCEPTION_CONTAINS(TJobCounters(TNode(1.0)), yexception, "TJobCounters"); + UNIT_ASSERT_EXCEPTION_CONTAINS(TJobCounters(TNode("Whatever")), yexception, "TJobCounters"); + } +} |