Files
sdk/tests/language/deferred/global_test.dart
Lasse R.H. Nielsen f8086c81ae Collect all test-related files in package:expect.
Collects files from `package:async_helper` and `tests/language`
that are generally useful, so that all test-related helpers are
in `package:expect`.

Moves the two libraries from `package:async_helper` into `package:expect`,
and the `tests/language/static_type_helper.dart` file too.

Deprecates `async_minitest.dart`, to follow `minitest.dart`,
expecting the Flutter use of it to have been fixed to not break
on deprecation (I believe Flutter no longer breaks builds on deprecations at all).

Patch 1 is the actual change.
Patch 2+4+8 is changing all existing references to the files.
Patch 6 ignores deprecation in files still using `async_minitest.dart`.

3+5+7+9 are updating this text to make the numbers match.
Then it's just test-expectations and small tweaks from there.

Change-Id: I1b665135b5fef9b9a0c3b340ffe9daf874d0174c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/373120
Reviewed-by: Nate Bosch <nbosch@google.com>
Reviewed-by: Devon Carew <devoncarew@google.com>
Commit-Queue: Lasse Nielsen <lrn@google.com>
2024-10-11 16:53:52 +00:00

61 lines
2.7 KiB
Dart

// Copyright (c) 2014, 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/async_helper.dart';
import 'package:expect/expect.dart';
import "global_lib.dart" deferred as lib;
Object? nonDeferredGlobal = const {};
void main() {
nonDeferredGlobal = null;
asyncStart();
lib.loadLibrary().then((_) {
// Ensure non-deferred globals are not reset when loading a deferred
// library.
Expect.equals(null, nonDeferredGlobal);
Expect.equals("finalConstGlobal", lib.finalConstGlobal);
Expect.equals(0, lib.sideEffectCounter);
Expect.equals("finalNonConstGlobal", lib.finalNonConstGlobal);
Expect.equals(1, lib.sideEffectCounter);
Expect.equals("finalConstGlobal", lib.finalConstGlobal);
Expect.equals("finalNonConstGlobal", lib.finalNonConstGlobal);
Expect.equals("lazyConstGlobal", lib.lazyConstGlobal);
Expect.equals(1, lib.sideEffectCounter);
Expect.equals("lazyNonConstGlobal", lib.lazyNonConstGlobal);
Expect.equals(2, lib.sideEffectCounter);
Expect.equals("finalConstGlobal", lib.readFinalConstGlobal());
Expect.equals("finalNonConstGlobal", lib.readFinalNonConstGlobal());
Expect.equals("lazyConstGlobal", lib.readLazyConstGlobal());
Expect.equals("lazyNonConstGlobal", lib.readLazyNonConstGlobal());
lib.lazyConstGlobal = "lazyConstGlobal_mutated";
lib.lazyNonConstGlobal = "lazyNonConstGlobal_mutated";
Expect.equals("lazyConstGlobal_mutated", lib.lazyConstGlobal);
Expect.equals("lazyNonConstGlobal_mutated", lib.lazyNonConstGlobal);
Expect.equals("lazyConstGlobal_mutated", lib.readLazyConstGlobal());
Expect.equals("lazyNonConstGlobal_mutated", lib.readLazyNonConstGlobal());
Expect.equals(2, lib.sideEffectCounter);
lib.writeLazyConstGlobal("lazyConstGlobal_mutated2");
lib.writeLazyNonConstGlobal("lazyNonConstGlobal_mutated2");
Expect.equals("lazyConstGlobal_mutated2", lib.lazyConstGlobal);
Expect.equals("lazyNonConstGlobal_mutated2", lib.lazyNonConstGlobal);
Expect.equals("lazyConstGlobal_mutated2", lib.readLazyConstGlobal());
Expect.equals("lazyNonConstGlobal_mutated2", lib.readLazyNonConstGlobal());
Expect.mapEquals({}, lib.lazyConstGlobal2);
lib.const1Global = const {'foo': 'bar'};
Expect.equals(2, lib.sideEffectCounter);
Expect.equals(const {'foo': 'bar'}['foo'], lib.const1Global['foo']);
// Try loading the deferred library again, should not reset the globals.
lib.loadLibrary().then((_) {
Expect.equals(const {'foo': 'bar'}['foo'], lib.const1Global['foo']);
asyncEnd();
});
});
}