在 e0adc35 测试/gcgort.go 中添加了这个测试。这个测试可能从由生成而不是手写来提高可维护性,通过删除额外的设置代码(如修饰符结构体)来减少重复和狭窄的测试覆盖范围。
这个更改将在 1.11 之后进行,我的意见是,只有在测试策略也更新为指定的垃圾回收器、类型和并发交互覆盖范围时,才应该这样做。目前,测试失败依赖于运行时实现引发的恐慌。
来源于 https://go-review.googlesource.com/c/go/+/93715 与 @aclements 的讨论。
在 e0adc35 测试/gcgort.go 中添加了这个测试。这个测试可能从由生成而不是手写来提高可维护性,通过删除额外的设置代码(如修饰符结构体)来减少重复和狭窄的测试覆盖范围。
这个更改将在 1.11 之后进行,我的意见是,只有在测试策略也更新为指定的垃圾回收器、类型和并发交互覆盖范围时,才应该这样做。目前,测试失败依赖于运行时实现引发的恐慌。
来源于 https://go-review.googlesource.com/c/go/+/93715 与 @aclements 的讨论。
2条答案
按热度按时间vvppvyoh1#
我尝试去除一些重复的here。输出结果与原始文件相同,只是有一些无关紧要的差异,如变量名和注解。这是你想要的结果吗?
of1yzvn42#
@burakguven 生成方法对我来说是新的,看起来是一个很好的进步。尽管如此,由于模板,生成程序仍然有很多代码。
type modifier
的原因是为了确保编译器捕获到缺失字段的错误,但如果我们正在生成,那么它可能可以从输出中删除(这不是为了测试后续的函数指针)。理想情况下,测试应该能够在不使运行时恐慌的情况下捕获问题。我在想的是验证
var x
执行后x+1
的内存是否为正确的值,并且在发生 goroutine 切换时可能会发现由于错误的垃圾回收而导致的内存损坏。感谢你查看这个问题。