Browser test: every click that opens a page (Save, Create Webhook, Save Changes, Edit, Open) goes through the new clickAndLoad, which waits, as loadPage does, for that page to load and Alpine.js to start before the test reads it. Before, a read could find an element of the page being left and lose it mid-read, and shown gives a page load only 5 seconds. The WaitReady("#expiry") after Edit is redundant now and gone.
Delivery tests: fDrain takes what is queued without waiting. Both dispatch paths queue before they return, so the task was already queued; the 25 ms timer could be due by the time select looked, and select picks at random among ready cases. The four other tests expecting one task from fDrain had the same race.
internal/handlers: on a busy host, SQLite waiting for the disk at each commit was about 40% of its run time. The test phase now keeps the tests' temporary directories on a tmpfs, capped at 512 MB, several times what the suite uses; GOTMPDIR keeps go's build files on disk. Most of the rest is CPU spent creating each test's own databases, which keeps the tests apart, so it stays. The -p 4 -parallel 8 cap and the 90-second timeout are unchanged.
Deviation: the definition of done asks the delivery test to wait for dispatch with a deadline; it does not wait at all, since dispatch has finished when it reads, and a deadline would bring a timer back.
Model: opus-5-5
For https://git.eeqj.de/sneak/webhooker/issues/507.
- Browser test: every click that opens a page (Save, Create Webhook, Save Changes, Edit, Open) goes through the new `clickAndLoad`, which waits, as `loadPage` does, for that page to load and Alpine.js to start before the test reads it. Before, a read could find an element of the page being left and lose it mid-read, and `shown` gives a page load only 5 seconds. The `WaitReady("#expiry")` after Edit is redundant now and gone.
- Delivery tests: `fDrain` takes what is queued without waiting. Both dispatch paths queue before they return, so the task was already queued; the 25 ms timer could be due by the time `select` looked, and `select` picks at random among ready cases. The four other tests expecting one task from `fDrain` had the same race.
- `internal/handlers`: on a busy host, SQLite waiting for the disk at each commit was about 40% of its run time. The test phase now keeps the tests' temporary directories on a tmpfs, capped at 512 MB, several times what the suite uses; `GOTMPDIR` keeps go's build files on disk. Most of the rest is CPU spent creating each test's own databases, which keeps the tests apart, so it stays. The `-p 4 -parallel 8` cap and the 90-second timeout are unchanged.
- Deviation: the definition of done asks the delivery test to wait for dispatch with a deadline; it does not wait at all, since dispatch has finished when it reads, and a deadline would bring a timer back.
Model: opus-5-5
The browser test waits for each page a click opens to load, and for
Alpine.js to start on it, before reading that page; before, a read
could find an element of the page being left.
The delivery tests' drain takes what is queued without a timer. The
dispatch paths queue before they return, and the 25 ms timer could be
due by the time select looked, which then chose at random between it
and a queued task.
The test phase keeps the tests' temporary directories, and with them
their SQLite databases, on a tmpfs: waiting for the disk at each commit
was about 40% of internal/handlers' run time on a busy host.
Model: opus-5-5
Judgement call: the delivery tests' drain no longer waits at all, instead of waiting with a deadline as the definition of done words it. Every test that drains has already returned from paths that queue before they return, so there is nothing left to wait for.
Unverified: internal/handlers at a host load of 260 to 290; the load while gating reached about 240.
Model: opus-5-5
Review passed.
- Judgement call: the delivery tests' drain no longer waits at all, instead of waiting with a deadline as the definition of done words it. Every test that drains has already returned from paths that queue before they return, so there is nothing left to wait for.
- Unverified: `internal/handlers` at a host load of 260 to 290; the load while gating reached about 240.
Model: opus-5-5
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
For #507.
Browser test: every click that opens a page (Save, Create Webhook, Save Changes, Edit, Open) goes through the new
clickAndLoad, which waits, asloadPagedoes, for that page to load and Alpine.js to start before the test reads it. Before, a read could find an element of the page being left and lose it mid-read, andshowngives a page load only 5 seconds. TheWaitReady("#expiry")after Edit is redundant now and gone.Delivery tests:
fDraintakes what is queued without waiting. Both dispatch paths queue before they return, so the task was already queued; the 25 ms timer could be due by the timeselectlooked, andselectpicks at random among ready cases. The four other tests expecting one task fromfDrainhad the same race.internal/handlers: on a busy host, SQLite waiting for the disk at each commit was about 40% of its run time. The test phase now keeps the tests' temporary directories on a tmpfs, capped at 512 MB, several times what the suite uses;GOTMPDIRkeeps go's build files on disk. Most of the rest is CPU spent creating each test's own databases, which keeps the tests apart, so it stays. The-p 4 -parallel 8cap and the 90-second timeout are unchanged.Deviation: the definition of done asks the delivery test to wait for dispatch with a deadline; it does not wait at all, since dispatch has finished when it reads, and a deadline would bring a timer back.
Model: opus-5-5
6c6a5a5f39toa424939b5dReview passed.
internal/handlersat a host load of 260 to 290; the load while gating reached about 240.Model: opus-5-5