2019-02-24 23:53:14 -05:00
|
|
|
#include <vector>
|
|
|
|
#include <string>
|
|
|
|
#include <algorithm>
|
|
|
|
#include <unordered_set>
|
2020-02-07 18:27:01 -05:00
|
|
|
#if __has_include(<filesystem>)
|
2021-03-10 11:13:28 -05:00
|
|
|
#include <filesystem>
|
|
|
|
namespace fs = std::filesystem;
|
2020-02-07 18:27:01 -05:00
|
|
|
#elif __has_include(<experimental/filesystem>)
|
|
|
|
#include <experimental/filesystem>
|
|
|
|
namespace fs = std::experimental::filesystem;
|
|
|
|
#endif
|
2019-02-24 23:53:14 -05:00
|
|
|
|
|
|
|
using std::string;
|
|
|
|
using std::vector;
|
|
|
|
|
|
|
|
extern "C" {
|
2021-03-10 11:13:28 -05:00
|
|
|
void __stdcall PgoRunTest(vector<string> testRoms, bool enableDebugger);
|
2019-02-24 23:53:14 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
vector<string> GetFilesInFolder(string rootFolder, std::unordered_set<string> extensions)
|
|
|
|
{
|
|
|
|
vector<string> files;
|
2021-03-10 11:13:28 -05:00
|
|
|
vector<string> folders = { { rootFolder } };
|
2019-02-24 23:53:14 -05:00
|
|
|
|
|
|
|
std::error_code errorCode;
|
2021-03-10 11:13:28 -05:00
|
|
|
if(!fs::is_directory(fs::u8path(rootFolder), errorCode)) {
|
2019-02-24 23:53:14 -05:00
|
|
|
return files;
|
|
|
|
}
|
|
|
|
|
2021-03-10 11:13:28 -05:00
|
|
|
for(string folder : folders) {
|
|
|
|
for(fs::directory_iterator i(fs::u8path(folder.c_str())), end; i != end; i++) {
|
2019-02-24 23:53:14 -05:00
|
|
|
string extension = i->path().extension().u8string();
|
|
|
|
std::transform(extension.begin(), extension.end(), extension.begin(), ::tolower);
|
2021-03-10 11:13:28 -05:00
|
|
|
if(extensions.find(extension) != extensions.end()) {
|
2019-02-24 23:53:14 -05:00
|
|
|
files.push_back(i->path().u8string());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return files;
|
|
|
|
}
|
|
|
|
|
|
|
|
int main(int argc, char* argv[])
|
|
|
|
{
|
|
|
|
string romFolder = "../PGOGames";
|
2021-03-10 11:13:28 -05:00
|
|
|
if(argc >= 2) {
|
2019-02-24 23:53:14 -05:00
|
|
|
romFolder = argv[1];
|
|
|
|
}
|
|
|
|
|
2021-03-10 11:13:28 -05:00
|
|
|
vector<string> testRoms = GetFilesInFolder(romFolder, { {".sfc", ".gb", ".gbc"} });
|
2019-02-24 23:53:14 -05:00
|
|
|
PgoRunTest(testRoms, true);
|
|
|
|
return 0;
|
|
|
|
}
|
2021-03-10 11:13:28 -05:00
|
|
|
|