From 2198d25b1e61e094277e54e1486acd809f59ee66 Mon Sep 17 00:00:00 2001 From: Martin Kustermann Date: Thu, 28 May 2026 03:49:20 -0700 Subject: [PATCH] [vm/testing] Make vm/dart/gc/scavenger_abort_2_test more robust The test tries to keep fields alive by my making a toString() => field1 + field2 + ... Though some field values don't have a `+` operator (e.g. instances of `class C`). Improving TFA precision can infer that some of these `+` operations will throw, which then makes other `+` operations unreachable, which removes usages of those other fields, which will tree shake those other fields, which will make the test not test anymore what it's intended to. => Make the test more robust by using string concatenation instead. Change-Id: I80788af516083ea3d78ad910eb394e4b7e122384 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/507000 Reviewed-by: Slava Egorov Commit-Queue: Martin Kustermann --- .../vm/dart/gc/scavenger_abort_2_test.dart | 92 +++---------------- 1 file changed, 12 insertions(+), 80 deletions(-) diff --git a/runtime/tests/vm/dart/gc/scavenger_abort_2_test.dart b/runtime/tests/vm/dart/gc/scavenger_abort_2_test.dart index c41f690f68c..0c36b47d940 100644 --- a/runtime/tests/vm/dart/gc/scavenger_abort_2_test.dart +++ b/runtime/tests/vm/dart/gc/scavenger_abort_2_test.dart @@ -26,19 +26,8 @@ class A { // Prevent fields from being optimized away as write-only. String toString() { - return field1 + - field2 + - field3 + - field4 + - field5 + - field6 + - field7 + - field8 + - field9 + - field10 + - field11 + - field12 + - field13; + return '$field1$field2$field3$field4$field5$field6$field7' + '$field8$field9$field10$field11$field12$field13'; } } @@ -64,23 +53,9 @@ class B { // Prevent fields from being optimized away as write-only. String toString() { - return field1 + - field2 + - field3 + - field4 + - field5 + - field6 + - field7 + - field8 + - field9 + - field10 + - field11 + - field12 + - field13 + - field14 + - field15 + - field16 + - field17; + return '$field1$field2$field3$field4$field5$field6$field7' + '$field8$field9$field10$field11$field12$field13$field14' + '$field15$field16$field17'; } } @@ -108,25 +83,9 @@ class C { // Prevent fields from being optimized away as write-only. String toString() { - return field1 + - field2 + - field3 + - field4 + - field5 + - field6 + - field7 + - field8 + - field9 + - field10 + - field11 + - field12 + - field13 + - field14 + - field15 + - field16 + - field17 + - field18 + - field19; + return '$field1$field2$field3$field4$field5$field6$field7' + '$field8$field9$field10$field11$field12$field13$field14' + '$field15$field16$field17$field18$field19'; } } @@ -166,37 +125,10 @@ class Old { // Prevent fields from being optimized away as write-only. String toString() { - return new1 + - new2 + - new3 + - new4 + - new5 + - new6 + - new7 + - new8 + - new9 + - new10 + - new11 + - new12 + - new13 + - new14 + - new15 + - new16 + - new17 + - new18 + - new19 + - new20 + - new21 + - new22 + - new23 + - new24 + - new25 + - new26 + - new27 + - new28 + - new29 + - new30 + - new31; + return '$new1$new2$new3$new4$new5$new6$new7$new8$new9$new10' + '$new11$new12$new13$new14$new15$new16$new17$new18$new19$new20' + '$new21$new22$new23$new24$new25$new26$new27$new28$new29$new30' + '$new31'; } }