Format retained coordinate components with integer long division so AVR logging can retain submillimeter detail without a floating-point type override. Add bounded-output and precision regressions.
Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
Cover basic and extended GPS builds with float and double, and include the previously tested Nano and HILBERT reception fixtures.
Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
Share bounded UTC time, date, and standard navigation validation in Adafruit_GNSS. Reject malformed populated GGA, RMC, GLL, and GSA fields before changing stored values or freshness timestamps, while preserving empty-field behavior and the high-precision coordinate path.
Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
Run sketch regressions with consistent float and double definitions across library and test translation units. Verify that exact GNSS components and double GPS results retain position changes smaller than the legacy E7 resolution, and record the precision requirement for future receiver APIs and logging.
Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
Share bounded coordinate decoding between the GNSS core and GPS parser. Preserve exact signed E7 results, validate coordinate and hemisphere fields together, and retain the precision available in floating-point convenience fields.
Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
Use the shared validator before source and sentence recognition, reject NULL input safely, and require an exact sentence name instead of a recognized prefix. Cover recognition diagnostics, malformed payloads, checksum trailers, and zero-field messages.
Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
Clear the embedded framer during common_init() and initialize lastline only once so repeated initialization preserves the actual completed buffer. Cover initial, odd, and even buffer swaps, discarded partial input, cleared timestamps, and resumed reception.
Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
Preserve complete raw lines for the existing receive API, discard oversized input, and keep sentence timestamps independent per receiver. Add receive-path regressions for recovery, command replies, pause/resume, and two receivers.
Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
Document the deleted assignment return and add a local check using the
same Doxygen 1.8.13 binary, configuration, and warning policy as CI.
Run it before regression tests to expose documentation failures early.
Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
Name and document the disabled copy parameters so the CI Doxygen check can validate both declarations.
Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
Assemble lines in caller-owned buffers with overflow recovery, stable views of the last complete line, and independent per-receiver timestamps. Add an automatically discovered host regression for boundaries and interleaved receivers.
Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
Discover the C++ tests and Arduino regression sketches automatically. Run the sketches against the actual library with host serial output and timing, including marine extensions, and propagate failures and timeouts to CI.
Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
Add an independent Ubuntu job for all three hardware-independent NMEA tests, with fatal address and undefined-behavior sanitizer checks.
Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
Replace length-derived strncpy calls with memcpy and explicit termination. Ensure parseStr also terminates fields that end without a delimiter, and extend the bounds regression to cover truncation, empty fields, and one-byte destinations.
Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>