[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 <vegorov@google.com>
Commit-Queue: Martin Kustermann <kustermann@google.com>
This commit is contained in:
Martin Kustermann
2026-05-28 03:49:20 -07:00
committed by dart-scoped@luci-project-accounts.iam.gserviceaccount.com
parent 5423762c21
commit 2198d25b1e
@@ -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';
}
}