summaryrefslogtreecommitdiffstats
path: root/yql/essentials/public/purecalc/ut/test_fatal_err.cpp
blob: 54cac5b58742d0f88fcad5ee144f7ea818462877 (plain) (blame)
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
#include <yql/essentials/public/purecalc/purecalc.h>
#include <yql/essentials/public/purecalc/io_specs/protobuf/spec.h>
#include <yql/essentials/public/purecalc/ut/protos/test_structs.pb.h>
#include <yql/essentials/public/purecalc/ut/empty_stream.h>

#include <library/cpp/testing/unittest/registar.h>

Y_UNIT_TEST_SUITE(TestFatalError) {
Y_UNIT_TEST(TestFailType) {
    using namespace NYql::NPureCalc;

    auto options = TProgramFactoryOptions();
    auto factory = MakeProgramFactory(options);

    try {
        factory->MakePullListProgram(
            TProtobufInputSpec<NPureCalcProto::TStringMessage>(),
            TProtobufOutputSpec<NPureCalcProto::TStringMessage>(),
            "pragma warning(\"disable\",\"4510\");select unwrap(cast(Yql::FailMe(AsAtom('type')) as Utf8)) as X;",
            ETranslationMode::SQL);
        UNIT_FAIL("Exception is expected");
    } catch (const TCompileError& e) {
        UNIT_ASSERT_C(e.GetIssues().Contains("abnormal"), e.GetIssues());
    }
}
} // Y_UNIT_TEST_SUITE(TestFatalError)