diff options
author | Christian Parpart <christian@ethereum.org> | 2018-10-08 16:56:16 +0800 |
---|---|---|
committer | Christian Parpart <christian@ethereum.org> | 2018-10-08 16:58:52 +0800 |
commit | d1e05bf647be4fb388c539e915c7c53d98079455 (patch) | |
tree | 34b88c809bf2b95f83343e4b3ffd3130174130f4 | |
parent | 363b527bc54228c8f34b937730752c8dd86746b9 (diff) | |
download | dexon-solidity-d1e05bf647be4fb388c539e915c7c53d98079455.tar.gz dexon-solidity-d1e05bf647be4fb388c539e915c7c53d98079455.tar.zst dexon-solidity-d1e05bf647be4fb388c539e915c7c53d98079455.zip |
soltest: provides sane defaults for --testpath command line option
-rw-r--r-- | test/Options.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/test/Options.cpp b/test/Options.cpp index ff4a7c98..63588237 100644 --- a/test/Options.cpp +++ b/test/Options.cpp @@ -25,9 +25,11 @@ #include <libsolidity/interface/Exceptions.h> #include <boost/test/framework.hpp> +#include <boost/filesystem.hpp> using namespace std; using namespace dev::test; +namespace fs = boost::filesystem; Options const& Options::get() { @@ -70,6 +72,27 @@ Options::Options() if (testPath.empty()) if (auto path = getenv("ETH_TEST_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 |