From 18f1af2dcabff765f437e1f5add775b3a29113fd Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sat, 1 Sep 2018 01:10:20 -0500 Subject: [PATCH 1/2] Fix up Teensy tests, servo sanity --- Marlin/src/inc/SanityCheck.h | 37 ++++++++++++++++++++++++++-- Marlin/src/pins/pins_TEENSY35_36.h | 2 +- buildroot/share/tests/teensy35_tests | 28 ++++++++++----------- 3 files changed, 50 insertions(+), 17 deletions(-) diff --git a/Marlin/src/inc/SanityCheck.h b/Marlin/src/inc/SanityCheck.h index 847d60fe1..845e4145f 100644 --- a/Marlin/src/inc/SanityCheck.h +++ b/Marlin/src/inc/SanityCheck.h @@ -607,14 +607,47 @@ static_assert(X_MAX_LENGTH >= X_BED_SIZE && Y_MAX_LENGTH >= Y_BED_SIZE, #error "SWITCHING_NOZZLE requires exactly 2 EXTRUDERS." #elif NUM_SERVOS < 1 #error "SWITCHING_NOZZLE requires NUM_SERVOS >= 1." + #elif SWITCHING_NOZZLE_SERVO_NR == 0 && !PIN_EXISTS(SERVO0) + #error "SERVO0_PIN must be defined for your SWITCHING_NOZZLE." + #elif SWITCHING_NOZZLE_SERVO_NR == 1 && !PIN_EXISTS(SERVO1) + #error "SERVO1_PIN must be defined for your SWITCHING_NOZZLE." + #elif SWITCHING_NOZZLE_SERVO_NR == 2 && !PIN_EXISTS(SERVO2) + #error "SERVO2_PIN must be defined for your SWITCHING_NOZZLE." + #elif SWITCHING_NOZZLE_SERVO_NR == 3 && !PIN_EXISTS(SERVO3) + #error "SERVO3_PIN must be defined for your SWITCHING_NOZZLE." #endif #endif /** * Single Stepper Dual Extruder with switching servo */ -#if ENABLED(SWITCHING_EXTRUDER) && NUM_SERVOS < 1 - #error "SWITCHING_EXTRUDER requires NUM_SERVOS >= 1." +#if ENABLED(SWITCHING_EXTRUDER) + #if NUM_SERVOS < 1 + #error "SWITCHING_EXTRUDER requires NUM_SERVOS >= 1." + #elif SWITCHING_EXTRUDER_SERVO_NR == 0 && !PIN_EXISTS(SERVO0) + #error "SERVO0_PIN must be defined for your SWITCHING_EXTRUDER." + #elif SWITCHING_EXTRUDER_SERVO_NR == 1 && !PIN_EXISTS(SERVO1) + #error "SERVO1_PIN must be defined for your SWITCHING_EXTRUDER." + #elif SWITCHING_EXTRUDER_SERVO_NR == 2 && !PIN_EXISTS(SERVO2) + #error "SERVO2_PIN must be defined for your SWITCHING_EXTRUDER." + #elif SWITCHING_EXTRUDER_SERVO_NR == 3 && !PIN_EXISTS(SERVO3) + #error "SERVO3_PIN must be defined for your SWITCHING_EXTRUDER." + #endif + #if EXTRUDERS > 3 + #if NUM_SERVOS < 2 + #error "SWITCHING_EXTRUDER with 4 extruders requires NUM_SERVOS >= 2." + #elif SWITCHING_EXTRUDER_E23_SERVO_NR == 0 && !PIN_EXISTS(SERVO0) + #error "SERVO0_PIN must be defined for your SWITCHING_EXTRUDER." + #elif SWITCHING_EXTRUDER_E23_SERVO_NR == 1 && !PIN_EXISTS(SERVO1) + #error "SERVO1_PIN must be defined for your SWITCHING_EXTRUDER." + #elif SWITCHING_EXTRUDER_E23_SERVO_NR == 2 && !PIN_EXISTS(SERVO2) + #error "SERVO2_PIN must be defined for your SWITCHING_EXTRUDER." + #elif SWITCHING_EXTRUDER_E23_SERVO_NR == 3 && !PIN_EXISTS(SERVO3) + #error "SERVO3_PIN must be defined for your SWITCHING_EXTRUDER." + #elif SWITCHING_EXTRUDER_E23_SERVO_NR == SWITCHING_EXTRUDER_SERVO_NR + #error "SWITCHING_EXTRUDER_E23_SERVO_NR should be a different extruder from SWITCHING_EXTRUDER_SERVO_NR." + #endif + #endif #endif /** diff --git a/Marlin/src/pins/pins_TEENSY35_36.h b/Marlin/src/pins/pins_TEENSY35_36.h index e196401c4..f21438b12 100644 --- a/Marlin/src/pins/pins_TEENSY35_36.h +++ b/Marlin/src/pins/pins_TEENSY35_36.h @@ -139,7 +139,7 @@ D8 HEATER_BED_PIN CS1 RX4 A12 31 | 46 * * 47 | 34 A15 PWM #endif #endif -#ifdef ULTRA_LCD +#if ENABLED(ULTRA_LCD) #define LCD_PINS_RS 40 #define LCD_PINS_ENABLE 41 #define LCD_PINS_D4 42 diff --git a/buildroot/share/tests/teensy35_tests b/buildroot/share/tests/teensy35_tests index 51930dd84..0adb977cb 100755 --- a/buildroot/share/tests/teensy35_tests +++ b/buildroot/share/tests/teensy35_tests @@ -37,17 +37,17 @@ exec_test $1 $2 "Sled Z Probe with Linear leveling" # # Test a Servo Probe # -restore_configs -opt_enable NUM_SERVOS Z_PROBE_SERVO_NR Z_SERVO_ANGLES DEACTIVATE_SERVOS_AFTER_MOVE -opt_set NUM_SERVOS 1 -opt_enable AUTO_BED_LEVELING_3POINT DEBUG_LEVELING_FEATURE EEPROM_SETTINGS -exec_test $1 $2 "Servo Probe" +# restore_configs +# opt_enable NUM_SERVOS Z_PROBE_SERVO_NR Z_SERVO_ANGLES DEACTIVATE_SERVOS_AFTER_MOVE +# opt_set NUM_SERVOS 1 +# opt_enable AUTO_BED_LEVELING_3POINT DEBUG_LEVELING_FEATURE EEPROM_SETTINGS +# exec_test $1 $2 "Servo Probe" # # ...with AUTO_BED_LEVELING_3POINT, DEBUG_LEVELING_FEATURE, EEPROM_SETTINGS, EEPROM_CHITCHAT, EXTENDED_CAPABILITIES_REPORT, and AUTO_REPORT_TEMPERATURES # -opt_enable AUTO_BED_LEVELING_3POINT DEBUG_LEVELING_FEATURE EEPROM_SETTINGS -opt_enable_adv EXTENDED_CAPABILITIES_REPORT AUTO_REPORT_TEMPERATURES -exec_test $1 $2 "...with AUTO_BED_LEVELING_3POINT, DEBUG_LEVELING_FEATURE, EEPROM_SETTINGS, EEPROM_CHITCHAT, EXTENDED_CAPABILITIES_REPORT, and AUTO_REPORT_TEMPERATURES" +# opt_enable AUTO_BED_LEVELING_3POINT DEBUG_LEVELING_FEATURE EEPROM_SETTINGS +# opt_enable_adv EXTENDED_CAPABILITIES_REPORT AUTO_REPORT_TEMPERATURES +# exec_test $1 $2 "...with AUTO_BED_LEVELING_3POINT, DEBUG_LEVELING_FEATURE, EEPROM_SETTINGS, EEPROM_CHITCHAT, EXTENDED_CAPABILITIES_REPORT, and AUTO_REPORT_TEMPERATURES" # # Test MESH_BED_LEVELING feature, with LCD # @@ -64,12 +64,12 @@ exec_test $1 $2 "Mixing Extruder" # # Test SWITCHING_EXTRUDER # -restore_configs -opt_set EXTRUDERS 2 -opt_enable NUM_SERVOS -opt_set NUM_SERVOS 1 -opt_enable SWITCHING_EXTRUDER ULTIMAKERCONTROLLER -exec_test $1 $2 "SWITCHING_EXTRUDER" +# restore_configs +# opt_set EXTRUDERS 2 +# opt_enable NUM_SERVOS +# opt_set NUM_SERVOS 1 +# opt_enable SWITCHING_EXTRUDER ULTIMAKERCONTROLLER +# exec_test $1 $2 "SWITCHING_EXTRUDER" # # Enable COREXY # From 05dc79e78d31ffae926fca63a19fb9beb43e2c84 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sat, 1 Sep 2018 02:50:47 -0500 Subject: [PATCH 2/2] Update platform tests to use '.test' folder --- .circleci/config.yml | 10 +++++--- buildroot/bin/env_backup | 4 ++-- buildroot/bin/env_restore | 27 +++++----------------- buildroot/bin/restore_configs | 24 +++++++++---------- buildroot/bin/update_defaults | 3 +-- buildroot/share/tests/DUE_tests | 7 +++++- buildroot/share/tests/LPC1768_tests | 8 ++++--- buildroot/share/tests/STM32F1_tests | 8 ++++--- buildroot/share/tests/megaatmega2560_tests | 11 ++++----- buildroot/share/tests/start_tests | 14 +++++++---- buildroot/share/tests/teensy35_tests | 9 ++++---- 11 files changed, 61 insertions(+), 64 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 13a79154d..45dbf96bb 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -53,11 +53,11 @@ jobs: # Generate custom version include generate_version_header_for_marlin ./Marlin/src/inc cat ./Marlin/src/inc/_Version.h + # - # Backup pins_RAMPS.h - # - cp Marlin/src/pins/pins_RAMPS.h Marlin/src/pins/pins_RAMPS.h.backup + # Back up the environment # + env_backup ################################# # Build all sample configurations @@ -279,6 +279,10 @@ jobs: # Remove temp files from dependencies tree prior to caching rm -rf ~/Marlin/.piolibdeps/_tmp_* + # + # Restore the environment + # + env_restore - save_cache: diff --git a/buildroot/bin/env_backup b/buildroot/bin/env_backup index 164582de6..392ec425c 100755 --- a/buildroot/bin/env_backup +++ b/buildroot/bin/env_backup @@ -2,13 +2,13 @@ [ -z "$1" ] || cd $1 -if [ -d ".test" ]; then +if [ -d .test ]; then printf "\033[0;31mEnvironment backup already exists!\033[0m\n" else mkdir .test + cp -r Marlin/src/pins .test/pins cp Marlin/Configuration*.h .test/ [ -f Marlin/_Bootscreen.h ] && cp Marlin/_Bootscreen.h .test/ [ -f Marlin/_Statusscreen.h ] && cp Marlin/_Statusscreen.h .test/ - cp -r Marlin/src/pins .test/pins printf "\033[0;32mEnvironment Backup created\033[0m\n" fi diff --git a/buildroot/bin/env_restore b/buildroot/bin/env_restore index defc6d843..ed40211c3 100755 --- a/buildroot/bin/env_restore +++ b/buildroot/bin/env_restore @@ -2,25 +2,10 @@ [ -z "$1" ] || cd $1 -if [ -d ".test" ]; then - cp .test/Configuration*.h Marlin/ - rm .test/Configuration*.h +cp Marlin/src/config/default/* Marlin/ +[ -f Marlin/_Bootscreen.h ] && rm Marlin/_Bootscreen.h +[ -f Marlin/_Statusscreen.h ] && rm Marlin/_Statusscreen.h +[ -d .test/pins ] && { cp .test/pins/* Marlin/src/pins/ ; rm -rf .test/pins ; } +[ -d .test ] && rm -r .test - if [ -f .test/_Bootscreen.h ]; then - cp .test/_Bootscreen.h Marlin/ - rm .test/_Bootscreen.h - fi - - if [ -f .test/_Statusscreen.h ]; then - cp .test/_Statusscreen.h Marlin/ - rm .test/_Statusscreen.h - fi - - cp -r .test/pins Marlin/src - rm -r .test/pins - - rmdir .test - printf "\033[0;32mEnvironment Restored\033[0m\n" -else - printf "\033[0;31mEnvironment Backup not available!\033[0m\n" -fi +printf "\033[0;32mEnvironment Restored\033[0m\n" diff --git a/buildroot/bin/restore_configs b/buildroot/bin/restore_configs index fa1f84058..6f08363af 100755 --- a/buildroot/bin/restore_configs +++ b/buildroot/bin/restore_configs @@ -1,17 +1,15 @@ #!/usr/bin/env bash +# +# restore_configs +# +# Restore default configs, delete pins backup and dogm bitmaps +# -cp Marlin/src/config/default/Configuration.h Marlin/Configuration.h -cp Marlin/src/config/default/Configuration_adv.h Marlin/Configuration_adv.h +# Restore the (possibly modified) Configurations +[ -d ".test" -a -f ".test/Configuration.h" ] && cp .test/Configuration*.h Marlin/ -if [ -f Marlin/src/pins/pins_RAMPS.h.backup ]; then - cp Marlin/src/pins/pins_RAMPS.h.backup Marlin/src/pins/pins_RAMPS.h - rm Marlin/src/pins/pins_RAMPS.h.backup -fi +# Restore the original unmodified pins +[ -d ".test/pins" ] && cp -r .test/pins Marlin/src/pins/ -if [ -f Marlin/_Bootscreen.h ]; then - rm Marlin/_Bootscreen.h -fi - -if [ -f Marlin/_Statusscreen.h ]; then - rm Marlin/_Statusscreen.h -fi +# Delete DOGM bitmaps +rm -f Marlin/_*screen.h diff --git a/buildroot/bin/update_defaults b/buildroot/bin/update_defaults index 6100e1050..2379eb5ca 100755 --- a/buildroot/bin/update_defaults +++ b/buildroot/bin/update_defaults @@ -1,4 +1,3 @@ #!/usr/bin/env bash -cp Marlin/Configuration.h Marlin/src/config/default/Configuration.h -cp Marlin/Configuration_adv.h Marlin/src/config/default/Configuration_adv.h +cp Marlin/Configuration*.h .test/ diff --git a/buildroot/share/tests/DUE_tests b/buildroot/share/tests/DUE_tests index 100cdd570..270fa0ab3 100755 --- a/buildroot/share/tests/DUE_tests +++ b/buildroot/share/tests/DUE_tests @@ -3,9 +3,14 @@ # exit on first failure set -e -restore_configs +env_backup + opt_set MOTHERBOARD BOARD_RAMPS4DUE_EFB +update_defaults + opt_enable S_CURVE_ACCELERATION EEPROM_SETTINGS opt_set E0_AUTO_FAN_PIN 8 opt_set EXTRUDER_AUTO_FAN_SPEED 100 exec_test $1 $2 "RAMPS4DUE_EFB S_CURVE_ACCELERATION EEPROM_SETTINGS" + +env_restore diff --git a/buildroot/share/tests/LPC1768_tests b/buildroot/share/tests/LPC1768_tests index b9f1e0cf4..ee0f699ca 100755 --- a/buildroot/share/tests/LPC1768_tests +++ b/buildroot/share/tests/LPC1768_tests @@ -3,8 +3,11 @@ # exit on first failure set -e -restore_configs +env_backup + opt_set MOTHERBOARD BOARD_RAMPS_14_RE_ARM_EFB +update_defaults + exec_test $1 $2 "Build Re-ARM Default Configuration" restore_configs @@ -60,5 +63,4 @@ opt_enable FAN_SOFT_PWM SDSUPPORT opt_enable USE_XMAX_PLUG exec_test $1 $2 "MKS SBASE Many less common options" -#clean up -restore_configs +env_restore diff --git a/buildroot/share/tests/STM32F1_tests b/buildroot/share/tests/STM32F1_tests index 0d1fd9099..0d9790d71 100755 --- a/buildroot/share/tests/STM32F1_tests +++ b/buildroot/share/tests/STM32F1_tests @@ -3,10 +3,12 @@ # exit on first failure set -e -restore_configs +env_backup + opt_set MOTHERBOARD BOARD_STM32F1R +update_defaults + opt_enable EEPROM_SETTINGS EEPROM_CHITCHAT REPRAP_DISCOUNT_SMART_CONTROLLER SDSUPPORT exec_test $1 $2 "STM32F1R EEPROM_SETTINGS EEPROM_CHITCHAT REPRAP_DISCOUNT_SMART_CONTROLLER SDSUPPORT" -#cleanup -restore_configs +env_restore diff --git a/buildroot/share/tests/megaatmega2560_tests b/buildroot/share/tests/megaatmega2560_tests index faf7cd0af..d1a13e178 100755 --- a/buildroot/share/tests/megaatmega2560_tests +++ b/buildroot/share/tests/megaatmega2560_tests @@ -3,15 +3,13 @@ # exit on first failure set -e -# -# Backup pins_RAMPS.h -# -cp Marlin/src/pins/pins_RAMPS.h Marlin/src/pins/pins_RAMPS.h.backup +env_backup + # # Build with the default configurations # -restore_configs exec_test $1 $2 "Default Configuration" + # # Test 2 extruders (one MAX6675) and heated bed on basic RAMPS 1.4 # Test a "Fix Mounted" Probe with Safe Homing, some arc options, @@ -311,5 +309,4 @@ exec_test $1 $2 "TMC2208 Config" # # -#clean up -restore_configs +env_restore diff --git a/buildroot/share/tests/start_tests b/buildroot/share/tests/start_tests index 53c24f44d..6905d80a7 100755 --- a/buildroot/share/tests/start_tests +++ b/buildroot/share/tests/start_tests @@ -1,11 +1,17 @@ #!/usr/bin/env bash +# +# start_tests +# +# Run one or more tests +# + export PATH="$PATH:$( cd "$(dirname "${BASH_SOURCE[0]}")" ; pwd -P )" export PATH="$PATH:./buildroot/bin" # exit on first failure set -e -exec_test () { +exec_test() { printf "\033[0;32m[Test $2] \033[0m$3... " if build_marlin_pio $1 "-e $2"; then printf "\033[0;32mPassed\033[0m\n" @@ -18,9 +24,6 @@ exec_test () { } export -f exec_test -env_backup -printf "Running \033[0;32m$2\033[0m Tests\n" - if [[ $3 = "--deep-clean" ]]; then echo "Deleting all PlatformIO caches, downloads and installed packages..." env_clean --deep @@ -36,8 +39,9 @@ if [[ $2 = "ALL" ]]; then $f $1 $testenv done else + printf "Running \033[0;32m$2\033[0m Tests\n" exec_test $1 "$2 --target clean" "Setup Build Environment" $2_tests $1 $2 fi + printf "\033[0;32mAll tests completed successfully\033[0m\n" -env_restore diff --git a/buildroot/share/tests/teensy35_tests b/buildroot/share/tests/teensy35_tests index 0adb977cb..4ed4ba6a2 100755 --- a/buildroot/share/tests/teensy35_tests +++ b/buildroot/share/tests/teensy35_tests @@ -3,9 +3,11 @@ # exit on first failure set -e -restore_configs +env_backup + opt_set MOTHERBOARD BOARD_TEENSY35_36 -cp Marlin/src/pins/pins_RAMPS.h Marlin/src/pins/pins_RAMPS.h.backup +update_defaults + # # Test Teensy3.5 with default config # @@ -92,5 +94,4 @@ opt_add_adv Z2_MAX_PIN 2 opt_enable USE_XMAX_PLUG exec_test $1 $2 "Z_DUAL_STEPPER_DRIVERS, Z_DUAL_ENDSTOPS" -#cleanup -restore_configs +env_restore