Thanks to visit codestin.com
Credit goes to github.com

Skip to content
This repository was archived by the owner on Feb 22, 2023. It is now read-only.

[camera_platform_interface][flutter roll] Fix hashCode tests and manual roll #6618

Merged
merged 2 commits into from
Oct 25, 2022

Conversation

bparrishMines
Copy link
Contributor

@bparrishMines bparrishMines commented Oct 24, 2022

Cause

It looks like a recent Flutter change caused the following to no longer be true.

const int a = 1;
Object.hash(a, 'a') == Object.hash(a.hashCode, 'a');

Each subclass of CameraEvent overrides int get hashCode and uses

int get hashCode => Object.hash(super.hashcode, ...);

While CameraEvent uses the hashCode of cameraId:

int get hashCode => cameraId.hashCode;

With the equality at the top no longer being true, this causes the failing tests.

Fix

To fix this we could:

  1. Change all event classes to use cameraId instead of super.hashCode.
  2. (The current option). Change tests to use cameraId.hashCode in the test expectation.

Pre-launch Checklist

  • I read the Contributor Guide and followed the process outlined there for submitting PRs.
  • I read the Tree Hygiene wiki page, which explains my responsibilities.
  • I read and followed the relevant style guides and ran the auto-formatter. (Unlike the flutter/flutter repo, the flutter/plugins repo does use dart format.)
  • I signed the CLA.
  • The title of the PR starts with the name of the plugin surrounded by square brackets, e.g. [shared_preferences]
  • I listed at least one issue that this PR fixes in the description above.
  • I updated pubspec.yaml with an appropriate new version according to the pub versioning philosophy, or this PR is exempt from version changes.
  • I updated CHANGELOG.md to add a description of the change, following repository CHANGELOG style.
  • I updated/added relevant documentation (doc comments with ///).
  • I added new tests to check the change I am making, or this PR is test-exempt.
  • All existing and new tests are passing.

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

@flutter-dashboard
Copy link

It looks like this pull request may not have tests. Please make sure to add tests before merging. If you need an exemption to this rule, contact Hixie on the #hackers channel in Chat (don't just cc him here, he won't see it! He's on Discord!).

If you are not sure if you need tests, consider this rule of thumb: the purpose of a test is to make sure someone doesn't accidentally revert the fix. Ask yourself, is there anything in your PR that you feel it is important we not accidentally revert back to how it was before your fix?

Reviewers: Read the Tree Hygiene page and make sure this patch meets those guidelines before LGTMing.

@bparrishMines bparrishMines changed the title fix tests with manual roll [camera_platform_interface][flutter roll] Fix hashCode tests and manual roll Oct 25, 2022
Copy link
Contributor

@stuartmorgan-g stuartmorgan-g left a comment

Choose a reason for hiding this comment

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

LGTM as a quick fix.

As a less fragile longer-term fix, maybe we should fundamentally change the way we test our hash implementations. Instead of testing the expected outcome, we could test that, for every property we expect to matter for hashing, two objects that differ only in that property have different hashes. I think that would assert the actual behavior we want without asserting implementation details.

@bparrishMines bparrishMines added autosubmit Merge PR when tree becomes green via auto submit App and removed needs tests labels Oct 25, 2022
@auto-submit auto-submit bot merged commit e997501 into flutter:main Oct 25, 2022
@bparrishMines bparrishMines deleted the manual_roll branch October 25, 2022 19:14
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Oct 26, 2022
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Oct 26, 2022
adam-harwood pushed a commit to adam-harwood/flutter_plugins that referenced this pull request Nov 3, 2022
mauricioluz pushed a commit to mauricioluz/plugins that referenced this pull request Jan 26, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
autosubmit Merge PR when tree becomes green via auto submit App p: camera
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants