67 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
#include <cstdio>
 | 
						|
#include <src/misc/time.h>
 | 
						|
#include <src/log/LogUtils.h>
 | 
						|
#include <iostream>
 | 
						|
 | 
						|
using namespace std;
 | 
						|
using namespace std::chrono;
 | 
						|
 | 
						|
inline void test(const std::string& str, const nanoseconds& expected, bool expectResult) {
 | 
						|
    string error;
 | 
						|
    auto result = period::parse(str, error);
 | 
						|
    if(expectResult) {
 | 
						|
        if(!error.empty()) {
 | 
						|
            cerr << "Test '" << str << "' failed. Got unexpected error: " << error << endl;
 | 
						|
        } else {
 | 
						|
            if(result == expected) {
 | 
						|
                cout << "Test '" << str << "' Succeed. Got expected result" << endl;
 | 
						|
            } else if(result != expected) {
 | 
						|
                cout << "Test '" << str << "' failed. Got unexpected result: " << result.count() << ". Expected: " << expected.count() << endl;
 | 
						|
            } else {
 | 
						|
                cout << "Test '" << str << "' Succeed. Got expected result" << endl;
 | 
						|
            }
 | 
						|
        }
 | 
						|
    } else {
 | 
						|
        if(error.empty()) {
 | 
						|
            cerr << "Test '" << str << "' failed. Expected error, but got success!" << endl;
 | 
						|
        } else {
 | 
						|
            cout << "Test '" << str << "' Succeed. Got expected error: " << error << endl;
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
int stack() {
 | 
						|
    char buffer[1];
 | 
						|
    for(register int i = 0; i <= 32; i++) {
 | 
						|
        *(buffer + i) = 3;
 | 
						|
        *(buffer - i) = 3;
 | 
						|
    }
 | 
						|
    return buffer[0];
 | 
						|
}
 | 
						|
 | 
						|
int main(int argc, char* argv[]) {
 | 
						|
    cout << "Stack: " << stack() << endl;
 | 
						|
    terminal::install();
 | 
						|
    auto config = make_shared<logger::LoggerConfig>();
 | 
						|
    config->logfileLevel = spdlog::level::off;
 | 
						|
    config->terminalLevel = spdlog::level::trace;
 | 
						|
    logger::setup(config);
 | 
						|
 | 
						|
    test("1h", hours(1), true);
 | 
						|
    test("2h", hours(2), true);
 | 
						|
    test("30h", hours(30), true);
 | 
						|
 | 
						|
    test("30s", seconds(30), true);
 | 
						|
    test("30s?", seconds(30), false);
 | 
						|
    test("s", seconds(30), false);
 | 
						|
 | 
						|
    test("1m:30s", seconds(90), true);
 | 
						|
 | 
						|
    logMessageFmt(false, 0, "Hello {}", "A", "B", "C");
 | 
						|
    logTrace("Hello World");
 | 
						|
    logTrace(0, "Hello World");
 | 
						|
    logTrace(0, "Hello World");
 | 
						|
    logTrace(0, "Hello {:1}", "World");
 | 
						|
    logTraceFmt(true, 0, "Hello {:2}", "World", "Dux");
 | 
						|
    return 0;
 | 
						|
} |