aboutsummaryrefslogtreecommitdiffstats
path: root/test/Options.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/Options.cpp')
-rw-r--r--test/Options.cpp23
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