test: generate gcgort

cczfrluj  于 5个月前  发布在  Go
关注(0)|答案(2)|浏览(44)

e0adc35 测试/gcgort.go 中添加了这个测试。这个测试可能从由生成而不是手写来提高可维护性,通过删除额外的设置代码(如修饰符结构体)来减少重复和狭窄的测试覆盖范围。

这个更改将在 1.11 之后进行,我的意见是,只有在测试策略也更新为指定的垃圾回收器、类型和并发交互覆盖范围时,才应该这样做。目前,测试失败依赖于运行时实现引发的恐慌。

来源于 https://go-review.googlesource.com/c/go/+/93715 与 @aclements 的讨论。

vvppvyoh

vvppvyoh1#

我尝试去除一些重复的here。输出结果与原始文件相同,只是有一些无关紧要的差异,如变量名和注解。这是你想要的结果吗?

of1yzvn4

of1yzvn42#

@burakguven 生成方法对我来说是新的,看起来是一个很好的进步。尽管如此,由于模板,生成程序仍然有很多代码。

type modifier 的原因是为了确保编译器捕获到缺失字段的错误,但如果我们正在生成,那么它可能可以从输出中删除(这不是为了测试后续的函数指针)。

理想情况下,测试应该能够在不使运行时恐慌的情况下捕获问题。我在想的是验证 var x 执行后 x+1 的内存是否为正确的值,并且在发生 goroutine 切换时可能会发现由于错误的垃圾回收而导致的内存损坏。感谢你查看这个问题。

相关问题