Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[UnitTests] Fix order-dependent synchronous decorator tests #369

Merged
merged 1 commit into from Jan 4, 2024

Conversation

bhamiltoncx
Copy link
Member

The decorator tests which used synchronous decorators started failing if they were run alone (before any of the other tests).

This broke in
d469daa , when I enabled GTMStandardUserAgentProvider by default in fetchers which don't otherwise specify a user-agent provider.

The issue is that GTMStandardUserAgentProvider itself is asynchronous, but only the first time it's ever invoked (after that, it caches its result in a process-wide cache).

The synchronous decorator tests assumed they'd always stay synchronous, but this wasn't the case if they used GTMStandardUserAgentProvider and were the first tests to run in the process.

This fixes the issue by always providing a GTMUserAgentStringProvider for the synchronous decorator tests.

Tested:
swift test passes (except known failure in #368, which is already failing in upstream on macOS 14.2.1).
Also ran test
-[GTMSessionFetcherServiceTest testMultipleDecoratorsSynchronous]
by itself and ensured it failed before this change and passed after
this change.

Fixes: #367

The decorator tests which used synchronous decorators started failing
if they were run alone (before any of the other tests).

This broke in
google@d469daa
, when I enabled `GTMStandardUserAgentProvider` by default in fetchers
which don't otherwise specify a user-agent provider.

The issue is that `GTMStandardUserAgentProvider` itself is
asynchronous, but only the first time it's ever invoked (after that,
it caches its result in a process-wide cache).

The synchronous decorator tests assumed they'd always stay synchronous,
but this wasn't the case if they used `GTMStandardUserAgentProvider`
and were the first tests to run in the process.

This fixes the issue by always providing a `GTMUserAgentStringProvider`
for the synchronous decorator tests.

Tested:
  `swift test` passes.
  Also ran test
  `-[GTMSessionFetcherServiceTest testMultipleDecoratorsSynchronous]`
  by itself and ensured it failed before this change and passed after
  this change.
@thomasvl thomasvl merged commit 27d603b into google:main Jan 4, 2024
19 checks passed
@thomasvl
Copy link
Member

thomasvl commented Jan 4, 2024

Thanks for the fix!

@bhamiltoncx bhamiltoncx deleted the b317590894 branch January 4, 2024 16:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

-[GTMSessionFetcherServiceTest testMultipleDecoratorsSynchronous] fails when run alone
2 participants