Skip to content

Conversation

@gaaclarke
Copy link
Member

@gaaclarke gaaclarke commented Sep 10, 2024

This migrates the last failing test for flutter/engine#54981. In order to effectively resolve that test I had to make equalsIgnoringHashCodes more usable by printing out the line that differs instead of just a huge blob of "expected" vs "actual.

example

Here's the output after the change.

test

  test('equalsIgnoringHashCodes - wrong line', () {
    expect(
      '1\n2\n3\n4\n5\n6\n7\n8\n9\n10',
      equalsIgnoringHashCodes('1\n2\n3\n4\n5\n6\na\n8\n9\n10'),
    );
  });

output

Expected: normalized value matches
          '1\n'
            '2\n'
            '3\n'
            '4\n'
            '5\n'
            '6\n'
            'a\n'
            '8\n'
            '9\n'
            '10'
  Actual: '1\n'
            '2\n'
            '3\n'
            '4\n'
            '5\n'
            '6\n'
            '7\n'
            '8\n'
            '9\n'
            '10'
   Which: Lines 7 differed, expected: 
          'a'
          but got
          '7'

Pre-launch Checklist

If you need help, consider asking for advice on the #hackers-new channel on Discord.

@github-actions github-actions bot added a: tests "flutter test", flutter_test, or one of our tests a: text input Entering text in a text field or keyboard related problems framework flutter/packages/flutter repository. See also f: labels. a: animation Animation APIs f: material design flutter/packages/flutter/material repository. a: accessibility Accessibility, e.g. VoiceOver or TalkBack. (aka a11y) f: cupertino flutter/packages/flutter/cupertino repository f: focus Focus traversal, gaining or losing focus labels Sep 10, 2024
@gaaclarke gaaclarke force-pushed the better-string-matcher branch from 3c396b8 to 20a1409 Compare September 10, 2024 22:37
@github-actions github-actions bot removed a: text input Entering text in a text field or keyboard related problems a: animation Animation APIs f: material design flutter/packages/flutter/material repository. a: accessibility Accessibility, e.g. VoiceOver or TalkBack. (aka a11y) f: cupertino flutter/packages/flutter/cupertino repository f: focus Focus traversal, gaining or losing focus labels Sep 10, 2024
@gaaclarke gaaclarke changed the title Better string matcher Migrate Color.toString() test, improves equalsIgnoringHashCodes Sep 10, 2024
@gaaclarke gaaclarke marked this pull request as ready for review September 10, 2024 22:39
@goderbauer
Copy link
Member

Looks like some checks are unhappy on this one.

@gaaclarke gaaclarke force-pushed the better-string-matcher branch from 20a1409 to f60fd2d Compare September 10, 2024 22:50
@gaaclarke
Copy link
Member Author

Looks like some checks are unhappy on this one.

@goderbauer It was a bad rebase, it missed my last PR that landed somehow. It should be good now.

Copy link
Member

@goderbauer goderbauer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, but can you add a test to test the new matcher output?

@gaaclarke
Copy link
Member Author

LGTM, but can you add a test to test the new matcher output?

None of the output for matchers are tested because there's no way to grab the text. I think we'd have to make the Matcher exported in order to be able to test the output text. I figured that was by design. Let me know if there is another way.

@gaaclarke gaaclarke requested review from gspencergoog and removed request for gspencergoog September 11, 2024 15:14
@gaaclarke
Copy link
Member Author

LGTM, but can you add a test to test the new matcher output?

I found a way to do it by catching the exception, done.

Comment on lines +197 to +215
test('equalsIgnoringHashCodes - wrong line', () {
TestFailure? failure;
try {
expect(
'1\n2\n3\n4\n5\n6\n7\n8\n9\n10',
equalsIgnoringHashCodes('1\n2\n3\n4\n5\n6\na\n8\n9\n10'),
);
} on TestFailure catch (e) {
failure = e;
}

expect(failure, isNotNull);
if (failure != null) {
final String? message = failure.message;
expect(message, contains('Lines 7 differed'));
expect(message, contains("'a'"));
expect(message, contains("'7'"));
}
});
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

there is also a way to do this with test matchers FYI

expect(() => methodThatThrows()), throwsA<TestFailure>()
 .having(..put prop checks here..)

Copy link
Contributor

@jonahwilliams jonahwilliams left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@gaaclarke gaaclarke added the autosubmit Merge PR when tree becomes green via auto submit App label Sep 11, 2024
@auto-submit auto-submit bot merged commit b5ce70a into flutter:master Sep 11, 2024
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Sep 11, 2024
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Sep 11, 2024
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Sep 12, 2024
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Sep 12, 2024
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Sep 12, 2024
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Sep 12, 2024
auto-submit bot pushed a commit to flutter/packages that referenced this pull request Sep 12, 2024
Roll Flutter from 2e221e7 to 303f222 (77 revisions)

flutter/flutter@2e221e7...303f222

2024-09-12 [email protected] Manual roll to 48ddaf578fb0c8326d5b4b680b0f49ea72e33216 (flutter/flutter#155070)
2024-09-12 [email protected] Externalize and update onboarding instructions (flutter/flutter#154730)
2024-09-12 [email protected] when setting up the log reader for a device during `flutter run`, discard any `RPCError` thrown due to the device being disconnected (flutter/flutter#155049)
2024-09-12 98614782+auto-submit[bot]@users.noreply.github.com Reverts "iOS: update provisioning profile for 2024-2025 cert (#155052)" (flutter/flutter#155059)
2024-09-12 [email protected] iOS: update provisioning profile for 2024-2025 cert (flutter/flutter#155052)
2024-09-11 [email protected] Factor out `Container` objects (flutter/flutter#153619)
2024-09-11 [email protected] Move (`dev/tools`), complete v0 of `native_driver` (Android) (flutter/flutter#154843)
2024-09-11 [email protected] Roll Flutter Engine from ade8ef293bc6 to ee5adf6d2ee1 (2 revisions) (flutter/flutter#155046)
2024-09-11 [email protected] Fix `flutter run` on Mac x64 hosts if Swift Package Manager is enabled (flutter/flutter#154645)
2024-09-11 [email protected] Roll Packages from bb53e5d to 4c18648 (1 revision) (flutter/flutter#155033)
2024-09-11 [email protected] Roll Flutter Engine from 4eb729b7a5c4 to ade8ef293bc6 (3 revisions) (flutter/flutter#155031)
2024-09-11 [email protected] fix: Dropdown menu trying to access highlight element which doesn't exist when search and filters both are enabled (flutter/flutter#151969)
2024-09-11 [email protected] Marks Linux build_tests_3_5 to be unflaky (flutter/flutter#154993)
2024-09-11 [email protected] Add 'direction' allow to 'SegmentedButton' oriented vertically (flutter/flutter#150903)
2024-09-11 [email protected] Marks Linux build_tests_5_5 to be unflaky (flutter/flutter#154995)
2024-09-11 [email protected] Update the signature of DDS launcher callback. (flutter/flutter#154949)
2024-09-11 [email protected] Migrate Color.toString() test, improves `equalsIgnoringHashCodes` (flutter/flutter#154934)
2024-09-11 [email protected] Update material and cupertino localizations (flutter/flutter#154959)
2024-09-11 [email protected] Marks Linux build_tests_1_5 to be unflaky (flutter/flutter#154991)
2024-09-11 [email protected] Marks Linux build_tests_2_5 to be unflaky (flutter/flutter#154992)
2024-09-11 [email protected] Fix `flutter create` warning regarding Java compatibility (flutter/flutter#152836)
2024-09-11 [email protected] Roll Flutter Engine from 54757dab9462 to 4eb729b7a5c4 (1 revision) (flutter/flutter#155022)
2024-09-11 [email protected] Fix java version used by `build_aar_module_test` (flutter/flutter#154967)
2024-09-11 [email protected] Roll Flutter Engine from 0a14c519ea4f to 54757dab9462 (1 revision) (flutter/flutter#155015)
2024-09-11 [email protected] Roll Flutter Engine from 35a3171b72c5 to 0a14c519ea4f (1 revision) (flutter/flutter#154984)
2024-09-11 [email protected] Roll Flutter Engine from b9c0b96c3316 to 35a3171b72c5 (1 revision) (flutter/flutter#154980)
2024-09-11 [email protected] Roll Flutter Engine from 52eeea075767 to b9c0b96c3316 (1 revision) (flutter/flutter#154976)
2024-09-11 [email protected] Roll Flutter Engine from a26075f9b1e6 to 52eeea075767 (1 revision) (flutter/flutter#154973)
2024-09-11 [email protected] Roll Flutter Engine from 60c15bc0f40e to a26075f9b1e6 (6 revisions) (flutter/flutter#154969)
2024-09-11 [email protected] Migrate `apple-mobile-web-*` to `mobile-web-*`. (flutter/flutter#154964)
2024-09-11 [email protected] Roll Flutter Engine from 8a038a6f7099 to 60c15bc0f40e (15 revisions) (flutter/flutter#154960)
2024-09-10 [email protected] Adds dart fixes for Color opacity functions (flutter/flutter#154953)
2024-09-10 [email protected] Missing benchmarks for `foundation/all_elements_bench.dart` (flutter/flutter#154954)
2024-09-10 [email protected] Update color assertions (flutter/flutter#154752)
2024-09-10 [email protected] handle EAGAIN (macOS) in ErrorHandlingProcessManager (flutter/flutter#154306)
2024-09-10 [email protected] fix unpack freezing app with animation duration zero  (flutter/flutter#153890)
2024-09-10 [email protected] Remove last `--disable-dart-dev` in `flutter/flutter`. (flutter/flutter#154948)
2024-09-10 [email protected] Remove scheduler: luci from new `build_aar_module_test` (flutter/flutter#154945)
2024-09-10 [email protected] Roll pub packages (flutter/flutter#154939)
2024-09-10 [email protected] `CupertinoSlidingSegmentedControl` update (flutter/flutter#152976)
2024-09-10 [email protected] Roll pub packages (flutter/flutter#154933)
2024-09-10 [email protected] fix test `chrome.close can recover if getTab throws a StateError` (flutter/flutter#154889)
2024-09-10 [email protected] SearchBar context menu (flutter/flutter#154833)
2024-09-10 [email protected] Fix `flutter build aar` for modules that use a plugin (flutter/flutter#154757)
2024-09-10 [email protected] Roll Packages from b4e0fc1 to bb53e5d (4 revisions) (flutter/flutter#154926)
2024-09-10 [email protected] Clean up `SnackBar` inherit theme data test (flutter/flutter#154921)
...
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Dec 11, 2024
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Dec 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

a: tests "flutter test", flutter_test, or one of our tests autosubmit Merge PR when tree becomes green via auto submit App framework flutter/packages/flutter repository. See also f: labels.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants