Repository navigation
Run Flutter widget code on Codename One #5883
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
Merged
Merged
Changes from all commits
Commits
Show all changes
603 commits
Select commit
Hold shift + click to select a range
dba7c66
fidelity: capture only once every tile has painted where it will be c…
shai-almog bb22dba
Mac port: take the window's first size from its saved frame and fixed…
shai-almog 0d5b820
parparvm-parallel-mark CI: retry transient Central failures
shai-almog 45eee13
Windows screenshot CI: restore the Maven repository from the nearest …
shai-almog fd661d9
Merge remote-tracking branch 'origin/master' into flutter-dart-transp…
shai-almog f65cd25
iOS simulator tests: build the embedded watch app for the runner's ar…
shai-almog 456458a
Merge remote-tracking branch 'origin/master' into flutter-dart-transp…
shai-almog d4d0524
Merge remote-tracking branch 'origin/master' into flutter-dart-transp…
shai-almog a148446
ParparVM: read DartLongList's array through CN1_ARRAY_DATA
shai-almog 04551b7
CI: skip the translator-selected DLL intrinsics arm; fix the Telemetr…
shai-almog 68f01f6
macOS: mark idle present surfaces purgeable
shai-almog a1a1fbe
ParparVM: cull what nothing reachable calls, not only what nothing calls
shai-almog 217610a
ParparVM: inline threshold 50 on optimized C builds
shai-almog d2dfb9b
Desktop: honour desktop.width/height on native Linux and Windows; ben…
shai-almog 175ae8d
macOS: purgeable screen texture at rest, memoryless stencil
shai-almog 6560fe8
ParparVM: keep the size changes building under self-hosting and zig cc
shai-almog 14c01ac
Metal: round overflowing pictures at the box instead of building a ro…
shai-almog 1461dc1
flutter-bench: attribute compute failures against a host JVM reference
shai-almog 23469b8
JS port: build objects from a per-class cached layout
shai-almog da0e534
JS port: hold a long that fits in 53 bits as a plain number
shai-almog 24d3d37
JS port: emit collection and autobox natives as calls to their Java t…
shai-almog de43171
JS port: stop 64-bit long values flipping form on every operation
shai-almog f377038
JS port: allocate through a per-class function V8 can inline
shai-almog 54b733a
JS port: call a virtual method directly when the receiver type allows…
shai-almog f91bd21
JS port: runtime strings are not interned; cheaper class-init guard, …
shai-almog c3a18ea
JS port: allocation-free identity counter; direct calls skip the gene…
shai-almog bb668dd
JS screenshots: reseed chart-time, whose golden recorded "Invalid Date"
shai-almog 3b68a50
perf gate: calibrate Linux x64 AMD EPYC 9V45
shai-almog d8ebd8a
JS port: match bridge-built name stems only against the bridge sources
shai-almog c6865e1
JS port: allocation functions only where an allocation is hot
shai-almog d3d5071
JS port: run java.lang.System's static initializer instead of replaci…
shai-almog fa90f03
JS port: start the application lifecycle on the EDT
shai-almog 737e3b7
JS port: hashCode/equals sites are synchronous; exact receiver type f…
shai-almog 5eddfd3
Linux: cut three launch costs -- GDK GL probing, repeated font metric…
shai-almog 75088bb
JS port: direct calls at the site, literal long constants, indexed na…
shai-almog 074cf54
Linux: draw scaled images directly; cache text widths
shai-almog 8c3d4c1
Windows: draw scaled images directly
shai-almog ed33954
JS port: numeric array stores stay numeric; inline bounds test in loops
shai-almog 69997ed
JS tests: copyright header on the contended-monitor fixture
shai-almog 8321d9c
JS port: string literals read in a loop keep their String in a slot
shai-almog fad4135
Windows screenshots: reseed the two scaled-image goldens
shai-almog 47730f4
Linux screenshots: reseed the two scaled-image goldens (x64 and arm64)
shai-almog 7537b75
perf gate: keep a failed benchmark's run logs where the job uploads them
shai-almog 31a4b37
ParparVM CMake: inline threshold on generated sources only
shai-almog c8fae5f
ParparVM CMake: a GCC inline limit, so a gcc-built Linux app shrinks too
shai-almog 725f476
Metal: load the default library once per pipeline cache
shai-almog ab9efbd
iOS bundle: ship PNGs as they are, and not the port's design notes
shai-almog 2d6e77c
ParparVM cull: type-aware reachability for the C targets, with a CI trap
shai-almog 5a4bd6c
ParparVM cull: seed reflection per Class.forName site, not per newIns…
shai-almog 6e80b89
macOS: build the main window before [NSApp run], overlapping the VM boot
shai-almog 97d4b84
iOS size: cull what only dead native C names; drop the loose legacy i…
shai-almog f1539c5
Merge remote-tracking branch 'origin/master' into flutter-dart-transp…
shai-almog d50f587
flutter-bench: re-record the Android code-size baseline
shai-almog d922cb9
macOS: document why the main window is built before [NSApp run]
shai-almog 23e387a
Themes: custom mode ships and installs no native theme, on every port
shai-almog e6090c2
Theme install: defer the desktop base theme, build control glyphs on …
shai-almog 0011310
Themes: nativeTheme=custom does not reach the JavaSE desktop
shai-almog 0bcf456
flutter-bench: Android code-size baseline after the custom theme mode…
shai-almog 927fb4b
perf gate: re-measure the Windows AMD Family 26 objectAllocation memo…
shai-almog 0eb91fc
Translator: make the reachability cull cheap without changing what it…
shai-almog 047c9d0
Merge remote-tracking branch 'origin/master' into flutter-dart-transp…
shai-almog 8c399d5
Flutter runtime: cut first-build overhead in mount, styling and theme…
shai-almog 456f136
Fidelity harness: wait for tile geometry, not just position, and rech…
shai-almog 2fc4148
flutter-bench: Android code-size baseline after the runtime mount/sty…
shai-almog d070d57
flutter-bench: Android code-size tolerance +0.5%
shai-almog c2c7622
flutter-bench: keep the write token out of the job that runs pull req…
shai-almog b7f0e91
SimpleDateFormat: parse text without a zone in the configured zone
shai-almog 4875edd
UIManager: install a deferred base theme before getThemeName and zoom…
shai-almog 138159d
Dart transpiler and Flutter runtime: fixes from review
shai-almog a8b3826
perf gate: a crashed round records the native stacks of every thread
shai-almog 12c3ddf
perf gate: linux-arm64 stringBuilding memory row tolerates the JDK's …
shai-almog 20fe663
Merge remote-tracking branch 'origin/master' into flutter-dart-transp…
shai-almog 9717cb0
Merge remote-tracking branch 'origin/master' into flutter-dart-transp…
shai-almog 1b36753
flutter-bench: judge start-up and memory by the median of paired per-…
shai-almog 0274c5c
Merge remote-tracking branch 'origin/master' into flutter-dart-transp…
shai-almog bebca11
macOS: serve the first frame before [NSApp run]; publish the window's…
shai-almog 604b8ee
macOS: build the menu bar after the first frame
shai-almog 2fc134c
Perf baselines: parameterise the overlay engine by a Layout, share th…
shai-almog 30d1fe2
flutter-bench: regression baselines on the performance gate's overlay…
shai-almog c045041
flutter-bench: calibrate this branch's ratio rows and re-measure its …
shai-almog 4432a53
ci: check and fold the Flutter benchmark's baselines with the perform…
shai-almog 423d7e3
flutter-bench: document the regression baselines beside the head-to-h…
shai-almog 4314574
flutter-bench: size rows are one-sided; a shrink is reported, not failed
shai-almog d8bac45
flutter-bench: calibrate pr/5883.json from run 37015988276 at 604b8ee2e5
shai-almog 40867c4
flutter-bench: repair the README a scripted edit multiplied to 14 MB
shai-almog a8a84e6
flutter-bench: JavaScript reports a loss to Flutter without failing o…
shai-almog 3393801
dart-transpiler: lifted statements run where their operand is evaluated
shai-almog bc69b4b
dart-transpiler: a lazy initialiser that throws runs again on the nex…
shai-almog b5aa47b
dart-runtime: Timer.cancel() unschedules the task on the Display path
shai-almog 56e880e
dart-runtime: RegExp.allMatches is lazy, as Dart's is
shai-almog 1ea1dc9
dart-transpiler: null-aware shorting of writes and indexes; setter wr…
shai-almog d4317f3
dart-transpiler: no unwind handler in a getter whose initialiser cann…
shai-almog 33c52ee
dart-transpiler: an untyped variable has the type of the class it con…
shai-almog e028a96
dart-transpiler: generic members seen through subclasses, mixins and …
shai-almog 290129e
flutter-bench: re-record the gallery's sizes after the transpiler cor…
shai-almog 73741bc
NetworkTracerQueueTest: flush the EDT before checking a finished requ…
shai-almog 827659c
Perf baselines: recalibrate Zen 3 Windows hello RAM from all its runs
shai-almog af3b033
flutter-bench: re-record macOS sizes after the transpiler correctness…
shai-almog e0e2a75
dart-runtime: document why removeWhere does not detect every modifyin…
shai-almog 0d35e18
dart-runtime: a bracketed URI host must be an IP literal
shai-almog 8c5c012
dart-transpiler: labels, local late, super.named, enum collisions, vo…
shai-almog 8fc42c8
flutter-runtime: Localizations.of depends on the app's localizations
shai-almog e19fd9c
flutter-runtime: a real display-size change rebuilds the MediaQuery r…
shai-almog 63676f4
dart-transpiler: infer untyped closure types; named constructors call…
shai-almog 26bb7e2
ci: check a pull request's baselines against the branch it was merged…
shai-almog 925f327
Android: never call into a WebView after destroy()
shai-almog 9bc7e63
dart-runtime: decode a zone's surrogate pair by hand; ParparVM has no…
shai-almog 00a2a83
SimpleDateFormat: equals and hashCode count the configured time zone
shai-almog 1ee295c
dart-runtime: Uri drops the scheme's default port, as Dart's does
shai-almog 6157ab6
dart-runtime: ArgumentError prints as Dart's does
shai-almog 70e13cb
dart-transpiler: async closures, shared-body guards, extension scope,…
shai-almog bd5d423
dart-transpiler: a switch reads a getter of its subject once across c…
shai-almog 78c6ead
dart-runtime: say at DartUri why an empty path gets no slash
shai-almog 676ce80
ci: run the Dart transpiler and runtime tests, and fail if they skip
shai-almog 6432299
dart-runtime: int.parse reads 0x up to 0xffffffffffffffff as bits, AS…
shai-almog ca36b63
dart-runtime: List.reversed throws when the list changes length mid-loop
shai-almog d2c9865
dart-runtime: Uri reads a port with int.parse's syntax, as Dart does
shai-almog b74fab8
dart-transpiler: Duration's operators compile and behave as Dart's
shai-almog 710015a
dart-runtime: an oversized Uri port parses and Uri.port throws, as Da…
shai-almog 0e43a16
flutter-runtime: Opacity composites its subtree once, through a layer
shai-almog 441eb25
flutter-runtime: Transform hits its child where it is drawn
shai-almog 6c21da3
flutter-runtime: ScrollController drives every attached list; a user …
shai-almog b26f5ef
flutter-runtime: Canvas.clipRect clips to the rectangle the transform…
shai-almog a437fba
flutter-runtime: declare Duration's operators in its Dart stub
shai-almog 7dd1db8
flutter-runtime: TransformHitTestTest taps relative to where the box …
shai-almog 176bafd
flutter-bench: re-record sizes after the review fixes
shai-almog f7830d8
perf gate: rebaseline recursion time on Windows x64 Intel Family 6 Mo…
shai-almog 838f2d4
perf gate: recalibrate valueEscape time on Windows x64 Intel Family 6…
shai-almog 00d7bd5
perf gate: recalibrate objectAllocation RAM on Windows x64 AMD Family…
shai-almog bee1f18
Merge remote-tracking branch 'origin/master' into flutter-dart-transp…
shai-almog a828d43
cn1app-archetype: default javaVersion back to auto; flutter-bench ask…
shai-almog b7ff588
flutter-bench: find the generated iOS and Android projects in either …
shai-almog 0f4188f
Android: preload WebView JNI argument types in debuggable apps
shai-almog 7808455
flutter-bench: recalibrate the iOS download size after the master merge
shai-almog c717e15
Merge remote-tracking branch 'origin/master' into flutter-dart-transp…
shai-almog 483d5f9
Translator: ReachabilityCull reads opcodes from the in-tree classfile…
shai-almog be95ff2
perf gate: drop overlay rows master's fold re-measured
shai-almog bf3cd54
Translator: route the _dn peephole through rx, not String.replaceAll
shai-almog e565fc2
flutter-bench: recalibrate JavaScript sizes after the master merge
shai-almog 69b81a5
vm/tests: TranslatorJavaApiSurfaceTest runs on JDK 8 too
shai-almog a3a06fa
perf gate: rebaseline translator RAM on Windows arm64 (D84)
shai-almog fe482ff
JS port: wait for the lifecycle before the main thread finishes
shai-almog d18ffd8
flutter-bench: recalibrate JavaScript sizes for the lifecycle fix
shai-almog 5efe54b
perf gate: rebaseline hello RAM on Windows x64 AMD 25/1
shai-almog 27ef65f
ParparVM: close the stop-the-world hold's resume window
shai-almog fa9f4cc
ParparVM GC verifier: a reference seen before its bump is not reclaimed
shai-almog 6fd7152
ParparVM GC verifier: check that a held thread stays held, directly
shai-almog 6b49c15
perf gate: drop the Windows x64 AMD 25/1 hello RAM rebaseline
shai-almog 1f97b4f
Dart/Flutter runtime: const collections, Directionality, locale resol…
shai-almog 358604f
dart-transpiler: type fields declared from untyped collection literals
shai-almog edc7448
ParparVM GC gates: fixtures that DeadFieldElimination had hollowed out
shai-almog 0171bda
ParparVM GC: document why a weak referent on an owned page is not cle…
shai-almog 88863e5
Flutter: mark Dart support experimental; recalibrate size and macOS R…
shai-almog 6ebf543
Merge origin/master into flutter-dart-transpilation
shai-almog c59be6b
perf baseline: drop the macos-arm64 objectAllocation row master now owns
shai-almog c5c1aff
flutter-bench: recalibrate JavaScript sizes after the master merge
shai-almog 0b14bca
Review fixes: routes, entry point, lazy statics, zone equality; cull …
shai-almog b55cc54
Merge origin/master into flutter-dart-transpilation
shai-almog e8d2fa7
Cull: narrow Class.forName of a literal; review fixes in Dart runtime…
shai-almog 830bc1b
Merge remote-tracking branch 'origin/master' into flutter-dart-transp…
shai-almog bcb2148
Review fixes: checked DateTime arithmetic, nullable ==, controller du…
shai-almog 233859d
ParparVM: resume handshake orders with a seq_cst store/load, not a fence
shai-almog 8c2e73d
Merge remote-tracking branch 'origin/master' into flutter-dart-transp…
shai-almog a4254d5
Translator: getCallers returns a read-only view instead of a copy
shai-almog 68d7233
Merge remote-tracking branch 'origin/master' into flutter-dart-transp…
shai-almog 2d83aba
Implement Flutter platform channels for the Dart transpiler runtime
shai-almog 068dd1c
cn1:import-flutter-project: import a Flutter app with one command
shai-almog 88ab9d9
Flutter channels: convert Java values to Dart's types at the boundary
shai-almog 331199a
Flutter chapter: open with the benchmark, import in one command, Java…
shai-almog 4e1780c
Flutter runtime: Cupertino button, disabled TextField and TabBar indi…
shai-almog 6f28505
Flutter chapter: recaptured text-field and colors after the runtime f…
shai-almog 7ed5047
Merge remote-tracking branch 'origin/master' into flutter-dart-transp…
shai-almog 47fa2de
Flutter runtime: FAB label/shadow, Shrine elevation, Cupertino button
shai-almog 0ded06f
Merge remote-tracking branch 'origin/master' into flutter-dart-transp…
shai-almog 7c9820f
Flutter chapter: alt text without commas; record the translator's low…
shai-almog cc97a35
Flutter runtime: Shrine NEXT shadow regression, Cupertino button/nav-bar
shai-almog 169cb3f
Flutter chapter: every gallery screenshot captured in the phone skin
shai-almog f3713fd
flutter-runtime: disabled icon color, FAB/button/card elevation shadows
shai-almog 8b05712
flutter-runtime: keep elevation shadows at 1mm and light; recapture t…
shai-almog 7561cf9
Merge remote-tracking branch 'origin/master' into flutter-dart-transp…
shai-almog c54cdab
Flutter chapter: 'on the screen' (LanguageTool ON_OFF_SCREEN_HYPHEN)
shai-almog bb9ede3
Merge remote-tracking branch 'origin/master' into flutter-dart-transp…
shai-almog 61b8595
Fix flutter-runtime review findings: repeat() completer leak, decorat…
shai-almog 20c3260
Fix review findings: Graphics clip fallback, Dart Stream/Uri/DateTime
shai-almog 845584f
Record the translator's lower memory on linux-arm64; note Overlay.of …
shai-almog 3af2d66
Merge remote-tracking branch 'origin/master' into flutter-dart-transp…
shai-almog 441cc7b
perf overlay: drop the linux-x64 translator row #6006 also rebaselined
shai-almog 5968a40
GC verifier: wait for a late-published class, not only the bump; head…
shai-almog 4a171b7
Fix review findings: RegExp group count, Stream listener errors, Snac…
shai-almog bcf75dd
Fix Flutter asset/version import review findings
shai-almog 2d78fb3
Merge remote-tracking branch 'origin/master' into flutter-dart-transp…
shai-almog 3bdf003
perf overlay: drop the stale arm64 translator row; record the Xeon 69…
shai-almog 8fdf261
Fix flutter-runtime review findings: mirrored scale, Dismissible axis…
shai-almog 0775cf9
flutter-bench: record Android code size after the runtime fixes (+0.51%)
shai-almog 217d9b8
Fix dart-transpiler review findings: whereType intrinsic, Duration co…
shai-almog f0bab55
Fix review findings: DateTime local overflow narrowing, unmodifiable …
shai-almog b82924f
Flutter assets: give the generated manifest a name no asset can flatt…
shai-almog 86a2c11
Merge remote-tracking branch 'origin/master' into flutter-dart-transp…
shai-almog a1e23b5
perf overlay: drop the Windows arm64 translator row #6010 also recorded
shai-almog 8c15f01
perf overlay: record the getCallers memory improvement on linux-arm64…
shai-almog b6486c7
Fix review findings: DartListMapView mutators, StreamController close…
shai-almog d72350f
Flutter import: copy a single-file asset's resolution-variant siblings
shai-almog 1d70b95
Fix review findings: identity-map keys() membership, image retry, Str…
shai-almog 7e099f4
Merge remote-tracking branch 'origin/master' into flutter-dart-transp…
shai-almog 5e44897
Fix dart-transpiler: bind a generic stub method's own type parameters
shai-almog 9a081aa
Fix review findings: vertical PageView padEnds gap, ListView reverse
shai-almog 0b60a2b
Fix review findings: Navigator nested-widget params/maybePop Future, …
shai-almog 6245994
Merge remote-tracking branch 'origin/master' into flutter-dart-transp…
shai-almog 02c0a05
perf overlay: windows-x64 translator memory; macOS recursion placement
shai-almog 7991bd1
Fix build-engine review findings: Android versionName float narrowing…
shai-almog c82d0ed
Fix review findings: pre-init FlutterAssets.open(), identity-set toSe…
shai-almog f354bec
Merge remote-tracking branch 'origin/master' into flutter-dart-transp…
shai-almog 8bbdafd
Fix review findings: Path addPath/shift geometry, RegExp.allMatches s…
shai-almog 6f56f4d
dart-transpiler: diagnose a type-variable witness instead of lowering…
shai-almog fbba880
DefaultLookAndFeel: arm the lazy glyph-pending flags from construction
shai-almog 08247e7
Transpiler: keep 'as T' on a type variable as an unchecked cast
shai-almog b9d370a
Fix flutter-runtime review findings: animateTo direction, repeat coun…
shai-almog 42ce096
Flutter importer: find variants for a missing asset, honor the config…
shai-almog c3585fa
Fix review findings: FlutterAssets ratio-dir regex, DartList empty bu…
shai-almog e1f312b
Fix dart-transpiler review findings: stale showDialog/Navigator.push/…
shai-almog 794cec9
Click combo popups on the EDT in ComboBoxPopupTestSupport
shai-almog c67b2ec
Fix dart-transpiler, Android, l10n and transition review findings
shai-almog f49fd37
Merge remote-tracking branch 'origin/master' into flutter-dart-transp…
shai-almog 78aa3e1
flutter-bench: record JavaScript sizes after three review rounds and …
shai-almog a1a9fd5
Fix dart-transpiler review findings: stuck pushReplacementNamed futures,
shai-almog 9de95e2
Fix programmatic style overrides lost under a deferred base theme
shai-almog 79f4179
CupertinoPageTransitionTest: record draw order with an Image subclass…
shai-almog 352bb7f
Merge remote-tracking branch 'origin/master' into flutter-dart-transp…
shai-almog b88c8d1
Fix dart-transpiler library-structure gaps: part files, conditional i…
shai-almog b9d85fd
Fix review findings: covariant override bridges, Dart iterator checks…
shai-almog eb95e12
Merge remote-tracking branch 'origin/master' into flutter-dart-transp…
shai-almog 05f7ea1
Fix flutter-bench compile break and review findings: Form state, wher…
shai-almog 49351dc
Fix review findings: restoration callbacks, RestorableRouteFuture.pre…
shai-almog 4d4cabf
Merge remote-tracking branch 'origin/master' into flutter-dart-transp…
shai-almog 9243b9b
Record review-fix code growth; android.nativeThemes.keepAll; raise Ja…
shai-almog 0da3c26
Fix review findings: show/hide in name resolution, Uri host normaliza…
shai-almog ad846c4
Fix review findings: prefixed calls and barrel re-exports in name res…
shai-almog fb065ce
Fix review findings: unmount a wrapped tree removed with an ancestor,…
shai-almog ca289c9
Fix review findings: identity-set iterator checks, onCancel when a st…
shai-almog 3feb61e
Fix review findings: install the Flutter runtime for guide demos, lib…
shai-almog 1a066f9
Fix review findings: route on the stack before its page builds, pop r…
shai-almog 7f3c569
Fix review findings: await on a nullable Future, reused manual transi…
shai-almog 527252f
Merge remote-tracking branch 'origin/master' into flutter-dart-transp…
shai-almog 828dd15
Fix copyright header and review findings: empty query keys, native ma…
shai-almog 1ee07ef
Fix review findings: start-up GC off the EDT, overlay themes in app r…
shai-almog 1a1d646
Fix review findings: dispose a dialog before its result, cancel upstr…
shai-almog b4689f9
Fix CI test display and review findings: replacement before the remov…
shai-almog 9bb8f7b
Merge remote-tracking branch 'origin/master' into flutter-dart-transp…
shai-almog afbe4ca
Merge remote-tracking branch 'origin/master' into flutter-dart-transp…
shai-almog 721fd79
Drop perf rebaselines #5984 also moved (linux-arm64 hello, windows-x6…
shai-almog File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,145 @@ | ||
| name: Dart and Flutter tests | ||
|
|
||
| # Runs the unit and behavior tests of the Dart transpiler and the two runtimes | ||
| # it targets (maven/dart-transpiler, maven/dart-runtime, maven/flutter-runtime). | ||
| # | ||
| # Nothing else does. pr.yml runs core-unittests only, and flutter-bench.yml | ||
| # builds these modules with -DskipTests. The transpiler's BehaviorTest and | ||
| # CompileGeneratedTest are also SKIPPED, not failed, when JAVA17_HOME or the | ||
| # runtime jars are missing, so a leg that merely forgot JAVA17_HOME would stay | ||
| # green having executed nothing. CN1_DART_TESTS_REQUIRED=1 below turns those | ||
| # skips into failures, and the last step checks the reports independently. | ||
|
|
||
| on: | ||
| pull_request: | ||
| paths: | ||
| - 'maven/dart-transpiler/**' | ||
| - 'maven/dart-runtime/**' | ||
| - 'maven/flutter-runtime/**' | ||
| # Everything those modules compile against: the runtimes depend on core, | ||
| # whose sources are CodenameOne/src, and -am builds factory with it. | ||
| - 'CodenameOne/src/**' | ||
| - 'Factory/src/**' | ||
| - 'maven/core/**' | ||
| - 'maven/factory/**' | ||
| - 'maven/pom.xml' | ||
| - 'scripts/ci/retry.sh' | ||
| - '.github/workflows/dart-flutter-tests.yml' | ||
| push: | ||
| branches: | ||
| - master | ||
| paths: | ||
| - 'maven/dart-transpiler/**' | ||
| - 'maven/dart-runtime/**' | ||
| - 'maven/flutter-runtime/**' | ||
| - 'CodenameOne/src/**' | ||
| - 'Factory/src/**' | ||
| - 'maven/core/**' | ||
| - 'maven/factory/**' | ||
| - 'maven/pom.xml' | ||
| - 'scripts/ci/retry.sh' | ||
| - '.github/workflows/dart-flutter-tests.yml' | ||
| workflow_dispatch: | ||
|
|
||
| permissions: | ||
| contents: read | ||
| # The pr-ci-container image lives on ghcr; without this the job dies in | ||
| # "Initialize containers" with a bare "denied". | ||
| packages: read | ||
|
|
||
| concurrency: | ||
| group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.event.pull_request.number || github.ref }} | ||
| cancel-in-progress: true | ||
|
|
||
| jobs: | ||
| dart-flutter-tests: | ||
| runs-on: ubuntu-24.04 | ||
| timeout-minutes: 45 | ||
| container: ghcr.io/codenameone/codenameone/pr-ci-container:latest | ||
| env: | ||
| # The behavior tests write UTF-8 sources and read UTF-8 output. | ||
| LANG: C.UTF-8 | ||
| LC_ALL: C.UTF-8 | ||
| defaults: | ||
| run: | ||
| shell: bash | ||
| steps: | ||
| - uses: actions/checkout@v6 | ||
|
|
||
| - name: Check the container's JDK 17 | ||
| run: | | ||
| if [ -z "${JAVA_HOME_17:-}" ] || [ ! -x "$JAVA_HOME_17/bin/javac" ]; then | ||
| echo "JAVA_HOME_17 is unset or has no javac: '${JAVA_HOME_17:-<unset>}'" >&2 | ||
| exit 1 | ||
| fi | ||
| echo "JAVA_HOME=$JAVA_HOME_17" >> "$GITHUB_ENV" | ||
| echo "JAVA17_HOME=$JAVA_HOME_17" >> "$GITHUB_ENV" | ||
| echo "$JAVA_HOME_17/bin" >> "$GITHUB_PATH" | ||
|
|
||
| - name: Cache Maven dependencies | ||
| uses: actions/cache@v5 | ||
| with: | ||
| path: ~/.m2 | ||
| key: ${{ runner.os }}-m2-dart-${{ hashFiles('**/pom.xml') }} | ||
| restore-keys: | | ||
| ${{ runner.os }}-m2-dart- | ||
| ${{ runner.os }}-m2 | ||
|
|
||
| # JDK 17, because the runtimes compile at release 17: maven/pom.xml adds | ||
| # them to the reactor only on 17+ (flutter-modules), and the transpiler | ||
| # only gets them on its test classpath there (transpiler-tests). | ||
| # | ||
| # verify rather than test: the transpiler's harness links the generated | ||
| # Java against the runtime JARS in each module's target/, which test never | ||
| # packages. Javadoc and the static analysis gates are skipped -- they are | ||
| # not what this job is for, and the core's run in pr.yml. | ||
| - name: Run the transpiler and runtime tests | ||
| env: | ||
| CN1_DART_TESTS_REQUIRED: '1' | ||
| # Retry only a dependency-resolution failure, never a failing test. | ||
| RETRY_ONLY_MATCHING: transient | ||
| run: | | ||
| cd maven | ||
| bash ../scripts/ci/retry.sh mvn -B verify \ | ||
| -pl core,dart-runtime,flutter-runtime,dart-transpiler -am \ | ||
| -Dmaven.javadoc.skip=true -Dmaven.source.skip=true \ | ||
| -Dspotbugs.skip=true -Dpmd.skip=true -Dcheckstyle.skip=true -Djacoco.skip=true | ||
|
|
||
| # Independent of the switch above: a module whose tests silently stopped | ||
| # running (a profile that no longer activates, a surefire include that | ||
| # matches nothing) produces no report at all, which no test can notice. | ||
| - name: Check that every suite ran | ||
| run: | | ||
| python3 - <<'EOF' | ||
| import glob, os, sys | ||
| import xml.etree.ElementTree as ET | ||
|
|
||
| def totals(pattern): | ||
| tests = skipped = 0 | ||
| files = glob.glob(pattern) | ||
| for f in files: | ||
| r = ET.parse(f).getroot() | ||
| tests += int(r.get("tests", 0)) | ||
| skipped += int(r.get("skipped", 0)) | ||
| return len(files), tests, skipped | ||
|
|
||
| failed = False | ||
| for module in ("dart-runtime", "flutter-runtime", "dart-transpiler"): | ||
| n, tests, skipped = totals("maven/%s/target/surefire-reports/TEST-*.xml" % module) | ||
| print("%s: %d reports, %d tests, %d skipped" % (module, n, tests, skipped)) | ||
| if tests == 0: | ||
| print("::error::%s ran no tests" % module) | ||
| failed = True | ||
|
|
||
| harness = "maven/dart-transpiler/target/surefire-reports/TEST-com.codename1.dart.transpiler.harness.%s.xml" | ||
| cases = [d for d in os.listdir("maven/dart-transpiler/src/test/resources/behavior") | ||
| if os.path.isdir(os.path.join("maven/dart-transpiler/src/test/resources/behavior", d))] | ||
| for name, expected in (("BehaviorTest", len(cases)), ("CompileGeneratedTest", 2)): | ||
| n, tests, skipped = totals(harness % name) | ||
| print("%s: %d tests, %d skipped (expected %d)" % (name, tests, skipped, expected)) | ||
| if n == 0 or tests < expected or skipped != 0: | ||
| print("::error::%s did not run every case: %d run, %d skipped, %d expected" | ||
| % (name, tests, skipped, expected)) | ||
| failed = True | ||
| sys.exit(1 if failed else 0) | ||
| EOF |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.