随想录(内核模块的测试方法)
来源:互联网 发布:怎样制作app软件 编辑:程序博客网 时间:2024/06/01 21:10
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】
今天,在网上无意看到kernel里面有内核模块的测试代码,觉得很有意思,放到这里和大家一起学习一下。
#include <linux/sort.h>#include <linux/slab.h>#include <linux/module.h>/* a simple boot-time regression test */#define TEST_LEN 1000static int __init cmpint(const void *a, const void *b){return *(int *)a - *(int *)b;}static int __init test_sort_init(void){int *a, i, r = 1, err = -ENOMEM;a = kmalloc_array(TEST_LEN, sizeof(*a), GFP_KERNEL);if (!a)return err;for (i = 0; i < TEST_LEN; i++) {r = (r * 725861) % 6599;a[i] = r;}sort(a, TEST_LEN, sizeof(*a), cmpint, NULL);err = -EINVAL;for (i = 0; i < TEST_LEN-1; i++)if (a[i] > a[i+1]) {pr_err("test has failed\n");goto exit;}err = 0;pr_info("test passed\n");exit:kfree(a);return err;}module_init(test_sort_init);MODULE_LICENSE("GPL");
很多同学其实不喜欢写测试函数,这是不正确的。一般来说,不管是驱动代码、上层代码,甚至是内核代码,这些都是要进行测试的。好的代码不光要有好的逻辑、好的维护性,它还要有好的测试性、好的可调性和好的扩展性。
一份好的代码不是那么容易写出来的。
阅读全文
1 0
- 随想录(内核模块的测试方法)
- 随想录(设计软件模块的接口)
- 随想录(做自己代码的测试工程师)
- 随想录(如何学习内核)
- 随想录(webbench压力测试代码)
- 《软件随想录》的随想
- 随想录(招聘怎样的员工)
- 随想录(linux的四个维度)
- 随想录(linux的四个维度)
- 随想录(linux的四个维度)
- 随想录(程序员的缺点)
- 随想录(程序员的缺点)
- 随想录(程序员的缺点)
- 随想录(程序员的缺点)
- 随想录(程序员的缺点)
- 随想录(程序员的缺点) .
- 随想录(程序员的缺点)
- 随想录(开源代码的学习方法)
- linux驱动链表的使用
- 手残,双硬盘(SSD+HDD)双系统(Win10+ubuntu)用easyBCD删除win10引导项怎么办?戳这里
- jquery 中stop()方法总结
- 使用Jquery Easy UI要导入的js顺序
- C++的那些事
- 随想录(内核模块的测试方法)
- LibreOJ β Round #3
- Java集合之LinkedHashMap源码解析
- websocket实现多房间聊天室
- POJ 2478 Farey Sequence & POJ 3090 Visible Lattice Points (欧拉函数)
- P1730 最小密度路径
- 修复U盘
- 【大数问题】C++大数问题模板
- 50道Java线程面试题