It would accidentally compare a null old approval map with the new approvals
instead of using an empty map for the old approvals.
While here, remove debug code that shouldn't have been committed.
Change-Id: I071bc6fc830bbb0b0cec310a189c0ef0a46f2bb8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98000
Reviewed-by: Alexander Thomas <athom@google.com>
This change replaces kernel AST declarations of fields and functions
with bytecode declarations.
Size of dilp files is reduced by 11-12%.
Startup latency:
Time to the first full frame: 1.945s -> 1.687s
FinalizeClass: 554ms -> 277ms
FinishClassLoading: 296ms -> 156ms
There are following regressions in bytecode mode, which will be fixed
in future:
* dart:mirrors are not supported yet (implementation of mirrors relies
on reading kernel AST in certain cases).
As the result, lib_2/mirrors/* tests fail.
* native extensions are not supported yet (annotations on libraries
and classes in AST are cleaned up as they could reference members
which are now removed from AST).
As the result, standalone_2/entrypoints_verification_test test fails.
* language_2/spread_collections/const_error_test/* tests fail
due to https://github.com/dart-lang/sdk/issues/36286.
Change-Id: I5130f401fd7b84038b136136e7ccc1a6e51b6cea
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/97561
Commit-Queue: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
* Move FFI tests into a separate test suite.
They never belonged in standalone_2/ since they are not only available in
the standalone VM. Also, we want to have a separate status file.
* Add new "SharedObjects" option to test files to copy needed shared objects
to the Android device for testing.
* Add support to compiler/runtime_configuration.dart for testing JIT-mode on Android.
* Add new configurations and builders to test_matrix.json to test JIT-mode on Android.
* Clean up status file entries for FFI (we didn't need to special-case stress & subtype tests).
Change-Id: Ifb32ef7051754f477d00ecd7a0f9b19ca8a66eae
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/97334
Commit-Queue: Samir Jindel <sjindel@google.com>
Reviewed-by: William Hesse <whesse@google.com>
Reviewed-by: Daco Harkes <dacoharkes@google.com>
The bug in question has been fixed, but this makes sure nobody accidentally
uses a buggy version of approve_results and causes builders to fail.
Change-Id: Iec6f87b960878093c7029f042f7d0697eccf5734
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/97514
Reviewed-by: Alexander Thomas <athom@google.com>
This change fixes that approve_results forgot to insert the primary keys for
pre-approval of new tests without any existing approval. This change also
fixes approve_results crashing on approvals without a result and no
pre-approvals field.
Change-Id: I979fa39005d72926a6a295d12aa6a7c505439e0f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/97637
Reviewed-by: William Hesse <whesse@google.com>
This may not be the correct fix, but it seems to prevent the crash
that's currently affecting several build bots. Not sure where the bad
approval entry came from.
Change-Id: Iac683f01c4d0750103b190f8ab289f8374eedf6d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/97685
Reviewed-by: William Hesse <whesse@google.com>
The matches getter could crash if there was no result but there were approved
results or baseline results. Instead fall back on the matches field from
the baseline or approved results.
TBR=whesse@google.com
Change-Id: Ic57a2833dccb85dd69f2eba5a82bc8a0f7efa2c4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/97622
Reviewed-by: Jonas Termansen <sortie@google.com>
This change adds a 'preapprovals' field to approved_results.json, which is
a map from gerrit Change-Id values to a pre-approval record, containing:
* 'from': What the previous approval was.
* 'result': What the new approval is.
* 'matches': Whether the new approval matches the expectation.
* 'expected': The expectation for the new approval.
* 'preapprover': Who did the preapproval.
* 'preapproved_at': When the preapproval occurred.
tools/approve_results.dart now produces pre-approval records instead of
updating the actual approvals. This ensures pre-approvals don't take
effect immediately and fixes the problem of pre-approving one kind of
failure becoming another kind of failure. The script needed to query the
gerrit API in order to determine the Change-Id of changelists. This query
also lets approve_results know what the latest changelist and lifts the
restriction that the patchset must be supplied when pre-approving.
The innards of approve_results has been refactored so it better can handle
selective modification of approve_results.dart.
approve_results now also checks for race conditions with any other
concurrent approval in interactive mode. This should catch most cases where
people leave approve_results running for long. There still is a small race
condition, so there is no check done in the non-interactive mode as the
results would just have been downloaded anyway.
The new tools/bots/apply_preapprovals.dart script will be used by the
recipe. It locates the outstanding pre-approved changelists and checks
the git history for whether they have landed by searching for their
Change-Id. It then applies their pre-approvals in order, warning about any
merge conflicts. Optionally it uploads the pre-approvals. This will work
for the commit queue where the pre-approvals can be applied temporarily,
and in the continuous integration where the pre-approvals become permanent
approvals.
This change allows empty approval records that only contain preapprovals but
with no actual base approval. tools/bots/compare_results.dart has been
updared to handle that case.
This changelist addresses https://github.com/dart-lang/sdk/issues/36279 by
ensuring only verified fields make it into new approved_results.json records
and adds a temporary workaround for 14 days to remove existing needless
existing fields.
Change-Id: I7b3ff59756dc0d28721c6db480782b4ea983b55d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/97308
Reviewed-by: William Hesse <whesse@google.com>
All configurations are created with the same named configuration,
if there is a named configuration argument.
Change-Id: I2de34a4a503c34e6b24d3edcf0dd06567ed4f0ed
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/97327
Reviewed-by: Jonas Termansen <sortie@google.com>
These new exceptions have no legacy values.
DataCloneError - The object can not be cloned.
EncodingError - The encoding or decoding operation failed.
NotReadableError - The input/output read operation failed
UnknownError - The operation failed for an unknown transient reason (e.g. out of memory).
ConstraintError - A mutation operation in a transaction failed because a constraint was not satisfied.
DataError - Provided data is inadequate.
TransactionInactiveError - A request was placed against a transaction which is currently not active, or which is finished.
ReadOnlyError - The mutating operation was attempted in a "readonly" transaction.
VersionError An attempt was made to open a database using a lower version than the existing version.
OperationError - The operation failed for an operation-specific reason.
NotAllowedError - The request is not allowed by the user agent or the platform in the current context, possibly because the user denied permission.
R=vsm@google.com
Change-Id: I1245bc788fd287d566f42184ebe914165afa95ac
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/97163
Reviewed-by: Vijay Menon <vsm@google.com>
Commit-Queue: Terry Lucas <terry@google.com>
This change makes test.dart handle if the baseline commit hasn't been built
on the requested builder and instead attempts to search for whether there's
results for up to 25 preceding commits, which it then uses as an inexact
baseline.
Closes https://github.com/dart-lang/sdk/issues/36211
Change-Id: Ie44042c67c9460826736f4a2cf159d8d7b455f0b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/96944
Reviewed-by: William Hesse <whesse@google.com>