README 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. This is a list of developer tools included in the source repository
  2. but not necessarily shipped in the tarball or binary distributions If you're
  3. viewing it with Emacs, you can try doing Ctl-C Ctl-t browse through
  4. the outline headers. Ctl-C Ctl-a will unfold them again.
  5. == ais.py ==
  6. AIS packet decoder in Python. Useful as a check on the C code.
  7. Also, if you have AISHub privileges (see <http://www.aishub.net/>),
  8. a command like
  9. nc data.aishub.net 4006 | devtools/ais.py -c -v -t RANGE >AIS.LOG 2>&1"
  10. is a handy way to capture filtered AIS samples; RANGE can be a comma-separated
  11. list of AIS types.
  12. == aidvmtable ==
  13. Generate an asciidoc table of the six-bit encoding used in AIVDM packets.
  14. == cycle_analyzer ==
  15. Finds end-of-cycle sentences from GPS output logs.
  16. == dchroot-exec ==
  17. Very simple wrapper around the DSA version of dchroot
  18. on the Debian porter boxes. dchroot only accepts one command
  19. as argument, nothing else. This wrapper creates a temporary script
  20. which will be executed then.
  21. == do-build ==
  22. Very simple wrapper around scons clean, build, and check, saving
  23. output in a file named with "git describe".
  24. == easyinverse.pl ==
  25. Generate random pairirs of mutually inverse covariance matrices
  26. suitable for testing a matrix-inversion algorithm.
  27. == editcomment ==
  28. Give this a commit-ID specification. It will edit the associated comment.
  29. Usual caveats apply; the edited one and all commits after will change IDs,
  30. and pushing them to a repo with the old commits will wreak havoc.
  31. Note also that this cavalierly overwrites refs/original.
  32. == fakeserver ==
  33. Analogue of gpsfake. Impersonates a gpsd, spewing specified data to
  34. clients connecting to localhost:2947
  35. == fakecompare ==
  36. Compare the results from running gpsfake on a logfile between this
  37. machine and a remote one. Especially useful when remote and local
  38. have different word lengths.
  39. == flock* ==
  40. The files prefixed with flock are the scripts, data files, and
  41. documentation for the flock-test suite. Read flock-instructions for
  42. explanation.
  43. == gpsd-debian-regressions.sh ==
  44. Retrieves the latest build logs from Debian's buildds and extracts a
  45. list of failed regression tests, sorted by architecture.
  46. == identify_failing_build_options.py ==
  47. Run from the top level to try to identify any combinations of build
  48. options that don't compile. To run cd to the root of the repo and
  49. run "devtools/identify_failing_build_options.py" it will generate
  50. failed_build_configs.txt for any that failed to compile.
  51. == logextract ==
  52. Extract pure NMEA from an emailed gpsd error log. The output can be fed
  53. to gpsfake.
  54. == regress-builder ==
  55. This script runs an exhaustive test on combinations of compilation options,
  56. looking for ones that break the build.
  57. == regressdiff ==
  58. Walk through a pair of text files looking for where they begin to differ.
  59. May be useful for comparing logs when regression tests break.
  60. == reindent ==
  61. Try to reindent the code in a uniform style.
  62. == sizes ==
  63. Test-build interesting versions of the daemon and display their sizes.
  64. == striplog ==
  65. Strip leading comment lines from NMEA sentence logs. gpsfake can do
  66. this itself now, so this script has a lot of dust on it.
  67. == tablegen.py ==
  68. Generate most of the code required to support a message type from
  69. AIVDM message layout tables. Also, redo their bit offsets to be
  70. conformant with field lengths.
  71. == test_json_validity.py ==
  72. Test a file full of lines containing GPSD-JSON reports to verify that each
  73. line is in fact well-formed JSON.