QL2LGEEHC46ZSJNELJSDV4VCW7GZQEWKHZZT77WFI4ABW7USKROQC
M6S4MJKY3A5FM733OZQFT6GAWU2MT65HAGUO6LOQ2PBQ7ZQKAODQC
LDMKBYNY4CWMH63SVYUALZMNEJSUI6ME4LG26HL22UHWAVMRT42AC
EZZBR2VSITUTJOQ3AR4ESYJMHWTQHOUMKMRD6HCM53QSTTLDFGHQC
JNFEDGVZ43TNVUGEJE52D6DRNZ4Y3PQUG6H66MDQDU2DJI7SMZTAC
POQ23S4HCIJJ22SXKQ5SWXE4F27UUHROKRJVONHV54IMRSBW2ZIQC
3KHXY6NWG7UVRPTY4YA64WT76TWNI2OIJJHAZ7BXIJ2YBCPULWLQC
JQ6BQZBLU3OUANQMZML2FWWIE4QI2GDLOYL6GJTXFKONQDQLKDMAC
BJ5X5O4ACBBJ56LRBBSTCW6IBQP4HAEOOOPNH3SKTA4F66YTOIDAC
XRAQBRS4CZ6T6TSQLCMTS4OENCCGWYEBZ52RK42PV6NMMNZZPKUAC
2N4JZKVTSJJJIXM2VVCU5INC4IGY7J6FF4JD3TAFK5THD2QWSQPQC
G25JLJ5S6AIL76ILEAXQS3EN2SEWH2X6QT4IPHRXBIPLQVHKGXFAC
DTBFNHJDOFMUXRAFVN3NYK2IJYH75EITUIPJIS3CNP7RS6OY5LVQC
JOPVPUSAMMU6RFVDQR4NJC4GNNUFB7GPKVH7OS5FKCYS5QZ53VLQC
3GC3WIB6TEJSQIBVKMCQ3LMPQQQJMKLQ72Z36Y3O5NTWMAN6Q6SQC
5WHW3IDOHOBXY3M3QPXNMHFFNXXD6RR5B2WL6TB5TTVNZJYCN2AQC
### Protocol with driver; error-handling
* clone this repo to a new client app, clear its save dir[1], run it, run the
driver, add a definition:
```
on.draw = function()
end
```
Hit F4. No error.
Quit driver, quit client app. Restart client app. No error.
* clone this repo to a new client app, clear its save dir, run it, run the
driver, add a definition that draws to screen:
```
on.draw = function()
love.graphics.print('hello!', 50,50)
end
```
Hit F4. Client app shows 'hello!'
Quit driver, quit client app. Restart client app. No error. Client app shows 'hello!'
* clone this repo to a new client app, clear its save dir, run it, run the
driver, add a definition containing invalid Lua:
```
on.draw = function(
```
Hit F4. Driver shows an error under the definition.
Fix the definition:
```
on.draw = function()
end
```
Hit F4. The error disappears.
* clone this repo to a new client app, clear its save dir, run it, run the
driver, add a definition containing invalid Lua:
```
on.draw = function(
```
Hit F4. Driver shows an error under the definition as before.
Quit the client app.
Restart the client app. It loads up without error.
Switch back to the driver. Fix the definition.
```
on.draw = function()
end
```
Hit F4. The error disappears.
Driver can connect to app on errors in on.initialize (and `on.load_settings`).
* clone this repo to a new client app, clear its save dir, run it, run the
driver, define `on.initialize` with a run-time error:
```
on.initialize = function()
foo = bar+1
end
```
Hit F4.
Quit the client app and restart. App shows an error.
Edit `on.initialize` in the driver and remove the error:
```
on.initialize = function()
end
```
Hit F4. The error disappears from the app and driver.
Editing:
* The upstream template-live-editor needs to pass all its manual tests.
* clone this repo to a new client app, clear its save dir, run it, run the
driver, define `on.initialize` with a run-time error:
```
on.initialize = function()
foo = bar+1
end
```
Hit F4.
Quit the client app and restart. App shows an error.
Hit F4 again in the driver (without fixing the error).
The client app continues to show the error.
Driver can connect to app on errors in `on.quit` (and `on.save_settings`).
* clone this repo to a new client app, clear its save dir, run it, run the
driver, define `on.quit` with a run-time error:
```
on.quit = function()
foo = bar+1
end
```
Hit F4.
Try to quit the client app. It shows an error and refuses to quit.
Edit `on.quit` in the driver and remove the error:
```
on.quit = function()
end
```
Hit F4. The error disappears from the app and driver.
Try to quit the client app. Now the quit succeeds.
* clone this repo to a new client app, clear its save dir, run it, run the
driver, define `on.quit` with a run-time error:
```
on.quit = function()
foo = bar+1
end
```
Hit F4.
Try to quit the client app. It shows an error and refuses to quit.
Hit F4 again in the driver (without fixing the error).
Try to quit the client app again. It continues to show the error.
Driver can connect to app that contains test failures on startup.
* clone this repo to a new client app, clear its save dir, run it, run the
driver, define a new test with an invalid assertion:
```
test_foo = function()
check(nil, 'foo')
end
```
Hit F4. The test fails.
Quit the client app and restart. App shows an error.
Edit `test_foo` in the driver and remove the error:
```
test_foo = function()
end
```
Hit F4. The error disappears from the app and driver.
* clone this repo to a new client app, clear its save dir, run it, run the
driver, define a new test with an invalid assertion:
```
test_foo = function()
check(nil, 'foo')
end
```
Hit F4.
Quit the client app and restart. App shows an error.
Hit F4 again in the driver (without fixing the error).
The client app continues to show the error.
* clone this repo to a new client app, clear its save dir, run it, run the
driver, add a definition containing invalid Lua:
```
on.draw = function(
```
Hit F4. Driver shows an error under the definition as before.
Quit the client app.
Switch back to the driver. Hit F4. The driver hangs and needs to be
force-quit. [This is not ideal, but how things are today.]
[1] We never clear the app from the driver's config. driver.love needs to be
robust to apps changing out from under it.