diff --git a/.circleci/config.yml b/.circleci/config.yml index 7adb470..277302d 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -7,7 +7,7 @@ jobs: steps: - checkout - run: g++ --version - - run: cd test/ + - run: cd tests/ - run: g++ -std=c++11 -O2 -Wall -Wextra -Werror check.cpp -o check - run: git clone https://github.com/BurntSushi/toml-test.git - run: cp check toml-test/tests/invalid diff --git a/tests/check.cpp b/tests/check.cpp new file mode 100644 index 0000000..a271f3f --- /dev/null +++ b/tests/check.cpp @@ -0,0 +1,41 @@ +#include "toml.hpp" +#include +#include + +int main(int argc, char **argv) +{ + if(argc != 3) + { + std::cerr << "usage: ./check [filename] [valid|invalid]" << std::endl; + return 1; + } + + const std::string file_kind(argv[2]); + + try + { + const auto data = toml::parse(argv[1]); + std::cout << std::setprecision(16) << std::setw(80) << data; + if(file_kind == "valid") + { + return 0; + } + else + { + return 1; + } + } + catch(const toml::syntax_error& err) + { + std::cout << "what(): " << err.what() << std::endl; + if(file_kind == "invalid") + { + return 0; + } + else + { + return 1; + } + } + return 127; +}