This CL allows users to inject the inspect node used inside the
os_fuchsia.cc file instead of having it get created automatically.
This allows us to use inspect in other areas of the flutter/dart
runners. This code needs to be soft transitioned so there will be
follow up CLs after the runners are migrated.
TEST=This was tested against the current version of the runner that does
not use these new codepaths and against a version that does.
Change-Id: I2fff36223aa4021da9cd2051daf6312d2b115492
Bug: fxbug.dev/69558
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/190960
Commit-Queue: Chase Latta <chaselatta@google.com>
Reviewed-by: Zach Anderson <zra@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
The FIDL library `fuchsia.deprecatedtimezone` is going away. There are
different and better ways to obtain the same functionality. This change
removes the dependency on `fuchsia.deprecatedtimezone` from the Dart SDK.
Thus setting the stage for the removal of `fuchsia.deprecatedtimezone`.
Adds inspect metrics that allow whitebox testing of the runners. Here's
a sample `fx iquery` excerpt from a running device, showing a dart
runner exposing the same OS diagnostic metrics.
Adds support for asynchronous timezone updates, which was missing from
previous versions of this commit.
```
dart.cmx:
metadata:
filename = fuchsia.inspect.Tree
component_url = fuchsia-pkg://fuchsia.com/dart_test_debug#meta/dart.cmx
timestamp = 12241877209826
payload:
root:
os:
dst_status = 1
get_profile_status = 0
num_get_profile_calls = 1
num_intl_provider_errors = 0
num_on_change_calls = 0
timezone_content_status = 0
tz_data_close_status = -1
tz_data_status = -1
```
This functionality is guarded by Fuchsia integration tests at
//src/tests/intl.
Tested:
1. (compile locally for Fuchsia and deploy)
```
fx test //src/tests/intl
```
This runs the specific timezone tests that should break if the
functionality itself is broken.
2. Compile dart for Fuchsia and run tests:
The instructions are here: https://github.com/dart-lang/sdk/commit/15dfcca89f0d7eabd60ff049444e203a82dbcb1e
I used the instructions above to build and run all tests from
`dart_test_debug` package. The tests were ran against the main
branch (and then, the tests that failed there were filtered out),
then the remaining tests were ran against a Dart version that
contains this change.
See:
- https://github.com/dart-lang/sdk/issues/42245
- https://github.com/dart-lang/sdk/issues/39650
Prior attempts (most recent first):
- rolled back as it... didn't compile. It turned out, when building the
change with flutter the compilation process has some different
settings, so the compilation of the change worked in flutter, but
didn't in dart. The compilation error is now fixed, and I ran
additional tests: https://dart-review.googlesource.com/c/sdk/+/155582
- rolled back as it had a regression which was not caught by tests.
Tests are fixed now at
https://fuchsia-review.googlesource.com/c/fuchsia/+/409840Fixes#39650
TEST=See "Tested" section above.
Change-Id: Idd78ea42e3ae38dca2ab4c4126e930e53ef8a793
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/185302
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Martin Kustermann <kustermann@google.com>
This reverts commit 9474c2355d.
Reason for revert: Doesn't compile (?)
Original change's description:
> [vm] Replaces fuchsia.deprecatedtimezone
>
> (prior attempt was rolled back as it had a regression which was not
> caught by tests. Tests are fixed now at:
> https://fuchsia-review.googlesource.com/c/fuchsia/+/409840)
>
> The FIDL library fuchsia.deprecatedtimezone is going away. There are
> different and better ways to obtain the same functionality. This change
> removes the dependency on fuchsia.deprecatedtimezone from the Dart SDK.
>
> Adds inspect metrics that allow whitebox testing of the runners. Here's
> a sample `fx iquery` excerpt from a running device, showing both a dart
> and a flutter runner exposing the same OS diagnostic metrics.
>
> Adds support for asynchronous timezone updates, which was missing from
> previous versions of this commit.
>
> ```
> /hub/c/dart_jit_runner.cmx/70981/out/diagnostics:
> /hub/c/dart_jit_runner.cmx/70981/out/diagnostics#os:
> dst_status = 0
> get_profile_status = 0
> timezone_content_status = 0
> tz_data_close_status = 0
> tz_data_status = 0
> /hub/c/flutter_jit_runner.cmx/29567/out/diagnostics:
> /hub/c/flutter_jit_runner.cmx/29567/out/diagnostics#os:
> dst_status = 0
> get_profile_status = 0
> timezone_content_status = 0
> tz_data_close_status = 0
> tz_data_status = 0
> ```
>
> Under nominal operation, all of the above values should be equal to 0.
> Nonzero values indicate an error.
>
> This functionality is guarded by Fuchsia integration tests at
> //src/tests/intl.
>
>
> Tested:
> (compile locally for Fuchsia and deploy)
> fx test //src/tests/intl
>
> See:
> - https://github.com/dart-lang/sdk/issues/42245
> - https://github.com/dart-lang/sdk/issues/39650
>
> Fixes#39650
> TEST=see Tested: above
> Change-Id: Icb72ddd554c263f970e18b9cbbaab7adf43c8710
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/155582
> Auto-Submit: Filip Filmar <fmil@google.com>
> Reviewed-by: Martin Kustermann <kustermann@google.com>
> Commit-Queue: Martin Kustermann <kustermann@google.com>
Change-Id: Ic45c09a49796f8fb8b21cfaa8005db4b57f5eb52
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/185301
Auto-Submit: Filip Filmar <fmil@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Martin Kustermann <kustermann@google.com>
(prior attempt was rolled back as it had a regression which was not
caught by tests. Tests are fixed now at:
https://fuchsia-review.googlesource.com/c/fuchsia/+/409840)
The FIDL library fuchsia.deprecatedtimezone is going away. There are
different and better ways to obtain the same functionality. This change
removes the dependency on fuchsia.deprecatedtimezone from the Dart SDK.
Adds inspect metrics that allow whitebox testing of the runners. Here's
a sample `fx iquery` excerpt from a running device, showing both a dart
and a flutter runner exposing the same OS diagnostic metrics.
Adds support for asynchronous timezone updates, which was missing from
previous versions of this commit.
```
/hub/c/dart_jit_runner.cmx/70981/out/diagnostics:
/hub/c/dart_jit_runner.cmx/70981/out/diagnostics#os:
dst_status = 0
get_profile_status = 0
timezone_content_status = 0
tz_data_close_status = 0
tz_data_status = 0
/hub/c/flutter_jit_runner.cmx/29567/out/diagnostics:
/hub/c/flutter_jit_runner.cmx/29567/out/diagnostics#os:
dst_status = 0
get_profile_status = 0
timezone_content_status = 0
tz_data_close_status = 0
tz_data_status = 0
```
Under nominal operation, all of the above values should be equal to 0.
Nonzero values indicate an error.
This functionality is guarded by Fuchsia integration tests at
//src/tests/intl.
Tested:
(compile locally for Fuchsia and deploy)
fx test //src/tests/intl
See:
- https://github.com/dart-lang/sdk/issues/42245
- https://github.com/dart-lang/sdk/issues/39650Fixes#39650
TEST=see Tested: above
Change-Id: Icb72ddd554c263f970e18b9cbbaab7adf43c8710
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/155582
Auto-Submit: Filip Filmar <fmil@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Martin Kustermann <kustermann@google.com>
This reverts commit e3a682480a.
Reason for revert: Broke time reporting on new
devices.
Original change's description:
> Reland "[vm] Replaces fuchsia.deprecatedtimezone"
>
> This is a reland of 16f09f20b3
>
> The apparent break of internal tests was not caused by this change.
>
> Original change's description:
> > [vm] Replaces fuchsia.deprecatedtimezone
> >
> > (prior attempt was rolled back as it caused downstream tests to time
> > out. See prior attempt at: See:
> > https://dart-review.googlesource.com/c/sdk/+/149206)
> >
> > The FIDL library fuchsia.deprecatedtimezone is going away. There are
> > different and better ways to obtain the same functionality. This change
> > removes the dependency on fuchsia.deprecatedtimezone from the Dart SDK.
> >
> > Adds inspect metrics that allow whitebox testing of the runners. Here's
> > a sample `fx iquery` excerpt from a running device, showing both a dart
> > and a flutter runner exposing the same OS diagnostic metrics.
> >
> > ```
> > /hub/c/dart_jit_runner.cmx/70981/out/diagnostics:
> > /hub/c/dart_jit_runner.cmx/70981/out/diagnostics#os:
> > dst_status = 0
> > get_profile_status = 0
> > timezone_content_status = 0
> > tz_data_close_status = 0
> > tz_data_status = 0
> > /hub/c/flutter_jit_runner.cmx/29567/out/diagnostics:
> > /hub/c/flutter_jit_runner.cmx/29567/out/diagnostics#os:
> > dst_status = 0
> > get_profile_status = 0
> > timezone_content_status = 0
> > tz_data_close_status = 0
> > tz_data_status = 0
> > ```
> >
> > Under nominal operation, all of the above values should be equal to 0.
> > Nonzero values indicate an error.
> >
> > This functionality is guarded by Fuchsia integration tests at
> > //src/tests/intl.
> >
> > Tested:
> > (compile locally for Fuchsia and deploy)
> > fx test //src/tests/intl
> >
> > See:
> > - https://github.com/dart-lang/sdk/issues/42245
> > - https://github.com/dart-lang/sdk/issues/39650
> >
> > Fixes#39650
> >
> > Change-Id: I97f6e17e57000f6eec71246aee670bca65b7e1d1
> > Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/150662
> > Commit-Queue: Filip Filmar <fmil@google.com>
> > Reviewed-by: Martin Kustermann <kustermann@google.com>
>
> Change-Id: I5da6b0f481af0eb42c3b5e74c920588ac2ef5be9
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/151862
> Reviewed-by: Martin Kustermann <kustermann@google.com>
> Commit-Queue: Filip Filmar <fmil@google.com>
TBR=kustermann@google.com,kaushikiska@google.com,fmil@google.com
Change-Id: I6e590cf22347f9153e5203b255f37872dbd91fa6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/155505
Commit-Queue: Filip Filmar <fmil@google.com>
Reviewed-by: Filip Filmar <fmil@google.com>
This reverts commit 444cb00610.
Reason for revert: The original change broke time reporting on new
devices. Since this was a touch-up, it will need to change as well.
Original change's description:
> Fix the #include path for ICU headers
>
> The ICU headers in os_fuchsia.cc have been included with their path
> relative to the dart root directory. They should instead be included
> relative to the paths mentioned in `-I` directives of the current
> compiler invocation.
>
> This allows downstreams that have a different directory organization to
> build dart sdk even if they don't exactly replicate the directory
> structure of dart sdk.
>
> Change-Id: Iec79f261aee5ccc7b74448978fc69244e260400a
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/154163
> Reviewed-by: Martin Kustermann <kustermann@google.com>
> Commit-Queue: Filip Filmar <fmil@google.com>
TBR=kustermann@google.com,kaushikiska@google.com,fmil@google.com
# Not skipping CQ checks because original CL landed > 1 day ago.
Change-Id: Ib2c22c2bfaabb07001acb707d996d90a18df3fd0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/155502
Reviewed-by: Filip Filmar <fmil@google.com>
Commit-Queue: Filip Filmar <fmil@google.com>
The ICU headers in os_fuchsia.cc have been included with their path
relative to the dart root directory. They should instead be included
relative to the paths mentioned in `-I` directives of the current
compiler invocation.
This allows downstreams that have a different directory organization to
build dart sdk even if they don't exactly replicate the directory
structure of dart sdk.
Change-Id: Iec79f261aee5ccc7b74448978fc69244e260400a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/154163
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Filip Filmar <fmil@google.com>
This is a reland of 16f09f20b3
The apparent break of internal tests was not caused by this change.
Original change's description:
> [vm] Replaces fuchsia.deprecatedtimezone
>
> (prior attempt was rolled back as it caused downstream tests to time
> out. See prior attempt at: See:
> https://dart-review.googlesource.com/c/sdk/+/149206)
>
> The FIDL library fuchsia.deprecatedtimezone is going away. There are
> different and better ways to obtain the same functionality. This change
> removes the dependency on fuchsia.deprecatedtimezone from the Dart SDK.
>
> Adds inspect metrics that allow whitebox testing of the runners. Here's
> a sample `fx iquery` excerpt from a running device, showing both a dart
> and a flutter runner exposing the same OS diagnostic metrics.
>
> ```
> /hub/c/dart_jit_runner.cmx/70981/out/diagnostics:
> /hub/c/dart_jit_runner.cmx/70981/out/diagnostics#os:
> dst_status = 0
> get_profile_status = 0
> timezone_content_status = 0
> tz_data_close_status = 0
> tz_data_status = 0
> /hub/c/flutter_jit_runner.cmx/29567/out/diagnostics:
> /hub/c/flutter_jit_runner.cmx/29567/out/diagnostics#os:
> dst_status = 0
> get_profile_status = 0
> timezone_content_status = 0
> tz_data_close_status = 0
> tz_data_status = 0
> ```
>
> Under nominal operation, all of the above values should be equal to 0.
> Nonzero values indicate an error.
>
> This functionality is guarded by Fuchsia integration tests at
> //src/tests/intl.
>
> Tested:
> (compile locally for Fuchsia and deploy)
> fx test //src/tests/intl
>
> See:
> - https://github.com/dart-lang/sdk/issues/42245
> - https://github.com/dart-lang/sdk/issues/39650
>
> Fixes#39650
>
> Change-Id: I97f6e17e57000f6eec71246aee670bca65b7e1d1
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/150662
> Commit-Queue: Filip Filmar <fmil@google.com>
> Reviewed-by: Martin Kustermann <kustermann@google.com>
Change-Id: I5da6b0f481af0eb42c3b5e74c920588ac2ef5be9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/151862
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Filip Filmar <fmil@google.com>
This reverts commit 16f09f20b3.
Reason for revert: Trigger finger. Shouldn't have been merged.
Original change's description:
> [vm] Replaces fuchsia.deprecatedtimezone
>
> (prior attempt was rolled back as it caused downstream tests to time
> out. See prior attempt at: See:
> https://dart-review.googlesource.com/c/sdk/+/149206)
>
> The FIDL library fuchsia.deprecatedtimezone is going away. There are
> different and better ways to obtain the same functionality. This change
> removes the dependency on fuchsia.deprecatedtimezone from the Dart SDK.
>
> Adds inspect metrics that allow whitebox testing of the runners. Here's
> a sample `fx iquery` excerpt from a running device, showing both a dart
> and a flutter runner exposing the same OS diagnostic metrics.
>
> ```
> /hub/c/dart_jit_runner.cmx/70981/out/diagnostics:
> /hub/c/dart_jit_runner.cmx/70981/out/diagnostics#os:
> dst_status = 0
> get_profile_status = 0
> timezone_content_status = 0
> tz_data_close_status = 0
> tz_data_status = 0
> /hub/c/flutter_jit_runner.cmx/29567/out/diagnostics:
> /hub/c/flutter_jit_runner.cmx/29567/out/diagnostics#os:
> dst_status = 0
> get_profile_status = 0
> timezone_content_status = 0
> tz_data_close_status = 0
> tz_data_status = 0
> ```
>
> Under nominal operation, all of the above values should be equal to 0.
> Nonzero values indicate an error.
>
> This functionality is guarded by Fuchsia integration tests at
> //src/tests/intl.
>
> Tested:
> (compile locally for Fuchsia and deploy)
> fx test //src/tests/intl
>
> See:
> - https://github.com/dart-lang/sdk/issues/42245
> - https://github.com/dart-lang/sdk/issues/39650
>
> Fixes#39650
>
> Change-Id: I97f6e17e57000f6eec71246aee670bca65b7e1d1
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/150662
> Commit-Queue: Filip Filmar <fmil@google.com>
> Reviewed-by: Martin Kustermann <kustermann@google.com>
TBR=kustermann@google.com,kaushikiska@google.com,fmil@google.com
Change-Id: I7e3f8b9724e30653ca5fccaf912e940edcbcf974
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/151861
Reviewed-by: Filip Filmar <fmil@google.com>
Commit-Queue: Filip Filmar <fmil@google.com>
(prior attempt was rolled back as it caused downstream tests to time
out. See prior attempt at: See:
https://dart-review.googlesource.com/c/sdk/+/149206)
The FIDL library fuchsia.deprecatedtimezone is going away. There are
different and better ways to obtain the same functionality. This change
removes the dependency on fuchsia.deprecatedtimezone from the Dart SDK.
Adds inspect metrics that allow whitebox testing of the runners. Here's
a sample `fx iquery` excerpt from a running device, showing both a dart
and a flutter runner exposing the same OS diagnostic metrics.
```
/hub/c/dart_jit_runner.cmx/70981/out/diagnostics:
/hub/c/dart_jit_runner.cmx/70981/out/diagnostics#os:
dst_status = 0
get_profile_status = 0
timezone_content_status = 0
tz_data_close_status = 0
tz_data_status = 0
/hub/c/flutter_jit_runner.cmx/29567/out/diagnostics:
/hub/c/flutter_jit_runner.cmx/29567/out/diagnostics#os:
dst_status = 0
get_profile_status = 0
timezone_content_status = 0
tz_data_close_status = 0
tz_data_status = 0
```
Under nominal operation, all of the above values should be equal to 0.
Nonzero values indicate an error.
This functionality is guarded by Fuchsia integration tests at
//src/tests/intl.
Tested:
(compile locally for Fuchsia and deploy)
fx test //src/tests/intl
See:
- https://github.com/dart-lang/sdk/issues/42245
- https://github.com/dart-lang/sdk/issues/39650Fixes#39650
Change-Id: I97f6e17e57000f6eec71246aee670bca65b7e1d1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/150662
Commit-Queue: Filip Filmar <fmil@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
When system tracing is enabled on the Fuchsia platform, avoid calling
|OS::GetCurrentThreadCPUMicros|. The thread timestamp values are
discarded later, so querying them is wasteful w.r.t. both time and
trace buffer space.
Change-Id: I400075c89e69ddde6b032808859826c95f029008
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/149395
Reviewed-by: Siva Annamalai <asiva@google.com>
Auto-Submit: Nathan Rogers <nathanrogers@google.com>
Commit-Queue: Siva Annamalai <asiva@google.com>
The FIDL library fuchsia.deprecatedtimezone is going away. There are
different and better ways to obtain the same functionality. This change
removes the dependency on fuchsia.deprecatedtimezone from the Dart SDK.
Adds inspect metrics that allow whitebox testing of the runners. Here's
a sample `fx iquery` excerpt from a running device, showing both a dart
and a flutter runner exposing the same OS diagnostic metrics.
```
/hub/c/dart_jit_runner.cmx/70981/out/diagnostics:
/hub/c/dart_jit_runner.cmx/70981/out/diagnostics#os:
dst_status = 0
get_profile_status = 0
timezone_content_status = 0
tz_data_close_status = 0
tz_data_status = 0
/hub/c/flutter_jit_runner.cmx/29567/out/diagnostics:
/hub/c/flutter_jit_runner.cmx/29567/out/diagnostics#os:
dst_status = 0
get_profile_status = 0
timezone_content_status = 0
tz_data_close_status = 0
tz_data_status = 0
```
Under nominal operation, all of the above values should be equal to 0.
Nonzero values indicate an error.
This functionality is guarded by Fuchsia integration tests at
//src/tests/intl.
Tested:
(compile locally for Fuchsia and deploy)
fx test //src/tests/intl
Fixes#39650
Change-Id: I5fc3ed305301abe1b183948a7cf478e014f351e7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/149206
Commit-Queue: Filip Filmar <fmil@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
This will allow introspection of the state of tzdata loader, making
error diagnostics easier on Fuchsia.
Must be merged only after this pull request is merged into flutter
https://github.com/flutter/engine/pull/17876
Otherwise, the call to the `dart::ComponentContext()` could prevent
the runners from initializing the component context correctly.
Tested:
Compiled and deployed on a Fuchsia device.
The result on Fuchsia is as seen below.
```
$ fx iquery
/hub/c/flutter_jit_product_runner.cmx/21608/out/diagnostics:
/hub/c/flutter_jit_product_runner.cmx/21608/out/diagnostics#os:
dst_status = 0
tz_data_close_status = 0
tz_data_status = 0
```
See issue https://github.com/dart-lang/sdk/issues/41525 for details.
Bug: fuchsia:43341
Change-Id: I43ea289003e1e1d09cca4163236bc477eb9cee80
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/144480
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Filip Filmar <fmil@google.com>
This sets us up for migrating away from a dedicated timezone service
into a more general `fuchsia.intl.*`.
As a first step, let's use only one of the two equivalent FIDL service sets.
In fuchsia they are implemented by exactly the same handlers, so are equivalent
to the best of my knowledge.
Fixes#39174.
Change-Id: I229670bb96816af808a0cb14e6d2cba283f9ef62
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/123487
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
The Fuchsia SDK can now be consumed by non-Fuchsia buildroots to produce
Fuchsia artifacts.
The Fuchsia SDK comes with a JSON manifest that describes the various SDK
"parts". GN targets are stamped for each of these parts. The location of these
GN targets can be configured. That location is set to |fuchsia_sdk_root| in
each buildroot. This variable is defined in //build/fuchsia/sdk.gni in each
buildroot. For buildroots that don't care or know about the Fuchsia SDK, that
file may not exist. This is why, the import of that file is guarded behind
the is_fuchsia flag. When the Fuchsia SDK is enabled, that file will define
values for two required variable |using_fuchsia_sdk| and |fuchsia_sdk_root|.
The first flag defines if the SDK is being used. If unset (but defined), the
builds are in-tree. Eventually we want only SDK builds. |fuchsia_sdk_root|
is set to the spot in the buildroot where the GN targets for the SDK parts
are stamped.
Change-Id: I604612c8d6a21efb07b323610e80b596abc1a6dd
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/101540
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Commit-Queue: Chinmay Garde <chinmaygarde@google.com>
Makes public some include paths needed for the dart_runner to depend on
dart_io.
Also updates some dart:io implementations to give and OSError
instead of crashing when something is unimplemented.
Change-Id: I862fc7cc43f56e74de791ecc021b88238b54a8e5
Reviewed-on: https://dart-review.googlesource.com/c/84920
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Commit-Queue: Zach Anderson <zra@google.com>