• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

ArduPilot / MethodicConfigurator / 23689875971 / 2
94%
master: 94%

Build:
DEFAULT BRANCH: master
Ran 28 Mar 2026 05:16PM UTC
Files 80
Run time 2s
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

28 Mar 2026 04:56PM UTC coverage: 93.696% (-0.04%) from 93.739%
23689875971.2

push

github

amilcarlucas
fix(io): use atomic writes for .param, JSON, and settings files

All file-writing operations used a simple open("w") → write() pattern.
If the application crashes or power is lost mid-write, the target file
is left truncated or empty. This is especially dangerous for .param
files (incomplete parameter sets uploaded to a flight controller could
cause unpredictable behavior) and vehicle_components.json (corrupted
components file breaks all derived parameter computations on startup).

Add a safe_write() utility that writes to a temporary file in the same
directory, then atomically replaces the target via os.replace(). The
utility also flushes and fsyncs before replacing, and preserves file
permissions from the original target.

Apply safe_write to the four most critical persistence paths:
- ParDict.export_to_param() — .param files
- FilesystemJSONWithSchema.save_json_data() — JSON data files
- ProgramSettings._set_settings_from_dict() — settings.json
- VehicleComponents.save_component_templates_to_file() — templates

Update all save-related tests to patch safe_write directly and verify
written data content via captured callbacks.

Closes #1428

Signed-off-by: Yash Goel <yashhzd@users.noreply.github.com>

1689 of 1756 branches covered (96.18%)

11117 of 11865 relevant lines covered (93.7%)

0.94 hits per line

Source Files on job run-ubuntu-latest-py3.9 - 23689875971.2
  • Tree
  • List 80
  • Changed 4
  • Source Changed 0
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Build 23689875971
  • 6d5ac86c on github
  • Prev Job for on master (#23688777357.3)
  • Next Job for on master (#23712733005.3)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc