test_fatal_err.cpp 1.0 KB

123456789101112131415161718192021222324252627
  1. #include <yql/essentials/public/purecalc/purecalc.h>
  2. #include <yql/essentials/public/purecalc/io_specs/protobuf/spec.h>
  3. #include <yql/essentials/public/purecalc/ut/protos/test_structs.pb.h>
  4. #include <yql/essentials/public/purecalc/ut/empty_stream.h>
  5. #include <library/cpp/testing/unittest/registar.h>
  6. Y_UNIT_TEST_SUITE(TestFatalError) {
  7. Y_UNIT_TEST(TestFailType) {
  8. using namespace NYql::NPureCalc;
  9. auto options = TProgramFactoryOptions();
  10. auto factory = MakeProgramFactory(options);
  11. try {
  12. factory->MakePullListProgram(
  13. TProtobufInputSpec<NPureCalcProto::TStringMessage>(),
  14. TProtobufOutputSpec<NPureCalcProto::TStringMessage>(),
  15. "pragma warning(\"disable\",\"4510\");select unwrap(cast(Yql::FailMe(AsAtom('type')) as Utf8)) as X;",
  16. ETranslationMode::SQL
  17. );
  18. UNIT_FAIL("Exception is expected");
  19. } catch (const TCompileError& e) {
  20. UNIT_ASSERT_C(e.GetIssues().Contains("abnormal"), e.GetIssues());
  21. }
  22. }
  23. }