# Testing lambda-runtime-init
## Testing in isolation
Useful if you want more control over the API between the init and LocalStack (e.g. for error responses)
## Debugging with LocalStack
1. Build init via `make build`
* On ARM hosts, use `make ARCH=arm64 build` because debugging only works with native containers.
2. Start LocalStack with the following flags:
```
LAMBDA_INIT_BIN_PATH=/Users/joe/Projects/LocalStack/lambda-runtime-init/custom-tests/init/var/rapid/init
LAMBDA_INIT_BOOTSTRAP_PATH=/Users/joe/Projects/LocalStack/lambda-runtime-init/custom-tests/init/var/rapid/entrypoint.sh
LAMBDA_INIT_DEBUG=1
LAMBDA_INIT_DELVE_PATH=/Users/joe/Projects/LocalStack/lambda-runtime-init/custom-tests/init/var/rapid/dlv
LAMBDA_INIT_DELVE_PORT=40000
LAMBDA_RUNTIME_ENVIRONMENT_TIMEOUT=3600
TEST_DISABLE_RETRIES_AND_TIMEOUTS=1
```
* `LAMBDA_INIT_DEBUG=1|0` enables or disables RIE copying and debugging.
* `LAMBDA_REMOVE_CONTAINERS=0` keeps exited containers
* Adjust the path to `lambda-runtime-init` accordingly
3. Start Delve debugger and connect to `localhost:40000`
### Advice for function configuration
Within `create_lambda_function`:
* Increase the `timeout=3600`
* On ARM hosts, debugging only works with ARM containers. Use `LAMBDA_IGNORE_ARCHITECTURE=1` or explicitly configure the Lambda function with `Architectures=[Architecture.arm64]`