#!/usr/bin/env bash
#
# Build tests for AVR ATmega1280
#

# exit on first failure
set -e

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

#
# Test MESH_BED_LEVELING feature, with LCD
#
restore_configs
opt_set LCD_LANGUAGE an
opt_enable SPINDLE_FEATURE ULTIMAKERCONTROLLER LCD_BED_LEVELING \
           MESH_BED_LEVELING ENABLE_LEVELING_FADE_HEIGHT MESH_G28_REST_ORIGIN \
           G26_MESH_VALIDATION MESH_EDIT_MENU GCODE_QUOTED_STRINGS
exec_test $1 $2 "Spindle, MESH_BED_LEVELING, and LCD"

#
# Test DUAL_X_CARRIAGE
#
restore_configs
opt_set MOTHERBOARD BOARD_TT_OSCAR
opt_set LCD_LANGUAGE pt
opt_set EXTRUDERS 2
opt_set TEMP_SENSOR_1 1
opt_enable USE_XMAX_PLUG DUAL_X_CARRIAGE REPRAPWORLD_KEYPAD
opt_set REPRAPWORLD_KEYPAD_MOVE_STEP 10.0
exec_test $1 $2 "TT Oscar | DUAL_X_CARRIAGE"

#
# Delta Config (generic) + Probeless
#
use_example_configs delta/generic
opt_enable REPRAP_DISCOUNT_SMART_CONTROLLER DELTA_AUTO_CALIBRATION DELTA_CALIBRATION_MENU
exec_test $1 $2 "RAMPS | DELTA | RRD LCD | DELTA_AUTO_CALIBRATION | DELTA_CALIBRATION_MENU"

#
# Delta Config (generic) + ABL bilinear + BLTOUCH
use_example_configs delta/generic
opt_set LCD_LANGUAGE cz
opt_set X_DRIVER_TYPE L6470
opt_set Y_DRIVER_TYPE L6470
opt_set Z_DRIVER_TYPE L6470
opt_add L6470_CHAIN_SCK_PIN  53
opt_add L6470_CHAIN_MISO_PIN 49
opt_add L6470_CHAIN_MOSI_PIN 40
opt_add L6470_CHAIN_SS_PIN   42
opt_add "ENABLE_RESET_L64XX_CHIPS(V) NOOP"
opt_enable REPRAP_DISCOUNT_SMART_CONTROLLER DELTA_CALIBRATION_MENU AUTO_BED_LEVELING_BILINEAR BLTOUCH
exec_test $1 $2 "DELTA | L6470 | RRD LCD | ABL Bilinear | BLTOUCH"

# clean up
restore_configs
