1. 18 Jul, 2022 1 commit
  2. 24 May, 2022 1 commit
    • Chris Bracken's avatar
      [tool] Add tests for FakeProcessManager (#104456) · f9765c13
      Chris Bracken authored
      Adds a bit more clarifying documentation to the implementation of the
      outputFollowsExit case, and adds tests that verify the behaviour of
      stderr, stdout of processes launched via FakeProcessManager.
      
      Specifically:
      * Verifies that stderr, stdout are not emitted immediately after process
        exit if outputFollowsExit is true. They must be emitted at least one
        turn through the event loop later.
      * Verifies that ProcessResult.stderr, stdout have the type documented
        according to the encoding passted to Process.run/runSync:
        * List<int> if null is passed as the encoding.
        * String (in the default system encoding) if no encoding is specified.
        * String (in the specified encoding) if an encoding is specified.
      
      This is additional testing relating to refactoring landed in:
      https://github.com/flutter/flutter/pull/103947
      
      Issue: https://github.com/flutter/flutter/issues/102451
      f9765c13
  3. 17 May, 2022 2 commits
    • Chris Bracken's avatar
      [tool] Add tests for FakeProcess (#104013) · 9d9e272e
      Chris Bracken authored
      Because this class has some subtle behaviour with regards to control of
      exit timing and when and how it streams data to stderr and stdout, it's
      worth adding unit tests for this class directly, as well as (in a
      followup patch) for FakeProcessManager.
      
      This is additional testing relating to refactoring landed in:
      https://github.com/flutter/flutter/pull/103947
      
      Issue: https://github.com/flutter/flutter/issues/102451
      9d9e272e
    • Chris Bracken's avatar
      [tool] Consistent FakeProcessManager.run/runSync (#103947) · 928bb122
      Chris Bracken authored
      `FakeProcessManager` is a test-oriented implementation of `ProcessManager`
      that simulates launching processes and returning `ProcessResult` objects
      whose `exitCode`, `stdout`, `stderr` can be used to write platform-portable,
      hermetic tests that don't rely on actually launching processes from
      executables on disk. Its `run` and `runSync` methods provide asynchronous and
      synchronous variants of this functionality.
      
      Previously, the behaviour of `run` and `runSync` were inconsistent with
      regards to the treatment of the `stdoutEncoding` (similarly,
      `stderrEncoding`) parameters:
      
      `run`:
      * if the encoding was null, `ProcessResult.stdout` was returned as a
        String in UTF-8 encoding. This was incorrect. The behaviour as
        specified in `ProcessResult.stdout` is that in this case, a raw
        `List<int>` should be returned.
      * If the encoding was unspecified, `ProcessResult.stdout` was returned as
        a `String` in the `io.systemEncoding` encoding. This was correct.
      * If the encoding was non-null, `ProcessResult.stdout` was returned as a
        `String` in the specified encoding. This was correct.
      
      `runSync`:
      * if the encoding was null, `ProcessResult.stdout` was returned as a
        `List<int>` in UTF-8 encoding. This was incorrect. The behaviour as
        specified in `ProcessResult.stdout` is that in this case, a raw
        `List<int>` should be returned.
      * If the encoding was unspecified, `ProcessResult.stdout` was returned as
        `List<int>` in UTF-8 encoding. This was incorrect. The behaviour as
        specified in `ProcessResult.stdout` is that in this case, a String a
        `String` in the `io.systemEncoding` encoding should be returned.
      * if the encoding was non-null, `ProcessResult.stdout` was returned as a
        `String` in unknown (but probably UTF-8) encoding. This was incorrect.
        The behaviour as specified in `ProcessResult.stdout` is that in this
        case, a `String` in the specified encoding should be returned.
      
      `_FakeProcess`, from which we obtain the fake stdout and stderr values now
      holds these fields as raw `List<int>` of bytes rather than as `String`s. It
      is up to the user to supply values that can be decoded with the encoding
      passed to `run`/`runAsync`.
      
      `run` and `runAsync` have been updated to set stdout (likewise, stderr) as
      specified in the `ProcessResult` documentation.
      
      This is pre-factoring for #102451, in which the tool throws an exception
      when processing the JSON output from stdout of the `vswhere.exe` tool,
      whose output was found to include the `U+FFFD` Unicode replacement
      character during UTF-8 decoding, which triggers a `toolExit` exception
      when decoded using our [Utf8Decoder][decoder] configured with `reportErrors` =
      true. Because `FakeProcessManager.runAsync` did not previously invoke
      `utf8.decode` on its output (behaviour which differs from the non-fake
      implementation), it was impossible to write tests to verify the fix.
      
      Ref: https://api.flutter.dev/flutter/dart-io/ProcessResult/stdout.html
      
      Issue: https://github.com/flutter/flutter/issues/102451
      
      [decoder]: https://github.com/flutter/flutter/blob/fd312f1ccff909fde28d2247a489bf210bbc6c48/packages/flutter_tools/lib/src/convert.dart#L51-L60
      928bb122
  4. 02 Feb, 2022 1 commit
  5. 01 Dec, 2021 1 commit
  6. 08 Oct, 2021 3 commits
  7. 12 Aug, 2021 1 commit
  8. 13 Apr, 2021 1 commit
  9. 08 Apr, 2021 1 commit
  10. 13 Mar, 2021 1 commit
  11. 09 Mar, 2021 1 commit
  12. 09 Feb, 2021 1 commit
  13. 08 Feb, 2021 1 commit
  14. 04 Feb, 2021 1 commit
    • Jonah Williams's avatar
      [flutter_tools] move process manager into tool (#75350) · 8b6baae4
      Jonah Williams authored
      Our current top crasher is an unclear error when ProcessManager fails to resolve an executable path. To fix this, we'd like to being adjusting the process resolution logic and adding more instrumentation to track failures. In order to begin the process, the ProcessManager has been folded back into the flutter tool
      8b6baae4
  15. 29 Jan, 2021 1 commit
  16. 27 Jan, 2021 2 commits
  17. 14 Dec, 2020 1 commit
  18. 03 Oct, 2020 1 commit
  19. 13 Aug, 2020 1 commit
  20. 18 Jun, 2020 1 commit
    • stuartmorgan's avatar
      Specify encoding for vswhere output (#59607) · e85655c4
      stuartmorgan authored
      On Windows, Process.run assumes the output uses the system codepage by default. This allows specifying it in our wrapper, and sets the encoding for vswhere to UTF-8 since we're passing a flag that forces it to use UTF-8 output.
      
      Fixes #53515
      e85655c4
  21. 13 Apr, 2020 1 commit
  22. 19 Mar, 2020 1 commit
  23. 18 Mar, 2020 1 commit
    • Jonah Williams's avatar
      [flutter_tools] refactor the IOSDevicePortForwarder and move tests out of... · 90d61696
      Jonah Williams authored
      [flutter_tools] refactor the IOSDevicePortForwarder and move tests out of devices_test.dart (#52772)
      
      Updates the IOSDevicePortForwarder to no longer depend on context, or on an IOSDevice instance. Instead, it receives all necessary configuration through the constructor.
      
      Moves the IOSDevicePortForwarder to a separate file.
      90d61696
  24. 10 Mar, 2020 1 commit
    • Jonah Williams's avatar
      [flutter_tools] prevent StateError when log reader is disposed (#52173) · 37787982
      Jonah Williams authored
      Previously the AdbLogReader did async setup in the StreamController.onListen callback, specifically it would query the api version and start the adb process. If the log subscription was cancelled before this setup completed, then the log output could (haven't confirmed) get added to a closed controller, causing the above state error. 
      37787982
  25. 06 Mar, 2020 1 commit
  26. 27 Feb, 2020 1 commit
  27. 20 Feb, 2020 1 commit
  28. 07 Jan, 2020 1 commit
  29. 06 Dec, 2019 1 commit
  30. 27 Nov, 2019 1 commit
    • Ian Hickson's avatar
      License update (#45373) · 449f4a66
      Ian Hickson authored
      * Update project.pbxproj files to say Flutter rather than Chromium
      
      Also, the templates now have an empty organization so that we don't cause people to give their apps a Flutter copyright.
      
      * Update the copyright notice checker to require a standard notice on all files
      
      * Update copyrights on Dart files. (This was a mechanical commit.)
      
      * Fix weird license headers on Dart files that deviate from our conventions; relicense Shrine.
      
      Some were already marked "The Flutter Authors", not clear why. Their
      dates have been normalized. Some were missing the blank line after the
      license. Some were randomly different in trivial ways for no apparent
      reason (e.g. missing the trailing period).
      
      * Clean up the copyrights in non-Dart files. (Manual edits.)
      
      Also, make sure templates don't have copyrights.
      
      * Fix some more ORGANIZATIONNAMEs
      449f4a66
  31. 24 Nov, 2019 1 commit
  32. 22 Nov, 2019 1 commit
  33. 23 Oct, 2019 1 commit
  34. 22 Oct, 2019 2 commits
  35. 11 Oct, 2019 1 commit