#!/usr/bin/env bash
#
# Build tests for LPC1769 (NXP ARM Cortex-M3)
#

# exit on first failure
set -e

restore_configs
use_example_configs Azteeg/X5GT
exec_test $1 $2 "Azteeg X5GT Example Config"

restore_configs
opt_set MOTHERBOARD BOARD_SMOOTHIEBOARD
opt_set EXTRUDERS 2
opt_set TEMP_SENSOR_1 -1
opt_set TEMP_SENSOR_BED 5
opt_enable VIKI2 SDSUPPORT ADAPTIVE_FAN_SLOWING NO_FAN_SLOWING_IN_PID_TUNING \
           FIX_MOUNTED_PROBE Z_SAFE_HOMING AUTO_BED_LEVELING_BILINEAR Z_MIN_PROBE_REPEATABILITY_TEST DEBUG_LEVELING_FEATURE \
           BABYSTEPPING BABYSTEP_XY BABYSTEP_ZPROBE_OFFSET BABYSTEP_ZPROBE_GFX_OVERLAY \
           PRINTCOUNTER NOZZLE_PARK_FEATURE NOZZLE_CLEAN_FEATURE SLOW_PWM_HEATERS PIDTEMPBED EEPROM_SETTINGS INCH_MODE_SUPPORT TEMPERATURE_UNITS_SUPPORT \
           ADVANCED_PAUSE_FEATURE PARK_HEAD_ON_PAUSE \
           LCD_INFO_MENU ARC_SUPPORT BEZIER_CURVE_SUPPORT EXTENDED_CAPABILITIES_REPORT AUTO_REPORT_TEMPERATURES SDCARD_SORT_ALPHA
opt_set GRID_MAX_POINTS_X 16
exec_test $1 $2 "Smoothieboard Many Features"

restore_configs
opt_set MOTHERBOARD BOARD_AZTEEG_X5_MINI_WIFI
opt_enable COREYX USE_XMAX_PLUG DAC_MOTOR_CURRENT_DEFAULT \
           REPRAP_DISCOUNT_SMART_CONTROLLER SDSUPPORT BABYSTEPPING \
           AUTO_BED_LEVELING_UBL RESTORE_LEVELING_AFTER_G28 EEPROM_SETTINGS \
           FILAMENT_LCD_DISPLAY FILAMENT_WIDTH_SENSOR FAN_SOFT_PWM \
           SHOW_TEMP_ADC_VALUES HOME_Y_BEFORE_X EMERGENCY_PARSER FAN_KICKSTART_TIME \
           ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED ADVANCED_OK \
           VOLUMETRIC_DEFAULT_ON NO_WORKSPACE_OFFSETS ACTION_ON_KILL \
           EXTRA_FAN_SPEED FWRETRACT MENU_ADDAUTOSTART SDCARD_SORT_ALPHA
opt_set FAN_MIN_PWM 50
opt_set FAN_KICKSTART_TIME 100
opt_set XY_FREQUENCY_LIMIT  15
exec_test $1 $2 "Azteeg X5 MINI WIFI Many less common options"

restore_configs
use_example_configs delta/generic
opt_set MOTHERBOARD BOARD_COHESION3D_REMIX
opt_enable AUTO_BED_LEVELING_BILINEAR EEPROM_SETTINGS EEPROM_CHITCHAT
opt_disable Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
opt_set X_DRIVER_TYPE TMC2130
opt_set Y_DRIVER_TYPE TMC2130
opt_set Z_DRIVER_TYPE TMC2130
opt_enable TMC_USE_SW_SPI MONITOR_DRIVER_STATUS STEALTHCHOP HYBRID_THRESHOLD TMC_DEBUG \
           SENSORLESS_PROBING X_STALL_SENSITIVITY Y_STALL_SENSITIVITY Z_STALL_SENSITIVITY
exec_test $1 $2 "Delta Config (generic) + BOARD_COHESION3D_REMIX + UBL + EEPROM_SETTINGS + SENSORLESS_PROBING"

# clean up
restore_configs
