vulkan游戏引擎test_manager实现

1.test_manager.h

#pragma once

#include <defines.h>

#define BYPASS 2

typedef u8 (*PFN_test)();

void test_manager_init();

void test_manager_register_test(PFN_test, char* desc);

void test_manager_run_tests();

2.test_manager.c

#include "test_manager.h"

#include <containers/darray.h>

#include <core/logger.h>

#include <core/kstring.h>

#include <core/clock.h>

typedef struct test_entry{

PFN_test func;

char* desc;

}test_entry;

static test_entry* tests;

void test_manager_init()

{

tests = darray_create(test_entry);

}

void test_manager_register_test(u8 (*PFN_test)(), char* desc)

{

test_entry e;

e.func = PFN_test;

e.desc = desc;

darray_push(tests,e);

}

void test_manager_run_tests()

{

u32 passed = 0;

u32 failed = 0;

u32 skipped = 0;

u32 count = darray_length(tests);

clock total_time;

clock_start(&total_time);

for(u32 i = 0; i<count;++i)

{

clock test_time;

clock_start(&test_time);

u8 result = tests[i].func();

clock_update(&test_time);

if(result == true)

{

++passed;

}else if(result == BYPASS)

{

KWARN("[SKIPPED]: %s",tests[i].desc);

++skipped;

}else

{

KERROR("[FAILED]: %s",tests[i].desc);

++failed;

}

char status[20];

string_format(status, failed ? "*** %d FAILED ***" : "SUCCESS",failed);

clock_update(&total_time);

KINFO("Executed %d of %d (skipping %d) %s (%.6f sec / %.6f sec total", i + 1,count, skipped,status,test_time.elapsed,total_time.elapsed);

}

clock_stop(&total_time);

KINFO("Result: %d passed,%d failed,%d skipped.",passed,failed,skipped);

}

相关推荐
不知名。。。。。。。。44 分钟前
算法 ---哈希表
数据结构·算法·散列表
yi.Ist2 小时前
图论——Floyd算法
c++·算法·图论·floyd
BD_Marathon5 小时前
【Flink】部署模式
java·数据库·flink
鼠鼠我捏,要死了捏8 小时前
深入解析Java NIO多路复用原理与性能优化实践指南
java·性能优化·nio
ningqw8 小时前
SpringBoot 常用跨域处理方案
java·后端·springboot
superlls8 小时前
(Redis)主从哨兵模式与集群模式
java·开发语言·redis
让我们一起加油好吗8 小时前
【基础算法】初识搜索:递归型枚举与回溯剪枝
c++·算法·剪枝·回溯·洛谷·搜索
相信神话20218 小时前
Godot Shader 中 mix 函数的用法
游戏引擎·godot
郝学胜-神的一滴8 小时前
Horse3D游戏引擎研发笔记(七):在QtOpenGL环境下,使用改进的Uniform变量管理方式绘制多彩四边形
c++·3d·unity·游戏引擎·图形渲染·虚幻·unreal engine
stbomei10 小时前
基于 MATLAB 的信号处理实战:滤波、傅里叶变换与频谱分析
算法·matlab·信号处理