test(tvix/cli): Make the REPL testable
Juggle around the internals of the tvix-cli crate so that we expose the Repl as a public type with a `send` method, that sends a string to the repl and *captures all output* so that it can be subsequently asserted on in tests. Then, demonstrate that this works with a single (for now) REPL test using expect-test to assert on the output of a single command sent to the REPL. As the REPL gets more complicated, this will allow us to make tests that cover that complex behavior. Change-Id: I88175bd72d8760c79faade95ebb1d956f08a7b83 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11958 Autosubmit: aspen <root@gws.fyi> Tested-by: BuildkiteCI Reviewed-by: flokli <flokli@flokli.de>
This commit is contained in:
parent
3a79f93795
commit
0ad986169d
9 changed files with 522 additions and 346 deletions
|
@ -2965,6 +2965,16 @@ rec {
|
|||
}
|
||||
];
|
||||
|
||||
};
|
||||
"dissimilar" = rec {
|
||||
crateName = "dissimilar";
|
||||
version = "1.0.9";
|
||||
edition = "2018";
|
||||
sha256 = "0bcn4s99ghigd3yadpd7i3gljv5z2hkr07ijvvxvsxmz3yfygy2r";
|
||||
authors = [
|
||||
"David Tolnay <dtolnay@gmail.com>"
|
||||
];
|
||||
|
||||
};
|
||||
"doc-comment" = rec {
|
||||
crateName = "doc-comment";
|
||||
|
@ -3414,6 +3424,26 @@ rec {
|
|||
};
|
||||
resolvedDefaultFeatures = [ "std" ];
|
||||
};
|
||||
"expect-test" = rec {
|
||||
crateName = "expect-test";
|
||||
version = "1.5.0";
|
||||
edition = "2018";
|
||||
sha256 = "1q55nrkgzg345905aqbsdrwlq4sk0gjn4z5bdph1an1kc6jy02wy";
|
||||
authors = [
|
||||
"rust-analyzer developers"
|
||||
];
|
||||
dependencies = [
|
||||
{
|
||||
name = "dissimilar";
|
||||
packageId = "dissimilar";
|
||||
}
|
||||
{
|
||||
name = "once_cell";
|
||||
packageId = "once_cell";
|
||||
}
|
||||
];
|
||||
|
||||
};
|
||||
"fastcdc" = rec {
|
||||
crateName = "fastcdc";
|
||||
version = "3.1.0";
|
||||
|
@ -13908,6 +13938,12 @@ rec {
|
|||
packageId = "wu-manber";
|
||||
}
|
||||
];
|
||||
devDependencies = [
|
||||
{
|
||||
name = "expect-test";
|
||||
packageId = "expect-test";
|
||||
}
|
||||
];
|
||||
features = {
|
||||
"tracy" = [ "tvix-tracing/tracy" ];
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue