Skip to content

Commit 2d12190

Browse files
committed
Better communication about undefined platforms in config
1 parent 6d3804f commit 2d12190

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

CHANGELOG.md

+1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
1616

1717
### Fixed
1818
- A missing `examples` directory no longer causes a crash in `cpp_library.rb`
19+
- Referring to an undefined platform no longer causes a crash; it's now a helpful error message
1920

2021
### Security
2122

exe/arduino_ci.rb

+12-1
Original file line numberDiff line numberDiff line change
@@ -412,6 +412,11 @@ def perform_unit_tests(cpp_library, file_config)
412412
end
413413
end
414414

415+
# having undefined platforms is a config error
416+
platforms.select { |p| config.platform_info[p].nil? }.each do |p|
417+
assure("Platform '#{p}' is defined in configuration files") { false }
418+
end
419+
415420
install_arduino_library_dependencies(config.aux_libraries_for_unittest, "<unittest/libraries>")
416421

417422
platforms.each do |p|
@@ -462,6 +467,7 @@ def perform_example_compilation_tests(cpp_library, config)
462467
ovr_config = config.from_example(example_path)
463468
platforms = choose_platform_set(ovr_config, "library example", ovr_config.platforms_to_build, cpp_library.library_properties)
464469

470+
# having no platforms defined is probably an error
465471
if platforms.empty?
466472
explain_and_exercise_envvar(VAR_EXPECT_EXAMPLES, "examples compilation", "platforms and architectures") do
467473
puts " Configured platforms: #{ovr_config.platforms_to_build}"
@@ -471,11 +477,16 @@ def perform_example_compilation_tests(cpp_library, config)
471477
end
472478
end
473479

480+
# having undefined platforms is a config error
481+
platforms.select { |p| ovr_config.platform_info[p].nil? }.each do |p|
482+
assure("Platform '#{p}' is defined in configuration files") { false }
483+
end
484+
474485
install_all_packages(platforms, ovr_config)
475486
install_arduino_library_dependencies(ovr_config.aux_libraries_for_build, "<compile/libraries>")
476487

477488
platforms.each do |p|
478-
board = ovr_config.platform_info[p][:board]
489+
board = ovr_config.platform_info[p][:board] # assured to exist, above
479490
attempt("Compiling #{example_name} for #{board}") do
480491
ret = @backend.compile_sketch(example_path, board)
481492
unless ret

0 commit comments

Comments
 (0)