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 = testsi.func();

clock_update(&test_time);

if(result == true)

{

++passed;

}else if(result == BYPASS)

{

KWARN("SKIPPED: %s",testsi.desc);

++skipped;

}else

{

KERROR("FAILED: %s",testsi.desc);

++failed;

}

char status20;

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);

}

相关推荐
2601_96190170几秒前
SpringCloud2023集成Nacos2.4.3
java
玄昌盛不会编程2 分钟前
LeetCode——2091. 从数组中移除最大值和最小值
java·算法·leetcode
Rain的Java大神之路5 分钟前
如何保证接口幂等
java·经验分享·后端·面试·架构
吴声子夜歌6 分钟前
Java——数组和集合(一)
java·开发语言
Jesse_EC8 分钟前
一个看不见的字符——CRLF 如何让我的 Docker 初始化脚本"静默失踪"
java·后端
深念Y8 分钟前
Nuxt 项目 Docker 构建:从 pnpm+node 迁移到全 bun
java·前端·docker
学长毕业设计12 分钟前
基于SpringBoot的社区鲜奶订购系统的设计与实现(源码+文档+讲解视频)
java·spring boot·后端
如何取名14 分钟前
结合实际业务进行LRU淘汰算法优化设计(数据库开发日志)
数据库·算法
呆呆敲代码的小Y17 分钟前
【游戏开发】C# 中的迭代器
java·开发语言·c#·迭代器
TinyMemory18 分钟前
Java 面向对象核心入门(六):this 关键字完全解析
java·笔记·面向对象·java新手·this关键字