diff options
author | Andres Noetzli <andres.noetzli@gmail.com> | 2021-05-14 15:56:11 -0700 |
---|---|---|
committer | Andres Noetzli <andres.noetzli@gmail.com> | 2021-05-17 19:58:21 -0700 |
commit | 98512d53bad33ee25835a04b1e83acab815d454f (patch) | |
tree | 86aaca79768c53eba571108dc0633ca0b3720456 /test/unit/parser/parser_builder_black.cpp | |
parent | 6e6d2b59538a010b61434387498afa594434cfa9 (diff) |
Split parser state from parser classparser-state
This commit splits the parser state from the parser class.
Diffstat (limited to 'test/unit/parser/parser_builder_black.cpp')
-rw-r--r-- | test/unit/parser/parser_builder_black.cpp | 142 |
1 files changed, 0 insertions, 142 deletions
diff --git a/test/unit/parser/parser_builder_black.cpp b/test/unit/parser/parser_builder_black.cpp deleted file mode 100644 index f8d29efbe..000000000 --- a/test/unit/parser/parser_builder_black.cpp +++ /dev/null @@ -1,142 +0,0 @@ -/****************************************************************************** - * Top contributors (to current version): - * Aina Niemetz, Christopher L. Conway, Tim King - * - * This file is part of the cvc5 project. - * - * Copyright (c) 2009-2021 by the authors listed in the file AUTHORS - * in the top-level source directory and their institutional affiliations. - * All rights reserved. See the file COPYING in the top-level source - * directory for licensing information. - * **************************************************************************** - * - * Black box testing of cvc5::parser::ParserBuilder. - */ - -#include <stdio.h> -#include <string.h> -#include <sys/stat.h> -#include <unistd.h> - -#include <fstream> -#include <iostream> - -#include "api/cpp/cvc5.h" -#include "expr/symbol_manager.h" -#include "options/language.h" -#include "parser/input_parser.h" -#include "parser/parser.h" -#include "parser/parser_builder.h" -#include "test_api.h" - -namespace cvc5 { - -using namespace parser; -using namespace language::input; - -namespace test { - -class TestParseBlackParserBuilder : public TestApi -{ - protected: - void SetUp() override { d_symman.reset(new SymbolManager(&d_solver)); } - - void checkEmptyInput(InputParser* inputParser) - { - api::Term e = inputParser->nextExpression(); - ASSERT_TRUE(e.isNull()); - } - - void checkTrueInput(InputParser* inputParser) - { - api::Term e = inputParser->nextExpression(); - ASSERT_EQ(e, d_solver.mkTrue()); - - e = inputParser->nextExpression(); - ASSERT_TRUE(e.isNull()); - } - - char* mkTemp() - { - char* filename = strdup("/tmp/testinput.XXXXXX"); - int32_t fd = mkstemp(filename); - if (fd == -1) return nullptr; - close(fd); - return filename; - } - std::unique_ptr<SymbolManager> d_symman; -}; - -TEST_F(TestParseBlackParserBuilder, empty_file_input) -{ - char* filename = mkTemp(); - ASSERT_NE(filename, nullptr); - - std::unique_ptr<Parser> parser(ParserBuilder(&d_solver, d_symman.get()) - .withInputLanguage(LANG_CVC) - .build()); - std::unique_ptr<InputParser> inputParser = parser->parseFile(filename, false); - checkEmptyInput(inputParser.get()); - - remove(filename); - free(filename); -} - -TEST_F(TestParseBlackParserBuilder, simple_file_input) -{ - char* filename = mkTemp(); - - std::fstream fs(filename, std::fstream::out); - fs << "TRUE" << std::endl; - fs.close(); - - std::unique_ptr<Parser> parser(ParserBuilder(&d_solver, d_symman.get()) - .withInputLanguage(LANG_CVC) - .build()); - std::unique_ptr<InputParser> inputParser = parser->parseFile(filename, false); - checkTrueInput(inputParser.get()); - - remove(filename); - free(filename); -} - -TEST_F(TestParseBlackParserBuilder, empty_string_input) -{ - std::unique_ptr<Parser> parser(ParserBuilder(&d_solver, d_symman.get()) - .withInputLanguage(LANG_CVC) - .build()); - std::unique_ptr<InputParser> inputParser = parser->parseString("foo", ""); - checkEmptyInput(inputParser.get()); -} - -TEST_F(TestParseBlackParserBuilder, true_string_input) -{ - std::unique_ptr<Parser> parser(ParserBuilder(&d_solver, d_symman.get()) - .withInputLanguage(LANG_CVC) - .build()); - std::unique_ptr<InputParser> inputParser = parser->parseString("foo", "TRUE"); - checkTrueInput(inputParser.get()); -} - -TEST_F(TestParseBlackParserBuilder, empty_stream_input) -{ - std::stringstream ss("", std::ios_base::in); - std::unique_ptr<Parser> parser(ParserBuilder(&d_solver, d_symman.get()) - .withInputLanguage(LANG_CVC) - .build()); - std::unique_ptr<InputParser> inputParser = parser->parseStream("foo", ss); - checkEmptyInput(inputParser.get()); -} - -TEST_F(TestParseBlackParserBuilder, true_stream_input) -{ - std::stringstream ss("TRUE", std::ios_base::in); - std::unique_ptr<Parser> parser(ParserBuilder(&d_solver, d_symman.get()) - .withInputLanguage(LANG_CVC) - .build()); - std::unique_ptr<InputParser> inputParser = parser->parseStream("foo", ss); - checkTrueInput(inputParser.get()); -} - -} // namespace test -} // namespace cvc5 |