Skip to content

test: add github workflow for running tests #11

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

Open
wants to merge 7 commits into
base: jtv/session3
Choose a base branch
from
Open

Conversation

miki725
Copy link
Collaborator

@miki725 miki725 commented Apr 22, 2025

No description provided.

viega and others added 7 commits April 9, 2025 16:43
1. I have implemented most of the core capture/replay functionality,
   including capturing events to streams. Though, somewhere along the
   way, I undid using the stream interface (publishing to the proxy
   object) for the capture file, because I thought I might have had an
   IO bug. But, I don't think I actually did; there was definitely
   something internal I'd been missing that I believe was responsible
   for the behavior.

2. Seek / Tell can now be added to streams. Only instantiated it for files though.

3. Added support for being able to set the replay speed (a float
   that's a multiple.  e.g., a value of 2.5 will make the replay 2.5x
   as fast.

4. Have started on the early pre-language integration version of the test
   runner.

   It currently creates a script file for you. It's not orchestrating
   the run yet though.

5. I added WINCH signal handling, so that resizing the terminal window
   is handled properly. Though this is not yet making it into the
   capture / replay stream (which is very necessary).

6. Fixed a small bug in the signal registration.

Significant TODO items for the session manager:

Short term:
1. Add timeouts (total time and idle time)
2. Add the test runner (including appropriate state machines)
3. Hook creating and running tests up to the `con4m` command.
4. Make sure the right actions for state machines exist.
5. Add the WINCH events to the capture AND the replay correctly, including the start position (add to header).
6. Go back to using the stream API.

Stretch goals:
1. Export to ASCII-Cast
2. Add a basic cap10/cinema command (with associated state machine).
3. Add a 'coding demo' mode as an example.
4. Get signal handlers unsubscribed when their fd dies (add finalizers back in)

Med term:
1. Wrap the whole API in n00b syntax.
2. Generate animated GIFs ourselves, instead of relying on going to asciicast.
3. Allow scrubbing in the file, and editing the file.

Long term:

1. The 'movie' mode should re-encode to a different format so that we
   can actually support proper scrubbing. Meaning, we need to at least
   keep track of every positional write, so that we can create
   'iframes' in the stream.
not got everything it should have, even before hooking it up to n00b.

But, it is good enough for now.

Major additions are:

- Added timeouts to the session state machine, and capture/replay for
   window size changes.

- Broke up the (fairly large) session module into four logical units,
  the core/init, capture, replay and 'control', which includes the
  state machine

- Redid all the lock debugging to provide more useful information.

- Regexs now have a repr() and are n00b C-object types. Did not connect them up to n00b literals.

- Added the 'testgen' utils module, and hooked it up to the n00b
  command ('record' and 'test' commands).

- When tests fail, provide a bunch of debug info when tests fail, like the state machine, and
  buffered up I/O.

- Added more internal compile-time debugging for the message system,
  to make it easy to get info about when things are queued, to make it
  easier to tie to when they are coming out. More to be done later.

- Added Thread cancelation on exit, and changed thread cleanup to
  alwaysuse pthread cleanup handlers.
…be working yet (pause and unpause are working though)
@viega viega force-pushed the jtv/session3 branch 3 times, most recently from 175a266 to 08c424f Compare April 26, 2025 21:55
@viega viega force-pushed the jtv/session3 branch 16 times, most recently from 2797b3c to a323624 Compare May 13, 2025 23:32
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.

2 participants