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

ArduPilot / MethodicConfigurator / 23689875971
94%

Build:
DEFAULT BRANCH: master
Ran 28 Mar 2026 05:03PM UTC
Jobs 4
Files 80
Run time 1min
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.815% (-0.03%) from 93.842%
23689875971

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%)

11133 of 11867 relevant lines covered (93.81%)

3.74 hits per line

Uncovered Existing Lines

Lines Coverage ∆ File
6
97.79
0.0% backend_filesystem_program_settings.py
8
90.12
-1.58% backend_filesystem_vehicle_components.py
Jobs
ID Job ID Ran Files Coverage
1 run-windows-latest-py3.14 - 23689875971.1 28 Mar 2026 05:11PM UTC 80
93.46
GitHub Action Run
2 run-ubuntu-latest-py3.9 - 23689875971.2 28 Mar 2026 05:15PM UTC 80
93.7
GitHub Action Run
3 run-macos-latest-py3.14 - 23689875971.3 28 Mar 2026 05:03PM UTC 80
93.48
GitHub Action Run
4 run-ubuntu-latest-py3.14 - 23689875971.4 28 Mar 2026 05:15PM UTC 80
93.69
GitHub Action Run
Source Files on build 23689875971
  • 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 Repo
  • Github Actions Build #23689875971
  • 6d5ac86c on github
  • Prev Build on master (#23688777357)
  • Next Build on master (#23712733005)
  • 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