2.1 KiB
Linux And macOS Platform Testing
The first complete runtime proof was built on Windows. The next platform pass should verify the same source layout on Linux and macOS, then use macOS to prepare iOS testing without introducing JIT or writable-executable-memory requirements.
Prerequisites
Linux:
- Git
- Bash
- Dart or Flutter on
PATH - Go 1.23+
- Python and standard build dependencies required by Dart/Flutter
macOS:
- Git
- Bash
- Dart or Flutter on
PATH - Go 1.23+
- Xcode command line tools
- Full Xcode for iOS simulator/device follow-up
Both platforms need network access for a fresh git submodule update and
gclient sync.
Bootstrap
Linux:
./scripts/bootstrap_linux.sh
macOS:
./scripts/bootstrap_macos.sh
Useful environment variables:
| Variable | Effect |
|---|---|
SKIP_GCLIENT_SYNC=1 |
Do not run gclient sync. Useful when dependencies are already present. |
SKIP_TESTS=1 |
Prepare checkout only; skip Dart/Go tests. |
DART_BIN=/path/to/dart |
Override the Dart executable. |
FLUTTER_BIN=/path/to/flutter |
Override the Flutter executable. |
GO_BIN=/path/to/go |
Override the Go executable. |
RUN_IOS_SMOKE=1 |
On macOS, run a no-codesign iOS build smoke check when Flutter/Xcode are available. |
Expected Checks
The bootstrap scripts run:
git submodule update --init --recursive- platform-specific
.gclientgeneration - optional
gclient sync - public updater sync into the Flutter engine third-party location
- Shorebird CLI focused tests for self-hosted
base_urlbehavior - open AOT patch tool tests
- self-hosted server Go tests
- license/flavor AOT verification when
dart-sdk-new/out/ReleaseX64AotPatch/args.gnalready exists
iOS Preparation Notes
The macOS script writes:
target_os = ["mac", "ios"]
That prepares gclient for iOS dependencies. The actual iOS runtime test should still be run later on macOS after the Flutter engine/Dart SDK patch build is available. The AOT patching design remains iOS-compatible only if patch loading uses mapped snapshot data/instructions and does not rely on JIT, the KBC interpreter, or writable executable memory.