Merge pull request #5157 from ethereum/soltest-testpath

soltest: provides sane defaults for --testpath command line option
This commit is contained in:
chriseth 2018-10-08 14:02:45 +02:00 committed by GitHub
commit 7d2dc14304
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -25,9 +25,11 @@
#include <libsolidity/interface/Exceptions.h> #include <libsolidity/interface/Exceptions.h>
#include <boost/test/framework.hpp> #include <boost/test/framework.hpp>
#include <boost/filesystem.hpp>
using namespace std; using namespace std;
using namespace dev::test; using namespace dev::test;
namespace fs = boost::filesystem;
Options const& Options::get() Options const& Options::get()
{ {
@ -70,6 +72,27 @@ Options::Options()
if (testPath.empty()) if (testPath.empty())
if (auto path = getenv("ETH_TEST_PATH")) if (auto path = getenv("ETH_TEST_PATH"))
testPath = path; testPath = path;
if (testPath.empty())
{
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))
{
testPath = basePath;
break;
}
}
}
} }
void Options::validate() const void Options::validate() const