[tests] Porting VM tests for calling deleted class members to the hot reload framework

Change-Id: I0104f25f5522b38bfe09a9546d602a2b0884c008
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/410942
Commit-Queue: Mark Zhou <markzipan@google.com>
Reviewed-by: Nate Biggs <natebiggs@google.com>
This commit is contained in:
MarkZ
2025-02-24 10:36:25 -08:00
committed by Commit Queue
parent 1084ca1ed6
commit 73257e4397
24 changed files with 881 additions and 0 deletions
@@ -0,0 +1,30 @@
// Copyright (c) 2025, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import 'package:expect/expect.dart';
import 'package:reload_test/reload_test_utils.dart';
// Adapted from:
// https://github.com/dart-lang/sdk/blob/c0819ff165a2557e6537700363594f2ddaf2a96e/runtime/vm/isolate_reload_test.cc#L3256
var retained;
class C {
factory C.deleted() => new C();
C();
}
helper() {
retained = () => C.deleted().toString();
return retained();
}
Future<void> main() async {
helper();
await hotReload();
Expect.throws<NoSuchMethodError>(
helper,
(error) => '$error'.contains('deleted'),
);
}
@@ -0,0 +1,41 @@
// Copyright (c) 2025, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import 'package:expect/expect.dart';
import 'package:reload_test/reload_test_utils.dart';
// Adapted from:
// https://github.com/dart-lang/sdk/blob/c0819ff165a2557e6537700363594f2ddaf2a96e/runtime/vm/isolate_reload_test.cc#L3256
var retained;
helper() {
return retained();
}
Future<void> main() async {
helper();
await hotReload();
Expect.throws<NoSuchMethodError>(
helper,
(error) => '$error'.contains('deleted'),
);
}
/** DIFF **/
/*
var retained;
-class C {
- factory C.deleted() => new C();
- C();
-}
-
helper() {
- retained = () => C.deleted().toString();
return retained();
}
*/
@@ -0,0 +1,30 @@
// Copyright (c) 2025, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import 'package:expect/expect.dart';
import 'package:reload_test/reload_test_utils.dart';
// Adapted from:
// https://github.com/dart-lang/sdk/blob/c0819ff165a2557e6537700363594f2ddaf2a96e/runtime/vm/isolate_reload_test.cc#L3287
var retained;
class C {
factory C.deleted() => new C();
C();
}
helper() {
retained = () => C.deleted().toString();
return retained();
}
Future<void> main() async {
helper();
await hotReload();
Expect.throws<NoSuchMethodError>(
helper,
(error) => '$error'.contains('deleted'),
);
}
@@ -0,0 +1,46 @@
// Copyright (c) 2025, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import 'package:expect/expect.dart';
import 'package:reload_test/reload_test_utils.dart';
// Adapted from:
// https://github.com/dart-lang/sdk/blob/c0819ff165a2557e6537700363594f2ddaf2a96e/runtime/vm/isolate_reload_test.cc#L3287
var retained;
class C {
factory C.deleted(newParameter) => new C();
C();
}
helper() {
return retained();
}
Future<void> main() async {
helper();
await hotReload();
Expect.throws<NoSuchMethodError>(
helper,
(error) => '$error'.contains('deleted'),
);
}
/** DIFF **/
/*
var retained;
class C {
- factory C.deleted() => new C();
+ factory C.deleted(newParameter) => new C();
C();
}
helper() {
- retained = () => C.deleted().toString();
return retained();
}
*/
@@ -0,0 +1,30 @@
// Copyright (c) 2025, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import 'package:expect/expect.dart';
import 'package:reload_test/reload_test_utils.dart';
// Adapted from:
// https://github.com/dart-lang/sdk/blob/c0819ff165a2557e6537700363594f2ddaf2a96e/runtime/vm/isolate_reload_test.cc#L3318
var retained;
class C {
factory C.deleted() => new C();
C();
}
helper() {
retained = () => C.deleted().toString();
return retained();
}
Future<void> main() async {
helper();
await hotReload();
Expect.throws<NoSuchMethodError>(
helper,
(error) => '$error'.contains('deleted'),
);
}
@@ -0,0 +1,41 @@
// Copyright (c) 2025, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import 'package:expect/expect.dart';
import 'package:reload_test/reload_test_utils.dart';
// Adapted from:
// https://github.com/dart-lang/sdk/blob/c0819ff165a2557e6537700363594f2ddaf2a96e/runtime/vm/isolate_reload_test.cc#L3318
var retained;
helper() {
return retained();
}
Future<void> main() async {
helper();
await hotReload();
Expect.throws<NoSuchMethodError>(
helper,
(error) => '$error'.contains('deleted'),
);
}
/** DIFF **/
/*
var retained;
-class C {
- factory C.deleted() => new C();
- C();
-}
-
helper() {
- retained = () => C.deleted().toString();
return retained();
}
*/
@@ -0,0 +1,31 @@
// Copyright (c) 2025, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import 'package:expect/expect.dart';
import 'package:reload_test/reload_test_utils.dart';
// Adapted from:
// https://github.com/dart-lang/sdk/blob/13f5fc6b168d8b6e5843d17fb9ba77f1343a7dfe/runtime/vm/isolate_reload_test.cc#L2980
var retained;
class C {
static deleted() {
return 'hello';
}
}
helper() {
retained = () => C.deleted();
return retained();
}
Future<void> main() async {
helper();
await hotReload();
Expect.throws<NoSuchMethodError>(
helper,
(error) => '$error'.contains('deleted'),
);
}
@@ -0,0 +1,42 @@
// Copyright (c) 2025, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import 'package:expect/expect.dart';
import 'package:reload_test/reload_test_utils.dart';
// Adapted from:
// https://github.com/dart-lang/sdk/blob/13f5fc6b168d8b6e5843d17fb9ba77f1343a7dfe/runtime/vm/isolate_reload_test.cc#L2980
var retained;
helper() {
return retained();
}
Future<void> main() async {
helper();
await hotReload();
Expect.throws<NoSuchMethodError>(
helper,
(error) => '$error'.contains('deleted'),
);
}
/** DIFF **/
/*
// https://github.com/dart-lang/sdk/blob/13f5fc6b168d8b6e5843d17fb9ba77f1343a7dfe/runtime/vm/isolate_reload_test.cc#L2980
var retained;
-
-class C {
- static deleted() {
- return 'hello';
- }
-}
-
helper() {
- retained = () => C.deleted();
return retained();
}
*/
@@ -0,0 +1,31 @@
// Copyright (c) 2025, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import 'package:expect/expect.dart';
import 'package:reload_test/reload_test_utils.dart';
// Adapted from:
// https://github.com/dart-lang/sdk/blob/13f5fc6b168d8b6e5843d17fb9ba77f1343a7dfe/runtime/vm/isolate_reload_test.cc#L3010
var retained;
class C {
static deleted() {
return 'hello';
}
}
helper() {
retained = () => C.deleted();
return retained();
}
Future<void> main() async {
helper();
await hotReload();
Expect.throws<NoSuchMethodError>(
helper,
(error) => '$error'.contains('deleted'),
);
}
@@ -0,0 +1,48 @@
// Copyright (c) 2025, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import 'package:expect/expect.dart';
import 'package:reload_test/reload_test_utils.dart';
// Adapted from:
// https://github.com/dart-lang/sdk/blob/13f5fc6b168d8b6e5843d17fb9ba77f1343a7dfe/runtime/vm/isolate_reload_test.cc#L3010
var retained;
class C {
static deleted(newParameter) {
return 'hello';
}
}
helper() {
return retained();
}
Future<void> main() async {
helper();
await hotReload();
Expect.throws<NoSuchMethodError>(
helper,
(error) => '$error'.contains('deleted'),
);
}
/** DIFF **/
/*
var retained;
class C {
- static deleted() {
+ static deleted(newParameter) {
return 'hello';
}
}
helper() {
- retained = () => C.deleted();
return retained();
}
*/
@@ -0,0 +1,32 @@
// Copyright (c) 2025, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import 'package:expect/expect.dart';
import 'package:reload_test/reload_test_utils.dart';
// Adapted from:
// https://github.com/dart-lang/sdk/blob/13f5fc6b168d8b6e5843d17fb9ba77f1343a7dfe/runtime/vm/isolate_reload_test.cc#L3041
var retained;
first(flag) {
if (flag) throw 'first!';
}
class C {
static deleted(_) {
return 'hello';
}
}
helper() {
retained = (bool flag) => C.deleted(first(flag));
return retained(false);
}
Future<void> main() async {
helper();
await hotReload();
Expect.throws(helper, (error) => '$error'.contains('first!'));
}
@@ -0,0 +1,48 @@
// Copyright (c) 2025, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import 'package:expect/expect.dart';
import 'package:reload_test/reload_test_utils.dart';
// Adapted from:
// https://github.com/dart-lang/sdk/blob/13f5fc6b168d8b6e5843d17fb9ba77f1343a7dfe/runtime/vm/isolate_reload_test.cc#L3041
var retained;
first(flag) {
if (flag) throw 'first!';
}
class C {}
helper() {
return retained(true);
}
Future<void> main() async {
helper();
await hotReload();
Expect.throws(helper, (error) => '$error'.contains('first!'));
}
/** DIFF **/
/*
if (flag) throw 'first!';
}
-class C {
- static deleted(_) {
- return 'hello';
- }
-}
+class C {}
helper() {
- retained = (bool flag) => C.deleted(first(flag));
- return retained(false);
+ return retained(true);
}
Future<void> main() async {
*/
@@ -0,0 +1,29 @@
// Copyright (c) 2025, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import 'package:expect/expect.dart';
import 'package:reload_test/reload_test_utils.dart';
// Adapted from:
// https://github.com/dart-lang/sdk/blob/c0819ff165a2557e6537700363594f2ddaf2a96e/runtime/vm/isolate_reload_test.cc#L3164
var retained;
class C {
C.deleted();
}
helper() {
retained = () => C.deleted().toString();
return retained();
}
Future<void> main() async {
helper();
await hotReload();
Expect.throws<NoSuchMethodError>(
helper,
(error) => '$error'.contains('deleted'),
);
}
@@ -0,0 +1,43 @@
// Copyright (c) 2025, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import 'package:expect/expect.dart';
import 'package:reload_test/reload_test_utils.dart';
// Adapted from:
// https://github.com/dart-lang/sdk/blob/c0819ff165a2557e6537700363594f2ddaf2a96e/runtime/vm/isolate_reload_test.cc#L3164
var retained;
class C {}
helper() {
return retained();
}
Future<void> main() async {
helper();
await hotReload();
Expect.throws<NoSuchMethodError>(
helper,
(error) => '$error'.contains('deleted'),
);
}
/** DIFF **/
/*
var retained;
-class C {
- C.deleted();
-}
+class C {}
helper() {
- retained = () => C.deleted().toString();
return retained();
}
*/
@@ -0,0 +1,29 @@
// Copyright (c) 2025, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import 'package:expect/expect.dart';
import 'package:reload_test/reload_test_utils.dart';
// Adapted from:
// https://github.com/dart-lang/sdk/blob/c0819ff165a2557e6537700363594f2ddaf2a96e/runtime/vm/isolate_reload_test.cc#L3195
var retained;
class C {
C.deleted();
}
helper() {
retained = () => C.deleted().toString();
return retained();
}
Future<void> main() async {
helper();
await hotReload();
Expect.throws<NoSuchMethodError>(
helper,
(error) => '$error'.contains('deleted'),
);
}
@@ -0,0 +1,44 @@
// Copyright (c) 2025, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import 'package:expect/expect.dart';
import 'package:reload_test/reload_test_utils.dart';
// Adapted from:
// https://github.com/dart-lang/sdk/blob/c0819ff165a2557e6537700363594f2ddaf2a96e/runtime/vm/isolate_reload_test.cc#L3195
var retained;
class C {
C.deleted(newParameter);
}
helper() {
return retained();
}
Future<void> main() async {
helper();
await hotReload();
Expect.throws<NoSuchMethodError>(
helper,
(error) => '$error'.contains('deleted'),
);
}
/** DIFF **/
/*
var retained;
class C {
- C.deleted();
+ C.deleted(newParameter);
}
helper() {
- retained = () => C.deleted().toString();
return retained();
}
*/
@@ -0,0 +1,29 @@
// Copyright (c) 2025, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import 'package:expect/expect.dart';
import 'package:reload_test/reload_test_utils.dart';
// Adapted from:
// https://github.com/dart-lang/sdk/blob/c0819ff165a2557e6537700363594f2ddaf2a96e/runtime/vm/isolate_reload_test.cc#L3226
var retained;
class C {
C.deleted();
}
helper() {
retained = () => C.deleted().toString();
return retained();
}
Future<void> main() async {
helper();
await hotReload();
Expect.throws<NoSuchMethodError>(
helper,
(error) => '$error'.contains('deleted'),
);
}
@@ -0,0 +1,40 @@
// Copyright (c) 2025, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import 'package:expect/expect.dart';
import 'package:reload_test/reload_test_utils.dart';
// Adapted from:
// https://github.com/dart-lang/sdk/blob/c0819ff165a2557e6537700363594f2ddaf2a96e/runtime/vm/isolate_reload_test.cc#L3226
var retained;
helper() {
return retained();
}
Future<void> main() async {
helper();
await hotReload();
Expect.throws<NoSuchMethodError>(
helper,
(error) => '$error'.contains('deleted'),
);
}
/** DIFF **/
/*
var retained;
-class C {
- C.deleted();
-}
-
helper() {
- retained = () => C.deleted().toString();
return retained();
}
*/
@@ -0,0 +1,31 @@
// Copyright (c) 2025, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import 'package:expect/expect.dart';
import 'package:reload_test/reload_test_utils.dart';
// Adapted from:
// https://github.com/dart-lang/sdk/blob/13f5fc6b168d8b6e5843d17fb9ba77f1343a7dfe/runtime/vm/isolate_reload_test.cc#L3073
var retained;
class C {
static get deleted {
return 'hello';
}
}
helper() {
retained = () => C.deleted;
return retained();
}
Future<void> main() async {
helper();
await hotReload();
Expect.throws<NoSuchMethodError>(
helper,
(error) => '$error'.contains('deleted'),
);
}
@@ -0,0 +1,42 @@
// Copyright (c) 2025, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import 'package:expect/expect.dart';
import 'package:reload_test/reload_test_utils.dart';
// Adapted from:
// https://github.com/dart-lang/sdk/blob/13f5fc6b168d8b6e5843d17fb9ba77f1343a7dfe/runtime/vm/isolate_reload_test.cc#L3073
var retained;
helper() {
return retained();
}
Future<void> main() async {
helper();
await hotReload();
Expect.throws<NoSuchMethodError>(
helper,
(error) => '$error'.contains('deleted'),
);
}
/** DIFF **/
/*
var retained;
-class C {
- static get deleted {
- return 'hello';
- }
-}
-
helper() {
- retained = () => C.deleted;
return retained();
}
*/
@@ -0,0 +1,29 @@
// Copyright (c) 2025, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import 'package:expect/expect.dart';
import 'package:reload_test/reload_test_utils.dart';
// Adapted from:
// https://github.com/dart-lang/sdk/blob/13f5fc6b168d8b6e5843d17fb9ba77f1343a7dfe/runtime/vm/isolate_reload_test.cc#L3103
var retained;
class C {
static set deleted(x) {}
}
helper() {
retained = () => C.deleted = 'hello';
return retained();
}
Future<void> main() async {
helper();
await hotReload();
Expect.throws<NoSuchMethodError>(
helper,
(error) => '$error'.contains('deleted'),
);
}
@@ -0,0 +1,40 @@
// Copyright (c) 2025, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import 'package:expect/expect.dart';
import 'package:reload_test/reload_test_utils.dart';
// Adapted from:
// https://github.com/dart-lang/sdk/blob/13f5fc6b168d8b6e5843d17fb9ba77f1343a7dfe/runtime/vm/isolate_reload_test.cc#L3103
var retained;
helper() {
return retained();
}
Future<void> main() async {
helper();
await hotReload();
Expect.throws<NoSuchMethodError>(
helper,
(error) => '$error'.contains('deleted'),
);
}
/** DIFF **/
/*
var retained;
-class C {
- static set deleted(x) {}
-}
-
helper() {
- retained = () => C.deleted = 'hello';
return retained();
}
*/
@@ -0,0 +1,31 @@
// Copyright (c) 2025, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import 'package:expect/expect.dart';
import 'package:reload_test/reload_test_utils.dart';
// Adapted from:
// https://github.com/dart-lang/sdk/blob/13f5fc6b168d8b6e5843d17fb9ba77f1343a7dfe/runtime/vm/isolate_reload_test.cc#L3133
var retained;
first(flag) {
if (flag) throw 'first!';
return 'hello';
}
class C {
static set deleted(x) {}
}
helper() {
retained = (bool flag) => C.deleted = first(flag);
return retained(false);
}
Future<void> main() async {
helper();
await hotReload();
Expect.throws(helper, (error) => '$error'.contains('first!'));
}
@@ -0,0 +1,44 @@
// Copyright (c) 2025, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import 'package:expect/expect.dart';
import 'package:reload_test/reload_test_utils.dart';
// Adapted from:
// https://github.com/dart-lang/sdk/blob/13f5fc6b168d8b6e5843d17fb9ba77f1343a7dfe/runtime/vm/isolate_reload_test.cc#L3133
var retained;
first(flag) {
if (flag) throw 'first!';
return 'hello';
}
helper() {
return retained(true);
}
Future<void> main() async {
helper();
await hotReload();
Expect.throws(helper, (error) => '$error'.contains('first!'));
}
/** DIFF **/
/*
return 'hello';
}
-class C {
- static set deleted(x) {}
-}
-
helper() {
- retained = (bool flag) => C.deleted = first(flag);
- return retained(false);
+ return retained(true);
}
Future<void> main() async {
*/