/* This file is part of solidity. solidity is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. solidity is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with solidity. If not, see . */ #include #include namespace fs = boost::filesystem; namespace dev { namespace test { boost::filesystem::path discoverTestPath() { auto const searchPath = { fs::current_path() / ".." / ".." / ".." / "test", fs::current_path() / ".." / ".." / "test", fs::current_path() / ".." / "test", fs::current_path() / "test", fs::current_path() }; for (auto const& basePath: searchPath) { fs::path syntaxTestPath = basePath / "libsolidity" / "syntaxTests"; if (fs::exists(syntaxTestPath) && fs::is_directory(syntaxTestPath)) return basePath; } return {}; } } }