From 2b96b7eb6cb4c38edf28189f26301e58fe0cb697 Mon Sep 17 00:00:00 2001 From: Mo Luo <55039286+moluopro@users.noreply.github.com> Date: Wed, 26 Feb 2025 06:10:08 -0800 Subject: [PATCH] Corrected Building.md and added additional content. Closes https://github.com/dart-lang/sdk/pull/60167 GitOrigin-RevId: 15572be15068c18e0b9787daf7fc2389ae6ee247 Change-Id: I1769a7f24dd38e1f7306372ef480af349aac30e8 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/410446 Commit-Queue: Slava Egorov Reviewed-by: Slava Egorov --- docs/Building-Dart-SDK-for-ARM-or-RISC-V.md | 23 +++++++++++++++++++++ docs/Building.md | 8 ++----- 2 files changed, 25 insertions(+), 6 deletions(-) diff --git a/docs/Building-Dart-SDK-for-ARM-or-RISC-V.md b/docs/Building-Dart-SDK-for-ARM-or-RISC-V.md index c7a589a9f0d..7e33f7bcdbf 100644 --- a/docs/Building-Dart-SDK-for-ARM-or-RISC-V.md +++ b/docs/Building-Dart-SDK-for-ARM-or-RISC-V.md @@ -63,3 +63,26 @@ You can create Debian packages targeting ARM or RISC-V as follows: $ ./tools/linux_dist_support/create_tarball.py $ ./tools/linux_dist_support/create_debian_packages.py -a {ia32, x64, arm, arm64, riscv64} ``` + +# Testing + +In addition to cross-compiling the Dart SDK, test items can also be cross-compiled. Even without the corresponding hardware, you can quickly verify if the source code modifications you made are correct. Below is a simple method for development on the riscv64 platform for your reference. + +Cross-compile the test items on x86_64 Linux to riscv64 and perform correctness check: +1. Follow the steps above to cross-compile the riscv64 sdk. +2. Cross-compile the test items by running: `./tools/build.py --mode release --arch riscv64 most run_ffi_unit_tests`. +3. Install the necessary QEMU dependencies: `sudo apt install qemu-user qemu-user-static qemu-system`. +4. Run the test items, e.g., `tests/lib`: + +```bash +export QEMU_LD_PREFIX=/usr/riscv64-linux-gnu + +./tools/test.py \ + --runtime vm \ + --progress color \ + --arch riscv64 \ + --mode release \ + --time \ + --tasks 8 \ + lib +``` \ No newline at end of file diff --git a/docs/Building.md b/docs/Building.md index 18fd1cfcd59..c7c6c8ddb1b 100644 --- a/docs/Building.md +++ b/docs/Building.md @@ -189,7 +189,6 @@ Dart analyzer tests example: --progress color \ --arch x64 \ --mode release \ - --report \ --time \ --tasks 6 \ language @@ -198,13 +197,10 @@ Dart analyzer tests example: VM tests example: ```bash ./tools/test.py \ - --compiler none \ --runtime vm \ --progress color \ --arch x64 \ --mode release \ - --checked \ - --report \ --time \ --tasks 6 \ language @@ -218,13 +214,13 @@ Dart2JS example: --progress color \ --arch x64 \ --mode release \ - --checked \ - --report \ --time \ --tasks 6 \ language ``` +In the above examples: `--progress` is used to style the progress bar in terminal; `--time` is used to print time information; `--tasks` is used to set the number of parallel tasks; you can use `. /tools/test.py --help` for more details. + ## Troubleshooting and tips for browser tests To debug a browser test failure, you must start a local http server to serve the test. This is made easy with a helper script in dart/tools/testing. The error report from test.py gives the command line to start the server in a message that reads: ```bash