diff --git a/test/libsolidity/SyntaxTest.cpp b/test/libsolidity/SyntaxTest.cpp index acfdff294..ca0511384 100644 --- a/test/libsolidity/SyntaxTest.cpp +++ b/test/libsolidity/SyntaxTest.cpp @@ -205,6 +205,13 @@ test_case *make_test_case( } #endif +bool SyntaxTest::isTestFilename(boost::filesystem::path const& _filename) +{ + return _filename.extension().string() == ".sol" && + !boost::starts_with(_filename.string(), "~") && + !boost::starts_with(_filename.string(), "."); +} + int SyntaxTest::registerTests( boost::unit_test::test_suite& _suite, boost::filesystem::path const& _basepath, @@ -220,7 +227,8 @@ int SyntaxTest::registerTests( fs::directory_iterator(fullpath), fs::directory_iterator() )) - numTestsAdded += registerTests(*sub_suite, _basepath, _path / entry.path().filename()); + if (fs::is_directory(entry.path()) || isTestFilename(entry.path().filename())) + numTestsAdded += registerTests(*sub_suite, _basepath, _path / entry.path().filename()); _suite.add(sub_suite); } else diff --git a/test/libsolidity/SyntaxTest.h b/test/libsolidity/SyntaxTest.h index 441cc4f82..cb6ee05cd 100644 --- a/test/libsolidity/SyntaxTest.h +++ b/test/libsolidity/SyntaxTest.h @@ -71,6 +71,7 @@ public: boost::filesystem::path const& _basepath, boost::filesystem::path const& _path ); + static bool isTestFilename(boost::filesystem::path const& _filename); private: bool matchesExpectations(ErrorList const& _errors) const; static std::string errorMessage(Error const& _e); diff --git a/test/tools/isoltest.cpp b/test/tools/isoltest.cpp index 668481cf8..5ad3bfb5d 100644 --- a/test/tools/isoltest.cpp +++ b/test/tools/isoltest.cpp @@ -19,6 +19,7 @@ #include #include +#include #include #include #include @@ -218,7 +219,8 @@ SyntaxTestStats SyntaxTestTool::processPath( fs::directory_iterator(fullpath), fs::directory_iterator() )) - paths.push(currentPath / entry.path().filename()); + if (fs::is_directory(entry.path()) || SyntaxTest::isTestFilename(entry.path().filename())) + paths.push(currentPath / entry.path().filename()); } else {