Open bwmeyers opened 5 months ago
Here I'm ordering the three main tasks in (I think) order of increasing difficulty.
Debugging:
beam_psrfits.c
beam_vdif.c
buffer.c
calibration.c
filter.c
geometry.c
jones.c
metadata.c
performance.c
primary_beam.c
form_beam.cu
(harder due to GPU component)pfb.cu
(harder due to GPU component)Error checking:
beam_psrfits.c
beam_vdif.c
buffer.c
calibration.c
filter.c
geometry.c
jones.c
metadata.c
performance.c
primary_beam.c
form_beam.cu
(harder due to GPU component)pfb.cu
(harder due to GPU component)
This should also include ensuring that we utilise the defined error codes correctly (and add new ones if necessary).Unit testing:
beam_psrfits.c
beam_vdif.c
buffer.c
calibration.c
filter.c
geometry.c
jones.c
metadata.c
performance.c
primary_beam.c
form_beam.cu
(harder due to GPU component)pfb.cu
(harder due to GPU component)
There's a lack of error checking for various functions throughout. Further to that point, there are minimal (if any) unit tests for various critical functions, which is something we really should resolve if we want to save ourselves pain in the future.
Related, but not necessarily required here is that we can make better use of some debugging code in places where it makes sense. Unit tests will nominally help minimise the number we need, but they can be helpful when developing new features, etc. There are some examples already in the code, and simply requires an additional argument to the compiler.