Commit graph

205 commits

Author SHA1 Message Date
Srujan Gaddam b60e9ae71f Move js_function_getter_trust_types_test off of unittest
Both html_individual_config.dart and unittest.dart are removed. Lack of
groups before were hiding what are now compile time errors, so static
error testing is introduced to handle them.

Change-Id: I1b87f7438f2ab301207cc401254206bcd77eb072
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/138244
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Srujan Gaddam <srujzs@google.com>
2020-03-04 23:56:55 +00:00
Srujan Gaddam c0e8126716 Separate out lib_2/html/history_test
Remove html_individual_config and refactor groups out to separate test
files. The 'history' group of tests was never being run due to its name,
so 'popstateevent' introduces a new failure, although it isn't actually
new.

Change-Id: I8569ab7f8a47cd0ea60901da2afa296c9593631f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/138241
Commit-Queue: Srujan Gaddam <srujzs@google.com>
Reviewed-by: Bob Nystrom <rnystrom@google.com>
2020-03-04 21:50:56 +00:00
Srujan Gaddam 95bb6d8d19 Separate entered_left_view tests into separate test files
Note that groups are maintained since group-level setUps are applied to
each test. This removes html_individual_config.

Change-Id: I62e722252202372880d888161e9b7544b1194034
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/138045
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Bob Nystrom <rnystrom@google.com>
Commit-Queue: Srujan Gaddam <srujzs@google.com>
2020-03-04 00:11:43 +00:00
Mayank Patke ed441e48d0 Update all Slow tests to be Slow, Pass.
Change-Id: I610b272355b045eab80cf941210774fb12d775eb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/134103
Reviewed-by: Bob Nystrom <rnystrom@google.com>
Commit-Queue: Mayank Patke <fishythefish@google.com>
2020-02-01 00:17:42 +00:00
Ryan Macnak bd6cd9cd3a [test] Move and migrate dart:profiler tests.
Move tests from tests/lib_2/profiler to tests/lib_2/developer since `dart:profiler` no longer exists.

Bug: https://github.com/dart-lang/sdk/issues/40142
Change-Id: Iccf68ea2922caa52122d48c91fe5fa35a241b051
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/133281
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2020-01-24 20:15:48 +00:00
Srujan Gaddam a5caa5222d Skip all html tests for d8
Bug:N/A
Change-Id: I39bccf7c6272830f8d6db52b1ea027fdb1d4c35f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/128109
Commit-Queue: Srujan Gaddam <srujzs@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2019-12-13 00:24:36 +00:00
Liam Appelbe 0fe9634425 Skip wasm tests on dart2js
Bug: https://github.com/dart-lang/sdk/issues/37882
Change-Id: Iceccc5805bcdadf003d8e753c7f86f915d72bf39
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/118662
Commit-Queue: Liam Appelbe <liama@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
2019-09-25 00:48:43 +00:00
Karl Klose 9203453183 [infra] Remove non-essential test expectations with comments from dart2js status files
Change-Id: I55d13632e701f8c5627e418faaee71a09e48fe57
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/114851
Commit-Queue: Karl Klose <karlklose@google.com>
Reviewed-by: Stephen Adams <sra@google.com>
2019-09-24 06:44:11 +00:00
Karl Klose 1f17242a4f [infra] Remove non-essential test expectations from dart2js status files
Change-Id: Ie6ead34c5628cd63f6eeb363585932c4f15f33a9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/114062
Reviewed-by: Stephen Adams <sra@google.com>
Commit-Queue: Karl Klose <karlklose@google.com>
2019-08-26 11:55:25 +00:00
Alexander Thomas 182d55dfda [dart2js] Add support for BabelJS to test.py
This adds support for BabelJS to test.py's dart2js compiler
configuration. When --babel is specified directly or through a named
configuration, test.py will run an additional step after dart2js that
post-processes the javascript output by running it through BabelJS with
the specified Babel configuration. BabelJS is added to the DEPS in its
standalone form. d8 is used to run BabelJS standalone to avoid adding
a dependency on NodeJS. d8 can only write to stdout but not to files or
stderr, which makes it necessary to change the test_runner to handle
commands that expect their output to be piped to a file.

Changes:
* Add --babel option to test.py.
* Add babel option to pkg/smith.
* Switch IE11 builder to use babel transformation.
* Fix option list comparison bugs in pkg/smith.
* Change dart2js compiler configuration to generate files using the
  test name rather than just "out.js" (update test that relied on this).
* Remove runtime_configuration dependency on test_suite.
* Remove obsolete blocks adding --preview-dart-2 dart2js arguments.
* Make dart2js' compiler configuration more like DDC's.
* Remove createCommand method that is no longer used.
* Remove support for "OtherResources" which was only used for
  dart:isolate tests on dart2js and DDC.
* Skip co19_2 tests that are slow to transform with babel.
* Simplify the timeout handling in the test runner with Future.timeout.

Change-Id: I32e4917b2a57ecbe684538e40d744f0101c552a0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/90402
Commit-Queue: Alexander Thomas <athom@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2019-05-29 08:39:44 +00:00
Nicholas Shahan 86c7165969 [tests] Avoid use of $strong because it is always true now
* Remove all `&&  $strong` clauses.
* Delete all sections that include a `&& !$strong` clause.

Change-Id: Idd32cf5623793e3f98e3e998025bac079d88e2f1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/102223
Commit-Queue: Nicholas Shahan <nshahan@google.com>
Reviewed-by: Bob Nystrom <rnystrom@google.com>
Reviewed-by: William Hesse <whesse@google.com>
2019-05-16 17:41:27 +00:00
William Hesse a533753bec Remove --fast-startup flag support from testing scripts and status files
Change-Id: Icfb4aa228c0f13bf9fce25aeb7bacbf1e38497ee
Reviewed-on: https://dart-review.googlesource.com/c/89582
Commit-Queue: William Hesse <whesse@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2019-01-16 11:32:44 +00:00
Daco Harkes 04b2b75d8c [Gardening] Remove inherently flaky async/timer_regress22626_test
Closes https://github.com/dart-lang/sdk/issues/28254

Change-Id: I5c1f66a3f22ee7adbb7bc294f1b5a6ffd94637c2
Reviewed-on: https://dart-review.googlesource.com/c/86025
Auto-Submit: Daco Harkes <dacoharkes@google.com>
Reviewed-by: William Hesse <whesse@google.com>
Commit-Queue: William Hesse <whesse@google.com>
2018-12-07 12:17:55 +00:00
Jenny Messerly cfe9202393 [dartdevc] fix dart:mirrors type information for generic functions
This regressed in https://dart-review.googlesource.com/c/74664/.
In Analyzer FunctionType.typeFormals returns TypeParameterElements
instead of TypeParameterTypes; it is not safe to assume non-null bound
for elements.

Also fixes & clarifies the intent of _canEmitTypeAtTopLevel (formerly
_typeIsLoaded). There was no reason to visit the typeFormals, as generic
function types can always be emitted into the module.

Change-Id: Ia8b9271c2d1b66dca934d032dcbbe4fe89146f1b
Reviewed-on: https://dart-review.googlesource.com/76746
Reviewed-by: Alan Knight <alanknight@google.com>
2018-09-27 22:56:51 +00:00
Johnni Winther 5e263044e8 Enable StrongModeWorldStrategy
This makes closed world computation take the static type of the receiver
into account and removes non-live members from the J-world.

Change-Id: I5547aaae4685c6417a94916df0bc4e621296ce8d
Reviewed-on: https://dart-review.googlesource.com/72643
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Stephen Adams <sra@google.com>
2018-09-10 07:09:07 +00:00
William Hesse 0999a7b75e Remove special handling of _htmltest.html tests.
This removes the special category of html tests which was added in 2014, in cl
https://codereview.chromium.org//695893002

Change-Id: I42d2992e79e7b508465a7fffb4864b545f3af452
Reviewed-on: https://dart-review.googlesource.com/72000
Reviewed-by: Jonas Termansen <sortie@google.com>
Reviewed-by: Vijay Menon <vsm@google.com>
2018-08-30 14:37:57 +00:00
Aske Simon Christensen ac77419209 Status file cleanup for dart2js.
Removed all sections labeled $compiler == dart2js and !$fasta.

Removed $fasta from all sections with $compiler == dart2js and merged
with existing sections as appropriate.

Some additional cleanup and normalization.

Change-Id: I8b93283a2cce22ce60e29d364c8d0e70dccbb6e3
Reviewed-on: https://dart-review.googlesource.com/71840
Commit-Queue: Aske Simon Christensen <askesc@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2018-08-30 10:28:41 +00:00
Stephen Adams 9510738c62 dart2js status update
Change-Id: I4ceae060c6786b400f2f0f77c15c7ddbdbd61422
Reviewed-on: https://dart-review.googlesource.com/68845
Reviewed-by: Stephen Adams <sra@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-08-07 23:37:19 +00:00
William Hesse 46743f3868 Remove $runtime == drt sections and uses of drt from status files.
Change-Id: Iffd934a67668901176a84c9b01512711a011652d
Reviewed-on: https://dart-review.googlesource.com/67803
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: William Hesse <whesse@google.com>
2018-08-03 12:40:46 +00:00
William Hesse 7373d38a31 Update status for Dart2js minified CSP on Chrome with fast startup
Change-Id: I1f2fec8ecd328b29d3bad0623ef9fe5262bc2b3b
Reviewed-on: https://dart-review.googlesource.com/67461
Reviewed-by: Alexander Thomas <athom@google.com>
2018-07-31 10:18:40 +00:00
William Hesse 21db860271 Remove non-strong dart2js builders from test_matrix.json
Change-Id: I76c4a1f0df8f6e8f6ddd03fd35c9a069845687ef
Reviewed-on: https://dart-review.googlesource.com/67346
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-07-30 17:47:44 +00:00
Terry Lucas 071ca8c05c Updated tests
TBR=sigmund@google.com

Change-Id: I995eae507fb37df7e7839a23f7cfc602ace351bb
Reviewed-on: https://dart-review.googlesource.com/66460
Commit-Queue: Terry Lucas <terry@google.com>
Reviewed-by: Terry Lucas <terry@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-07-25 00:12:41 +00:00
Terry Lucas 7b77fa217b Fixed callbacks typedef to be List instead of a generic typed List.
Fixed getLegacyStats - shouldn't have a JSName annotation.

Fixes #33891

R=sigmund@google.com

Change-Id: Ie9761ad4f3c69fc875cdb1f0d096f48d1528671b
Reviewed-on: https://dart-review.googlesource.com/66400
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Terry Lucas <terry@google.com>
2018-07-24 19:14:08 +00:00
Lasse R.H. Nielsen b1eeacc30a Remove usage of unittest package from a number of tests.
Add simplified unittest replacement to package:expect.
(It is used in multi-tests, so it needs to be in an accessible place without using ".." in its path).

Change-Id: I60aa212ed67ffbdda17ca18fce1cdff16237f4fe
Reviewed-on: https://dart-review.googlesource.com/65700
Commit-Queue: Lasse R.H. Nielsen <lrn@google.com>
Reviewed-by: Jenny Messerly <jmesserly@google.com>
2018-07-20 13:26:38 +00:00
Johnni Winther 2d10906fff Update safari status
Change-Id: I655406526af5eca99580772e87c0db9335c0188f
Reviewed-on: https://dart-review.googlesource.com/65100
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Reviewed-by: William Hesse <whesse@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2018-07-16 12:46:06 +00:00
Lasse R.H. Nielsen 76db06cc24 Fix assert in Future code to allow a Future<Future<int>>.
Fix the `lib_2/async/future_test` test which was otherwise failing everywhere.
Updated status files.

Change-Id: I4e277dd7d47692b92b3303bfdd7cfbde120a8f87
Reviewed-on: https://dart-review.googlesource.com/65080
Commit-Queue: Lasse R.H. Nielsen <lrn@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2018-07-16 11:27:36 +00:00
Johnni Winther 6acee7cdb7 Fix tracking of native classes needed for rti.
Closes #32286
Closes #33690

Change-Id: Ic62c145ca7bb5257d71c0d062b111b183258b7d0
Reviewed-on: https://dart-review.googlesource.com/64343
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-07-16 10:09:06 +00:00
Sigmund Cherem af27e106ee Update safari .status lines for flaky tests
TBR=johnniwinther@google.com

Change-Id: I28e27ccbd71094e4127343cfb84651b5de59de10
Reviewed-on: https://dart-review.googlesource.com/64804
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Sigmund Cherem <sigmund@google.com>
2018-07-12 21:58:19 +00:00
Sigmund Cherem 4ff4620f68 Adjust status lines for safari (take 2)
Change-Id: I231d449097dc01824e2f05443ce2a63d86b946b4
Reviewed-on: https://dart-review.googlesource.com/64100
Commit-Queue: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-07-09 21:11:55 +00:00
Sigmund Cherem 32d208d8b0 Revert "Adjust status lines for safari"
This reverts commit 5da24bbec2.

Reason for revert: inadvertly updated .status of non-strong configuration (incorrectly assumed that lib_2 suite was not run with the legacy compiler)

Original change's description:
> Adjust status lines for safari
> 
> TBR=athom@google.com,johnniwinther@google.com
> 
> Change-Id: I020de6d0f543fe96d8f93fa3a810b649ce587046
> Reviewed-on: https://dart-review.googlesource.com/63705
> Commit-Queue: Sigmund Cherem <sigmund@google.com>
> Reviewed-by: Sigmund Cherem <sigmund@google.com>

TBR=athom@google.com,johnniwinther@google.com,sigmund@google.com

Change-Id: I4a106337fc8490bd0d60cc535475e360726afdd4
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/64000
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-07-07 02:07:28 +00:00
Sigmund Cherem 5da24bbec2 Adjust status lines for safari
TBR=athom@google.com,johnniwinther@google.com

Change-Id: I020de6d0f543fe96d8f93fa3a810b649ce587046
Reviewed-on: https://dart-review.googlesource.com/63705
Commit-Queue: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-07-07 00:57:29 +00:00
Sigmund Cherem 11123b774a Adjust status lines for firefox
TBR=johnniwinther@google.com,athom@google.com

Change-Id: Idf7d90da1e649e0d73df92f952e2384b4b0ebb58
Reviewed-on: https://dart-review.googlesource.com/63694
Commit-Queue: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-07-04 00:34:26 +00:00
Sigmund Cherem d50fa68176 Update strong status in host-checked mode
TBR=sra@google.com

Change-Id: I09a98a414da3356158efdb5d24d67128cfdf7f88
Reviewed-on: https://dart-review.googlesource.com/63690
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Sigmund Cherem <sigmund@google.com>
2018-07-03 21:46:06 +00:00
Sigmund Cherem b7b24e9bbe Update dart2js-strong status across several suites
Change-Id: I7550e3221bcfdb4f9281b2be96af8579848c5a69
Reviewed-on: https://dart-review.googlesource.com/63504
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Sigmund Cherem <sigmund@google.com>
2018-07-03 00:27:31 +00:00
Sigmund Cherem a4b27057f0 Make bots green again: mostly status updates, but also fix check in custom-element upgrades
Change-Id: Ic5e5b58be60261c4843f00eb090e0c1e4ed7e093
Reviewed-on: https://dart-review.googlesource.com/63325
Commit-Queue: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Stephen Adams <sra@google.com>
2018-06-30 01:23:39 +00:00
Stephen Adams 6e108d709c Include native classes needed for RTI
Closes #33627

Change-Id: I9ed6bf9941df6445209a64c29af8986e382b7c51
Reviewed-on: https://dart-review.googlesource.com/62521
Commit-Queue: Stephen Adams <sra@google.com>
Reviewed-by: Stephen Adams <sra@google.com>
2018-06-28 23:16:28 +00:00
Jens Johansen 6888bc2824 Compile time error for web int literals that cannot be represented exactly
Bug: #33351
Change-Id: I2b99858dfc276dc70c3a36c289030e801145af86
Reviewed-on: https://dart-review.googlesource.com/61180
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2018-06-22 10:47:54 +00:00
Terry Lucas f479435bca - Removed custom handling of fill - it was wrong the method is now overloaded.
- Associate the JS class SpeechSyntesisVoice with the correct Dart class (DDC).
- Top-level querySelectorAll wasn't generic.
- Handle "static" for attributes in the IDLs.

Fixes #33147
Fixes #33178
Fixes #31886
Fixes #20585

R=vsm@google.com

Change-Id: Ic75a2bfc66670b72342269be259408b610547dab
Reviewed-on: https://dart-review.googlesource.com/59240
Commit-Queue: Terry Lucas <terry@google.com>
Reviewed-by: Vijay Menon <vsm@google.com>
2018-06-15 02:25:13 +00:00
Terry Lucas 354d5863dd Updated expected tests and fix for FF test.
TBR=sra@google.com

Change-Id: I83e368ce58948bdb3e22d0c0f342990497dd9984
Reviewed-on: https://dart-review.googlesource.com/60143
Reviewed-by: Terry Lucas <terry@google.com>
Commit-Queue: Terry Lucas <terry@google.com>
2018-06-13 19:48:02 +00:00
Terry Lucas eea2dff20d Added support for members of type Promise.
Fixes #31046

R=sra@google.com

Change-Id: Id1e8d415b91a842bd8e2f50c6064c24aaaed9d98
Reviewed-on: https://dart-review.googlesource.com/59460
Reviewed-by: Stephen Adams <sra@google.com>
Commit-Queue: Terry Lucas <terry@google.com>
2018-06-13 18:20:53 +00:00
Lasse R.H. Nielsen 315a186dc4 Better test error handler argument types.
Change-Id: I460a40dc9db096f3ae95602ba9c8dc86b4576c56
Reviewed-on: https://dart-review.googlesource.com/53208
Commit-Queue: Lasse R.H. Nielsen <lrn@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Leaf Petersen <leafp@google.com>
2018-06-01 12:26:37 +00:00
Emily Fortuna c911a1bef6 Clean up additional dart2js strong mode runtime error and don't add method type variable in dart 1 version.
Change-Id: I8f8a62fe2b4fcc00c05fbab22ed9e7a55eb95ccf
Reviewed-on: https://dart-review.googlesource.com/57523
Commit-Queue: Emily Fortuna <efortuna@google.com>
Reviewed-by: Stephen Adams <sra@google.com>
2018-05-31 18:52:06 +00:00
Terry Lucas 735f7bdcec Updated for expected FF failure.
TBR=sra@google.com

Change-Id: I6eff83c4dd8f4e77a372fa5e17d0bce37c061ea4
Reviewed-on: https://dart-review.googlesource.com/56465
Reviewed-by: Terry Lucas <terry@google.com>
2018-05-24 12:45:48 +00:00
Terry Lucas 9816fce289 Fixed to use catchError instead of try/catch.
TBR=sra@google.com

Change-Id: Id3633654d1d9106be0f1169a5452731bafbd8732
Reviewed-on: https://dart-review.googlesource.com/56290
Commit-Queue: Terry Lucas <terry@google.com>
Reviewed-by: Terry Lucas <terry@google.com>
2018-05-23 18:48:34 +00:00
Terry Lucas e62f37f396 Tighten failure and success of test.
TBR=sra@google.com

Change-Id: Id56baa1f1079ad3433d2402f0eb5749fdcf08c06
Reviewed-on: https://dart-review.googlesource.com/56289
Reviewed-by: Terry Lucas <terry@google.com>
Commit-Queue: Terry Lucas <terry@google.com>
2018-05-23 14:38:55 +00:00
Terry Lucas 2a7188523e Fixed status
TBR=sra@google.com

Change-Id: Ie8f1d0e19bdde301aa995376727035f807d5d222
Reviewed-on: https://dart-review.googlesource.com/56288
Commit-Queue: Terry Lucas <terry@google.com>
Reviewed-by: Terry Lucas <terry@google.com>
2018-05-23 07:52:55 +00:00
Terry Lucas cf87b84f7d Support Promise to Future for both DDC and dart2js.
APIs in the newer Chrome IDLs support more JS style promises. The Dart web libraries now hookup those promises and return a Dart Future.
Additionally, a new type maplike is exposed in the IDL this is exposed too.

Change-Id: I44175877eb95f4d910586d42c0139fb182483f82
Reviewed-on: https://dart-review.googlesource.com/49800
Commit-Queue: Terry Lucas <terry@google.com>
Reviewed-by: Stephen Adams <sra@google.com>
2018-05-23 04:08:14 +00:00
Johnni Winther 54331b1c4b Delete elements.dart and resolution_types.dart
Change-Id: Ib50dabdbeec72ebf443e85b51b818d9ed0602b4f
Reviewed-on: https://dart-review.googlesource.com/55221
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-05-16 09:54:18 +00:00
Sigmund Cherem b894a69c80 Fix status file: make bots green
TBR=sra@google.com

Change-Id: I85432f4ccf739c3f9c69c60cb76cdeeaddd49cec
Reviewed-on: https://dart-review.googlesource.com/54623
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Sigmund Cherem <sigmund@google.com>
2018-05-10 17:51:34 +00:00
Sigmund Cherem c25a9fd46b Remove support for dart:isolate in dart2js.
Change-Id: I1216a0ac91d8a1d13b441809596e1a8b5e51bb34
Reviewed-on: https://dart-review.googlesource.com/54526
Commit-Queue: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Stephen Adams <sra@google.com>
2018-05-10 01:20:17 +00:00