Skip to content

IRC Foundation's script runner to assist in writing developer docs

License

Notifications You must be signed in to change notification settings

ircdocs/script-runner

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IRC Foundation IRCd Script Runner

This is a framework that runs scripts over IRC servers (particularly our test servers). It's an easy way to send a consistent burst of traffic to a bunch of different servers, and the output a file which can be easily looked through to see differences and collect examples to populate the IRC Foundation's Developer Docs.


It uses a very simple script format (described in-detail here) to send traffic, wait for responses, and connect/disconnect clients as needed.

Roughly:

# this defines the client IDs in use
! <client_id>{ <client_id>}

# this is a comment
<client_id> <line to send>
    -> <message or numerics to wait for>
    -> <client_id>: <message or numerics the given client should wait for>

For example:

! dan alice
dan: NICK dan
dan: USER d d d d
    -> 376 422
alice: NICK alice
alice: USER a a a a
    -> 376 422
dan: PRIVMSG alice :Here is a line!
    -> alice: privmsg

Once connection registeration has completed, clients send PING messages to ensure that command responses are tracked correctly. Before registration has completed, the PING command cannot be used, so clients use the -> lines. Because of this, the -> lines are only be used to wait for things pre-registration (such as CAP response lines and the -> 376 422 above) or after registration to ensure that other clients receive responses from one client's actions (the -> c2: privmsg in the above example).

Because of how we track commands and messages, this framework can't be used to test the PING command or PONG response.

The tool outputs the traffic received by each client, delineated nicely.

Assumptions

This tool assumes:

  • No other clients are connected to the server.
  • Any spam-protection, filtering, or reconnection throttling has been disabled.

If these assumptions are not true, the bundled scripts may fail and break in surprising ways.

About

IRC Foundation's script runner to assist in writing developer docs

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 100.0%