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

# exit on first failure
set -e

#
# Build with the default configurations
#
#restore_configs
#opt_set MOTHERBOARD BOARD_RAMPS_14_RE_ARM_EFB
#exec_test $1 $2 "Default Configuration"

restore_configs
opt_set MOTHERBOARD BOARD_RAMPS_14_RE_ARM_EFB
opt_enable VIKI2 SDSUPPORT SDCARD_READONLY SERIAL_PORT_2 NEOPIXEL_LED
opt_set NEOPIXEL_PIN P1_16
exec_test $1 $2 "ReARM EFB VIKI2, SDSUPPORT, 2 Serial ports (USB CDC + UART0), NeoPixel"

#restore_configs
#use_example_configs Mks/Sbase
#exec_test $1 $2 "MKS SBASE Example Config"

restore_configs
opt_set MOTHERBOARD BOARD_MKS_SBASE
opt_set EXTRUDERS 2
opt_set TEMP_SENSOR_1 1
opt_set NUM_SERVOS 2
opt_set SERVO_DELAY "{ 300, 300 }"
opt_enable SWITCHING_NOZZLE SWITCHING_NOZZLE_E1_SERVO_NR ULTIMAKERCONTROLLER
exec_test $1 $2 "MKS SBASE with SWITCHING_NOZZLE"

restore_configs
opt_set MOTHERBOARD BOARD_RAMPS_14_RE_ARM_EEB
opt_set EXTRUDERS 2
opt_set TEMP_SENSOR_1 -1
opt_set TEMP_SENSOR_BED 5
opt_enable REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER SDSUPPORT ADAPTIVE_FAN_SLOWING NO_FAN_SLOWING_IN_PID_TUNING \
           FILAMENT_WIDTH_SENSOR FILAMENT_LCD_DISPLAY PID_EXTRUSION_SCALING \
           NOZZLE_AS_PROBE AUTO_BED_LEVELING_BILINEAR G29_RETRY_AND_RECOVER 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 \
           Z_SAFE_HOMING ADVANCED_PAUSE_FEATURE PARK_HEAD_ON_PAUSE \
           HOST_KEEPALIVE_FEATURE HOST_ACTION_COMMANDS HOST_PROMPT_SUPPORT \
           LCD_INFO_MENU ARC_SUPPORT BEZIER_CURVE_SUPPORT EXTENDED_CAPABILITIES_REPORT AUTO_REPORT_TEMPERATURES SDCARD_SORT_ALPHA EMERGENCY_PARSER
opt_set GRID_MAX_POINTS_X 16
opt_set NOZZLE_TO_PROBE_OFFSET "{ 0, 0, 0 }"
exec_test $1 $2 "Re-ARM with NOZZLE_AS_PROBE and many features."

# clean up
restore_configs
