A simple little design-by-contract library to test out more advanced c++20 features. Looks like clang doesn't do std::source_location right. See https://github.com/llvm/llvm-project/issues/56379
This commit is contained in:
parent
7bec6fe40e
commit
c736387063
2 changed files with 90 additions and 20 deletions
51
PPP3/goc.cpp
51
PPP3/goc.cpp
|
@ -5,34 +5,45 @@
|
|||
#include <string>
|
||||
#include <iterator>
|
||||
#include <ctime>
|
||||
#include "dbc.h"
|
||||
|
||||
using namespace std;
|
||||
using namespace fmt;
|
||||
|
||||
int main()
|
||||
{
|
||||
regex err_re("(.*?):([0-9]+):([0-9]+):\\s*(.*?):\\s*(.*)");
|
||||
string line;
|
||||
smatch err;
|
||||
ofstream stats_out;
|
||||
stats_out.open("stats.csv", ios::out | ios::app);
|
||||
auto t = time(nullptr);
|
||||
auto tm = *std::gmtime(&t);
|
||||
try {
|
||||
regex err_re("(.*?):([0-9]+):([0-9]+):\\s*(.*?):\\s*(.*)");
|
||||
string line;
|
||||
smatch err;
|
||||
ofstream stats_out;
|
||||
stats_out.open("stats.csv", ios::out | ios::app);
|
||||
auto t = time(nullptr);
|
||||
auto tm = *std::gmtime(&t);
|
||||
|
||||
while(getline(cin, line)) {
|
||||
print("{}\n", line);
|
||||
if(regex_match(line, err, err_re)) {
|
||||
string file_name = err[1].str();
|
||||
string line = err[2].str();
|
||||
string col = err[3].str();
|
||||
string type = err[4].str();
|
||||
string message = err[5].str();
|
||||
dbc::log("TEST 1 of the logging thing");
|
||||
dbc::check(stats_out.good(), "Error opening stats.csv file.");
|
||||
dbc::pre("simple test", [&]() { return stats_out.good(); });
|
||||
|
||||
stats_out << put_time(&tm, "%FT%TZ");
|
||||
stats_out << format(",{},{},{},{},{}\n", file_name, line, col, type, message);
|
||||
while(getline(cin, line)) {
|
||||
print("{}\n", line);
|
||||
if(regex_match(line, err, err_re)) {
|
||||
string file_name = err[1].str();
|
||||
string line = err[2].str();
|
||||
string col = err[3].str();
|
||||
string type = err[4].str();
|
||||
string message = err[5].str();
|
||||
|
||||
stats_out << put_time(&tm, "%FT%TZ");
|
||||
stats_out << format(",{},{},{},{},{}\n", file_name, line, col, type, message);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stats_out.close();
|
||||
return 0;
|
||||
stats_out.close();
|
||||
dbc::post("a post test", [&]() { return !stats_out.is_open(); });
|
||||
return 0;
|
||||
} catch(dbc::Error &err) {
|
||||
print("ERROR: {}\n", err.message);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue