mirror of
https://github.com/aljazceru/lightning.git
synced 2025-12-19 15:14:23 +01:00
HACKING: Add subtleties.
This commit is contained in:
committed by
Christian Decker
parent
5f2cd7c11e
commit
4255e4186d
@@ -155,7 +155,7 @@ valgrind installed, and build with DEVELOPER=1 (currently the default).
|
|||||||
header order, and checks formatted quotes from BOLTs if BOLTDIR
|
header order, and checks formatted quotes from BOLTs if BOLTDIR
|
||||||
exists (currently disabled, since BOLTs are being re-edited).
|
exists (currently disabled, since BOLTs are being re-edited).
|
||||||
|
|
||||||
* unit tests - run by `make check`, these are run-*.c files in test/
|
* unit tests - run by `make check`, these are `run-*.c` files in test/
|
||||||
subdirectories which can test routines inside C source files. You
|
subdirectories which can test routines inside C source files. You
|
||||||
should insert `/* AUTOGENERATED MOCKS START */` and `/* AUTOGENERATED MOCKS END */`
|
should insert `/* AUTOGENERATED MOCKS START */` and `/* AUTOGENERATED MOCKS END */`
|
||||||
lines, and `make update-mocks` will automatically generate stub functions
|
lines, and `make update-mocks` will automatically generate stub functions
|
||||||
@@ -169,6 +169,25 @@ valgrind installed, and build with DEVELOPER=1 (currently the default).
|
|||||||
|
|
||||||
Our Travis CI instance (see `.travis.yml`) runs all these for each pull request.
|
Our Travis CI instance (see `.travis.yml`) runs all these for each pull request.
|
||||||
|
|
||||||
|
Subtleties
|
||||||
|
----------
|
||||||
|
|
||||||
|
There are a few subtleties you should be aware of as you modify deeper parts
|
||||||
|
of the code:
|
||||||
|
|
||||||
|
* `structeq` will not work on some structures.
|
||||||
|
For example, it will not work with `struct short_channel_id` --- use
|
||||||
|
`short_channel_id_eq` for comparing those.
|
||||||
|
* `command_success`, `command_fail`, and `command_fail_detailed` will free the
|
||||||
|
`cmd` you pass in.
|
||||||
|
This also means that if you `tal`-allocated anything from the `cmd`, they
|
||||||
|
will also get freed at those points and will no longer be accessible
|
||||||
|
afterwards.
|
||||||
|
* When making a structure part of a list, you will instance a
|
||||||
|
`struct list_node`.
|
||||||
|
This has to be the *first* field of the structure, or else `dev-memleak`
|
||||||
|
command will think your structure has leaked.
|
||||||
|
|
||||||
Further Information
|
Further Information
|
||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user