Skip to content

Commit deb0f4e

Browse files
committed
Better communication about undefined platforms in config
1 parent 9cb84af commit deb0f4e

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
3737
- Run Windows tests on Windows not Ubuntu
3838
- Properly report error in building shared library
3939
- A missing `examples` directory no longer causes a crash in `cpp_library.rb`
40+
- Referring to an undefined platform no longer causes a crash; it's now a helpful error message
4041

4142
### Security
4243

exe/arduino_ci.rb

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -419,6 +419,11 @@ def perform_unit_tests(cpp_library, file_config)
419419
end
420420
end
421421

422+
# having undefined platforms is a config error
423+
platforms.select { |p| config.platform_info[p].nil? }.each do |p|
424+
assure("Platform '#{p}' is defined in configuration files") { false }
425+
end
426+
422427
install_arduino_library_dependencies(config.aux_libraries_for_unittest, "<unittest/libraries>")
423428

424429
platforms.each do |p|
@@ -486,6 +491,7 @@ def perform_example_compilation_tests(cpp_library, config)
486491
ovr_config = config.from_example(example_path)
487492
platforms = choose_platform_set(ovr_config, "library example", ovr_config.platforms_to_build, cpp_library.library_properties)
488493

494+
# having no platforms defined is probably an error
489495
if platforms.empty?
490496
explain_and_exercise_envvar(VAR_EXPECT_EXAMPLES, "examples compilation", "platforms and architectures") do
491497
puts " Configured platforms: #{ovr_config.platforms_to_build}"
@@ -495,11 +501,16 @@ def perform_example_compilation_tests(cpp_library, config)
495501
end
496502
end
497503

504+
# having undefined platforms is a config error
505+
platforms.select { |p| ovr_config.platform_info[p].nil? }.each do |p|
506+
assure("Platform '#{p}' is defined in configuration files") { false }
507+
end
508+
498509
install_all_packages(platforms, ovr_config)
499510
install_arduino_library_dependencies(ovr_config.aux_libraries_for_build, "<compile/libraries>")
500511

501512
platforms.each do |p|
502-
board = ovr_config.platform_info[p][:board]
513+
board = ovr_config.platform_info[p][:board] # assured to exist, above
503514
attempt("Compiling #{example_name} for #{board}") do
504515
ret = @backend.compile_sketch(example_path, board)
505516
unless ret

0 commit comments

Comments
 (0)