Skip to content

runtime: implement synctest - #5649

Draft
jakebailey wants to merge 1 commit into
tinygo-org:devfrom
jakebailey:synctest
Draft

runtime: implement synctest#5649
jakebailey wants to merge 1 commit into
tinygo-org:devfrom
jakebailey:synctest

Conversation

@jakebailey

Copy link
Copy Markdown
Member

This ports synctest over to tinygo, with support for all platforms/schedulers. This should get encoding/json and others mostly working, though the synctest users have other problems (like missing some reflect stuff).

I've done some special logic to make synctest stuff not included when synctest.Run is not called, since otherwise the binary gets big. It's really only needed in tests.

Add the synctest ABI and testing integration.

Track bubble tasks across all schedulers. Add fake time, timer and
channel ownership, durable blocking, and sync integration.

Keep synctest paths out of programs that do not call Run, and retain the
futex fast path for WaitGroups outside bubbles.

Run supported upstream synctest tests and the encoding/json regression
from the standard library test targets.

Update compiler output and binary size baselines for the runtime layout
changes.
@jakebailey

Copy link
Copy Markdown
Member Author

CI failure is expected without #5550

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant