golang 故障模拟工具failpoint的使用】的更多相关文章

测试是功能上线之前的重要环节. 测试过程中,要尽量覆盖各种场景.故障情况或异常情况下的场景测试,也是必不可少的. 如何模拟故障呢? 在FreeBSD 中, failpoints经常用来模拟故障. 在golang,也有failpoint的实现,就是目前pingcap 公司的开源项目failpoint. 下面介绍golang中的failpoint的实现. 1.安装failpoint工具 cd $GOPATH/src mkdir -p github.com/pingcap cd github.com/…
分享常用的GoLang包工具 包名 链接地址 备注 Machinery异步队列 https://github.com/RichardKnop/machinery Mqtt通信 github.com/eclipse/paho.mqtt.golang go文档http://www.eclipse.org/paho/clients/golang/ 微信开发 https://github.com/chanxuehong/wechat fasthttp包 github.com/valyala/fastht…
使用 golang 操作数据库的同学都会遇到一个问题 —— 根据数据表结构创建对应的 struct 模型.因为 golang 的使用首字母控制可见范围,我们经常要设计 struct 字段名和数据库字段名的对应关系.久而久之,这是一个非常繁琐的过程.事情变得繁琐了,我们都会想,有没有好的办法自动生成 model 呢?今天,记录一种自动生成代码的方法 —— xorm 工具. 关于 xorm xorm是一个简单而强大的Go语言ORM库. 通过它可以使数据库操作非常简便.我在项目中经常使用,它的特性如下…
包名 链接地址 备注 Machinery异步队列 https://github.com/RichardKnop/machinery Mqtt通信 github.com/eclipse/paho.mqtt.golang go文档http://www.eclipse.org/paho/clients/golang/ 微信开发 https://github.com/chanxuehong/wechat fasthttp包 github.com/valyala/fasthttp 数据库操作包 https…
在go1.11版本前,想要对go语言包进行管理,只能依赖第三方库实现,比如Vendor,GoVendor,GoDep,Dep,Glide等等. 1. 开启GO111MODULE 用环境变量 GO111MODULE 开启或关闭模块支持,它有三个可选值:off.on.auto,默认值是 auto. GO111MODULE=off 无模块支持,go 会从 GOPATH 和 vendor 文件夹寻找包. GO111MODULE=on 模块支持,go 会忽略 GOPATH 和 vendor 文件夹,只根据…
安装 参考github的说明 添加GOPATH 创建workspace 创建新文件 运行程序 Liteide中运行程序有两种方式: FR(FileRun)是编译并运行单个文件,可以使用Shift + Alt + R快捷键: BR(BuildAndRun)是编译运行整个项目,可以使用Command + R快捷键. 编译运行单个文件和编译运行整个项目的区别在于: 编译运行整个项目的时候,只允许一个源文件中有main函数: 编译运行单个项目的时候,允许多个源文件包含main函数,运行的时候并不会出现报…
读前必读,下面所有内容都是来自这里. 放到这里的目的,就是为了比对一下,哪里的读者多.平心而论,同样的Markdown,博客园排版真心X看,怎么瞅怎么X看.(X := '难' || X :='耐' || X := '好' ) 都是原创,不是抄袭.如果真要拿去,也所谓,好歹给我留个名,也不枉费码字之苦. 您说是不是? 话接上节,继续聊.如果你此时此刻看到了"Hello God, My Golang.",那么检查一下有没有找到一首劲爆的音乐,旁边有没有沏好一杯好茶. 如果有,就关掉音乐喝掉…
golang动态加载原生代码思路(非plugin,非so文件.使用mmap形式运行机器码,可释放) 1.用go tool objdump,可以看到任意函数的机器码.汇编指令.偏移.(go源码下面有一个cmd/internal/goobj包,可以读到.o文件的重定向信息,更好.) 2.修改里面的golang内部函数的相对跳转,指向加载者相同的函数的地址(仍然可以用go tool objdump看到函数的初始地址),常见的有runtime.newobject.runtime.convT2Eslice…
概要 golang 的包管理一直没有官方统一的解决方案,因此也产生了很多非官方的包管理工具. 之前我一直使用的 gb(https://getgb.io/) 能够很好的隔开各个 golang 工程,当时 gb 创建的工程不太融入已有的 GOPATH 中. gb 相当于是把工程的目录作为 GOPATH,并且它的 vendor 目录也和 golang 自己的 vendor 不太一样. dep 的 Roadmap 中已经制定了成为 golang 官方包管理工具的计划, 所以,使用 dep 来组织自己的…
概述 最近使用golang开发项目时, 发现有时需要同时进行多个golang项目. 在这种情况下, 如果把所有的项目都放在 GOPATH 之下, 不仅管理麻烦(因为各个项目需要提交到不同的代码库), 而且编译的时候也不方便(如果不指定项目, 就会编译所有的项目). 于是, 就想如何将各个项目在物理上就隔离开. 我是用emacs开发golang项目的, 所以隔离之后, 还要考虑如何让emacs的golang插件能够正常工作. 使用 gb 隔离各个 golang 项目 gb 是用来管理golang项…