Tests as part of build process and unifying with vscode keybinding scheme

This commit is contained in:
Krzosa Karol
2026-03-21 13:01:58 +01:00
parent fadf4cd698
commit cab882de60
7 changed files with 272 additions and 25 deletions

View File

@@ -1,5 +1,5 @@
#if PLUGIN_TESTS
bool Testing = true;
bool Testing = false;
void Wait(mco_coro *co) {
Add(&EventPlayback, {EVENT_KIND_INVALID});
@@ -7,7 +7,24 @@ void Wait(mco_coro *co) {
}
}
void CO_FirstTest(mco_coro *co) {
void Wait(mco_coro *co, int updates) {
for (int i = 0; i < updates; i += 1) {
{Event ev = {};ev.kind = EVENT_UPDATE; Add(&EventPlayback, ev);}
}
{Event ev = {};ev.kind = EVENT_KIND_INVALID; Add(&EventPlayback, ev);}
Wait(co);
}
void OpenCloseCodeTest(mco_coro *co) {
Int initial_buffers_count = Buffers.len;
CO_OpenCode(co);
Assert(Buffers.len > initial_buffers_count);
CO_CloseAll(co);
Wait(co);
Assert(initial_buffers_count - 1 == Buffers.len);
}
void CO_RunTests(mco_coro *co) {
Testing = true;
WaitForEvents = false;
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_RETURN; ev.xwindow = 1412; ev.ywindow = 1032; ev.xmouse = 1234; ev.ymouse = 594; Add(&EventPlayback, ev);}
@@ -37,7 +54,6 @@ void CO_FirstTest(mco_coro *co) {
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1412; ev.ywindow = 1032; ev.xmouse = 1234; ev.ymouse = 594; ev.text = "f"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1412; ev.ywindow = 1032; ev.xmouse = 1234; ev.ymouse = 594; ev.text = "f"; Add(&EventPlayback, ev);}
Wait(co);
String16 result = uR"FOO(
@@ -49,8 +65,221 @@ Memes and stuff)FOO";
BSet set = GetBSet(PrimaryWindowID);
Assert(AreEqual(result, GetString(set.buffer)));
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_LSHIFT; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.shift = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.shift = 1; ev.text = "M"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.text = "e"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.text = "m"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.text = "e"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.text = "s"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_LCTRL; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.ctrl = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_L; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.ctrl = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_C; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.ctrl = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_LCTRL; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.ctrl = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_RETURN; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.ctrl = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_V; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.ctrl = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_RETURN; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.ctrl = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_V; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.ctrl = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_RETURN; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.ctrl = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_V; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.ctrl = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_RETURN; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.ctrl = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_V; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.ctrl = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_RETURN; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.ctrl = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_V; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.ctrl = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_RETURN; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.ctrl = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_V; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.ctrl = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_RETURN; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.ctrl = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_V; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.ctrl = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_RETURN; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.ctrl = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_V; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.ctrl = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_LCTRL; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.ctrl = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_RETURN; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_PAGEUP; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_RETURN; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_LALT; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.alt = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_LSHIFT; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.shift = 1; ev.alt = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_DOWN; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.shift = 1; ev.alt = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_DOWN; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.shift = 1; ev.alt = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_DOWN; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.shift = 1; ev.alt = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_DOWN; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.shift = 1; ev.alt = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_DOWN; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.shift = 1; ev.alt = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_DOWN; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.shift = 1; ev.alt = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_DOWN; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.shift = 1; ev.alt = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_DOWN; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.shift = 1; ev.alt = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_LCTRL; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.shift = 1; ev.ctrl = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_RIGHT; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.shift = 1; ev.ctrl = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_C; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.ctrl = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_RIGHT; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_SPACE; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.text = " "; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_LCTRL; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.ctrl = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_V; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.ctrl = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_LCTRL; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.ctrl = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_BACKSPACE; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.ctrl = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_LSHIFT; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.shift = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.shift = 1; ev.text = "T"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.text = "h"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.text = "i"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.text = "n"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.text = "g"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.text = "s"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_SPACE; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.text = " "; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_LCTRL; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.ctrl = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_V; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.ctrl = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_B; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.ctrl = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_SPACE; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.text = " "; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_LSHIFT; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.shift = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.shift = 1; ev.text = "A"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_BACKSPACE; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.shift = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_COMMA; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.shift = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.shift = 1; ev.text = "<"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_BACKSLASH; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.shift = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.shift = 1; ev.text = "|"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_LCTRL; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.ctrl = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_RETURN; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.ctrl = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_LCTRL; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.ctrl = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_V; ev.xwindow = 1920; ev.ywindow = 1061; ev.xmouse = 835; ev.ctrl = 1; Add(&EventPlayback, ev);}
Wait(co);
result = uR"FOO(
Memes Things Memes <|
Memes
Memes Things Memes <|
Memes
Memes Things Memes <|
Memes
Memes Things Memes <|
Memes
Memes Things Memes <|
Memes
Memes Things Memes <|
Memes
Memes Things Memes <|
Memes
Memes Things Memes <|
Memes
Memes Things Memes <|
Memes
)FOO";
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_RETURN; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_LSHIFT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.shift = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.shift = 1; ev.text = "L"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.text = "e"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.text = "t"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_APOSTROPHE; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.text = "'"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.text = "s"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_SPACE; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.text = " "; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.text = "t"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_BACKSPACE; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.text = "d"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.text = "o"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_SPACE; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.text = " "; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.text = "t"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.text = "h"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.text = "i"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.text = "s"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_UP; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_DOWN; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_BACKSPACE; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_END; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_PAGEDOWN; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_RETURN; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_LSHIFT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.shift = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.shift = 1; ev.text = "M"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.text = "e"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.text = "m"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.text = "e"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.text = "s"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_SPACE; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.text = " "; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.text = "a"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.text = "n"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.text = "d"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_SPACE; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.text = " "; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.text = "s"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.text = "u"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_BACKSPACE; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.text = "t"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.text = "u"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.text = "f"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.text = "f"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_LALT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.alt = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_LSHIFT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.shift = 1; ev.alt = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_UP; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.shift = 1; ev.alt = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_SPACE; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.text = " "; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_LSHIFT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.shift = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_BACKSLASH; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.shift = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.shift = 1; ev.text = "|"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_LSHIFT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.shift = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_COMMA; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.shift = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.shift = 1; ev.text = "<"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_SPACE; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.text = " "; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_LSHIFT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.shift = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.shift = 1; ev.text = "T"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.text = "h"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.text = "i"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.text = "n"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.text = "g"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_SPACE; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.text = " "; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.text = "t"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.text = "h"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.text = "i"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.text = "n"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.text = "g"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_RETURN; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.text = "t"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.text = "h"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.text = "i"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.text = "n"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.text = "g"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_ESCAPE; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_UP; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_UP; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_LSHIFT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.shift = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_LCTRL; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.shift = 1; ev.ctrl = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_LEFT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.shift = 1; ev.ctrl = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_LSHIFT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.shift = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_LCTRL; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.shift = 1; ev.ctrl = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_L; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.shift = 1; ev.ctrl = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_BACKSPACE; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_LSHIFT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.shift = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.shift = 1; ev.text = "N"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.text = "o"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_LSHIFT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.shift = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.shift = 1; ev.text = "T"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.text = "h"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.text = "i"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.text = "n"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_TEXT_INPUT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.text = "g"; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_LSHIFT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.shift = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_LCTRL; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.shift = 1; ev.ctrl = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_LALT; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.shift = 1; ev.ctrl = 1; ev.alt = 1; Add(&EventPlayback, ev);}
{Event ev = {};ev.kind = EVENT_KEY_PRESS; ev.key = SDLK_J; ev.xwindow = 1920; ev.ywindow = 2121; ev.ymouse = 1289; ev.shift = 1; ev.ctrl = 1; ev.alt = 1; Add(&EventPlayback, ev);}
Wait(co);
result = uR"FOO(Let's do this |< NoThing NoThing
NoThing
Memes and stuff |< NoThing NoThing
NoThing)FOO";
if (ErrorCount != 0) {
Scratch scratch;
String string = AllocCharString(scratch, LogBuffer);
printf("TEXT EDITOR ERRORS!\n==========================\n%.*s", (int)string.len, string.data);
}
printf("RunTests OK\n");
fflush(stdout);
void CMD_QuitWithoutSaving();
CMD_QuitWithoutSaving();
} RegisterCoroutineCommand(CO_RunTests, "", "Basic tests");
} RegisterCoroutineCommand(CO_FirstTest, "", "Basic tests");
#endif