1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
#include "mkql_computation_node_ut.h"
#include <yql/essentials/minikql/comp_nodes/ut/mkql_program_builder_test_utils.h>
#include <yql/essentials/minikql/udf_value_test_support/udf_value_comparator_utils.h>
namespace NKikimr::NMiniKQL {
Y_UNIT_TEST_SUITE(TRuntimeFeatureTest) {
Y_UNIT_TEST_LLVM(HostRuntimeSetting) {
TSetup<LLVM> setup;
TProgramBuilder& pb = *setup.PgmBuilder;
setup.RuntimeSettings->TestHostSetting.Set(true);
const auto lookup = [&](TStringBuf name) {
auto graph = setup.BuildGraph(pb.HostRuntimeSetting(NTest::ConvertValueToLiteralNode(pb, name)));
return graph->GetValue();
};
const auto found = lookup("TestHostSetting");
AssertUnboxedValueElementEqual(found, TMaybe<TStringBuf>{"true"});
AssertUnboxedValueElementEqual(lookup("NonExistentSetting"), TMaybe<TStringBuf>{});
}
Y_UNIT_TEST_LLVM(UdfRuntimeSetting) {
TSetup<LLVM> setup;
TProgramBuilder& pb = *setup.PgmBuilder;
setup.RuntimeSettings->SetUdfSetting("MyModule", "myKey", "myValue");
const auto lookup = [&](TStringBuf module, TStringBuf key) {
auto graph = setup.BuildGraph(pb.UdfRuntimeSetting(
NTest::ConvertValueToLiteralNode(pb, module),
NTest::ConvertValueToLiteralNode(pb, key)));
return graph->GetValue();
};
const auto found = lookup("MyModule", "myKey");
AssertUnboxedValueElementEqual(found, TMaybe<TStringBuf>{"myValue"});
AssertUnboxedValueElementEqual(lookup("MyModule", "missingKey"), TMaybe<TStringBuf>{});
AssertUnboxedValueElementEqual(lookup("UnknownModule", "myKey"), TMaybe<TStringBuf>{});
}
} // Y_UNIT_TEST_SUITE(TRuntimeFeatureTest)
} // namespace NKikimr::NMiniKQL
|