/// Parses a test suite configuration file. /// /// \param file The file to parse. /// \param user_build_root If not none, specifies a path to a directory /// containing the test programs themselves. The layout of the build root /// must match the layout of the source root (which is just the directory /// from which the Kyuafile is being read). /// /// \return High-level representation of the configuration file. /// /// \throw load_error If there is any problem loading the file. This includes /// file access errors and syntax errors. engine::kyuafile engine::kyuafile::load(const fs::path& file, const optional< fs::path > user_build_root) { const fs::path source_root_ = file.branch_path(); const fs::path build_root_ = user_build_root ? user_build_root.get() : source_root_; return kyuafile(source_root_, build_root_, parser(source_root_, build_root_, fs::path(file.leaf_name())).parse()); }