Skip to content

[macOS 26] test/integration.shard/plist_parser_test.dart failing #193159

Closed

Description

@vashworth

https://ci.chromium.org/ui/p/flutter/builders/staging.shadow/Mac%20tool_integration_tests_1/2/overview

Failing tests:
  test/integration.shard/plist_parser_test.dart: PlistParser.getValueFromFile<String> returns null for a malformed plist file
  test/integration.shard/plist_parser_test.dart: PlistParser.replaceKey returns false for a malformed plist file
06:39 +13 ~1 -1: test/integration.shard/plist_parser_test.dart: PlistParser.replaceKey returns false for a malformed plist file [E]
  Expected: contains 'foo.plist: Property List error: Unexpected character \x01 at line 1 / JSON error: JSON text did not start with array or object and option to allow fragments not set. around line 1, column 0.\n'
              ''
    Actual: ''
     Which: does not contain 'foo.plist: Property List error: Unexpected character \x01 at line 1 / JSON error: JSON text did not start with array or object and option to allow fragments not set. around line 1, column 0.\n'
              ''
  
  package:matcher                                      expect
  test/integration.shard/plist_parser_test.dart 232:5  main.<fn>
  dart:async                                           runZoned
  test/src/common.dart 228:14                          testWithoutContext.<fn>
  test/src/common.dart 194:58                          test.<fn>.<fn>
  dart:io                                              IOOverrides.runWithIOOverrides
  test/src/common.dart 194:29                          test.<fn>
06:39 +14 ~1 -2: test/integration.shard/plist_parser_test.dart: PlistParser.getValueFromFile<String> returns null for a malformed plist file [E]
  Expected: contains 'Property List error: Unexpected character \x01 at line 1 / JSON error: JSON text did not start with array or object and option to allow fragments not set. around line 1, column 0.\n'
              ''
    Actual: ''
     Which: does not contain 'Property List error: Unexpected character \x01 at line 1 / JSON error: JSON text did not start with array or object and option to allow fragments not set. around line 1, column 0.\n'
              ''
  
  package:matcher                                      expect
  test/integration.shard/plist_parser_test.dart 144:7  main.<fn>
  dart:async                                           runZoned
  test/src/common.dart 228:14                          testWithoutContext.<fn>
  test/src/common.dart 194:58                          test.<fn>.<fn>
  dart:io                                              IOOverrides.runWithIOOverrides
  test/src/common.dart 194:29                          test.<fn>

Activity

  1. added
    toolAffects the "flutter" command-line tool. See also t: labels.
    P1High-priority issues at the top of the work list
    team-iosOwned by iOS platform team
    on Sep 22, 2026
  2. self-assigned this
    on Sep 22, 2026
  3. okorohelijah commented on Sep 23, 2026

    @okorohelijah
    Contributor

    What this is: Two plist_parser_test.dart integration tests fail on macOS 26.6.2 because logger.statusText is '' instead of containing /usr/bin/plutil's "Property List error: Unexpected character..." string. PlistParser's own contract did not break — replaceKey only returns false inside on ProcessException catch, and expect(..., isFalse) passed before line 232 threw, proving plutil still exited non-zero.

    What I verified: At 07510ad9a96, PlistParser calls ProcessUtils.runSync(..., throwOnError: true), which logs stdout to logger.statusText and stderr to logger.errorText (prepended to ProcessException: ...). Both tests (#L144-L152, #L232-L238, from #122336) encode plutil's historical quirk of printing parse diagnostics to stdout with empty stderr. Modeling the stream/exit cases in a FakeProcessManager test on Linux confirms replaceKey == false with statusText == '' happens only if plutil moved the diagnostic to stderr or dropped it. Neither macOS 26 Release Notes nor Xcode 26 Release Notes document a plutil change.

    What I could not verify: Whether macOS 26.6.2 plutil writes the diagnostic to stderr or prints nothing — each test aborts at statusText before checking errorText, and ResultDB for build 8670252478857878881 has no extra log artifacts.

    Confidence: Medium — runSync's stdout/stderr routing and the passing isFalse check isolate the failure to plutil's output stream, but I cannot run macOS 26 plutil on Linux.

    To move this forward: @vashworth — on macOS 26.6.2, does plutil now emit the error on stderr?

    printf '\x01\x02\x03' > /tmp/foo.plist && /usr/bin/plutil -convert xml1 -o - /tmp/foo.plist >/tmp/out 2>/tmp/err; echo "exit=$? out=$(cat /tmp/out) err=$(cat /tmp/err)"

    If err has the diagnostic, we can move both assertions from logger.statusText to logger.errorText.

    Pre-triage by Elijah's_triage_agent — verify before acting on it.

  4. added
    platform-iosiOS applications specifically
    platform-macosBuilding on or for macOS specifically
    P2Important issues not at the top of the work list
    triaged-iosTriaged by iOS platform team
    and removed
    P2Important issues not at the top of the work list
    on Sep 24, 2026
  5. vashworth commented on Sep 24, 2026

    @vashworth
    ContributorAuthor

    @okorohelijah Have you been able to recreate this locally yet? We can't upgrade until this is resolved

  6. github-actions commented on Oct 8, 2026

    @github-actions

    This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of flutter doctor -v and a minimal reproduction of the issue.

  7. locked as resolved and limited conversation to collaborators on Oct 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

P1High-priority issues at the top of the work listplatform-iosiOS applications specificallyplatform-macosBuilding on or for macOS specificallyteam-iosOwned by iOS platform teamtoolAffects the "flutter" command-line tool. See also t: labels.triaged-iosTriaged by iOS platform team

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions