Browse Source

Local testing via Makefile & Docker (#19981)

Costas Basdekis 3 years ago
parent
commit
1cceae89cd
No account linked to committer's email address
59 changed files with 418 additions and 226 deletions
  1. 1
    5
      .github/workflows/test-builds.yml
  2. 56
    0
      Makefile
  3. 5
    0
      README.md
  4. 177
    116
      buildroot/share/git/mftest
  5. 1
    1
      buildroot/tests/ARMED-tests
  6. 1
    1
      buildroot/tests/BIGTREE_BTT002-tests
  7. 2
    2
      buildroot/tests/BIGTREE_GTR_V1_0-tests
  8. 2
    2
      buildroot/tests/BIGTREE_SKR_PRO-tests
  9. 3
    3
      buildroot/tests/DUE-tests
  10. 2
    2
      buildroot/tests/DUE_archim-tests
  11. 1
    1
      buildroot/tests/FLYF407ZG-tests
  12. 1
    1
      buildroot/tests/FYSETC_F6_13-tests
  13. 1
    1
      buildroot/tests/FYSETC_S6-tests
  14. 1
    1
      buildroot/tests/LERDGEX-tests
  15. 3
    3
      buildroot/tests/LPC1768-tests
  16. 4
    4
      buildroot/tests/LPC1769-tests
  17. 1
    1
      buildroot/tests/NUCLEO_F767ZI-tests
  18. 1
    1
      buildroot/tests/SAMD51_grandcentral_m4-tests
  19. 1
    1
      buildroot/tests/STM32F070CB_malyan-tests
  20. 1
    1
      buildroot/tests/STM32F070RB_malyan-tests
  21. 1
    1
      buildroot/tests/STM32F103CB_malyan-tests
  22. 1
    1
      buildroot/tests/STM32F103RC_btt-tests
  23. 1
    1
      buildroot/tests/STM32F103RC_btt_USB-tests
  24. 1
    1
      buildroot/tests/STM32F103RC_fysetc-tests
  25. 1
    1
      buildroot/tests/STM32F103RC_meeb-tests
  26. 1
    1
      buildroot/tests/STM32F103RE-tests
  27. 1
    1
      buildroot/tests/STM32F103RET6_creality-tests
  28. 1
    1
      buildroot/tests/STM32F103RE_btt-tests
  29. 1
    1
      buildroot/tests/STM32F103RE_btt_USB-tests
  30. 1
    1
      buildroot/tests/STM32F103VE_longer-tests
  31. 1
    1
      buildroot/tests/STM32F4-tests
  32. 1
    1
      buildroot/tests/STM32F401VE_STEVAL-tests
  33. 1
    1
      buildroot/tests/STM32F407VE_black-tests
  34. 1
    1
      buildroot/tests/STM32F7-tests
  35. 1
    1
      buildroot/tests/at90usb1286_cdc-tests
  36. 2
    2
      buildroot/tests/at90usb1286_dfu-tests
  37. 2
    2
      buildroot/tests/esp32-tests
  38. 1
    1
      buildroot/tests/jgaurora_a5s_a1-tests
  39. 1
    1
      buildroot/tests/linux_native-tests
  40. 1
    1
      buildroot/tests/malyan_M300-tests
  41. 4
    4
      buildroot/tests/mega1280-tests
  42. 10
    10
      buildroot/tests/mega2560-tests
  43. 1
    1
      buildroot/tests/mks_robin-tests
  44. 1
    1
      buildroot/tests/mks_robin_lite-tests
  45. 1
    1
      buildroot/tests/mks_robin_mini-tests
  46. 6
    6
      buildroot/tests/mks_robin_nano35-tests
  47. 1
    1
      buildroot/tests/mks_robin_pro-tests
  48. 1
    1
      buildroot/tests/mks_robin_stm32-tests
  49. 3
    3
      buildroot/tests/rambo-tests
  50. 3
    3
      buildroot/tests/rumba32-tests
  51. 42
    6
      buildroot/tests/run_tests
  52. 1
    1
      buildroot/tests/sanguino1284p-tests
  53. 1
    1
      buildroot/tests/sanguino644p-tests
  54. 2
    2
      buildroot/tests/teensy31-tests
  55. 8
    8
      buildroot/tests/teensy35-tests
  56. 8
    8
      buildroot/tests/teensy41-tests
  57. 19
    0
      docker-compose.yml
  58. 7
    0
      docker/Dockerfile
  59. 12
    0
      get_test_targets.py

+ 1
- 5
.github/workflows/test-builds.yml View File

119
 
119
 
120
     - name: Run ${{ matrix.test-platform }} Tests
120
     - name: Run ${{ matrix.test-platform }} Tests
121
       run: |
121
       run: |
122
-        # Inline tests script
123
-        chmod +x buildroot/bin/*
124
-        chmod +x buildroot/tests/*
125
-        export PATH=./buildroot/bin/:./buildroot/tests/:${PATH}
126
-        run_tests . ${{ matrix.test-platform }}
122
+        make tests-single-ci TEST_TARGET=${{ matrix.test-platform }}

+ 56
- 0
Makefile View File

1
+help:
2
+	@echo "Tasks for local development:"
3
+	@echo "* tests-single-ci:             Run a single test from inside the CI"
4
+	@echo "* tests-single-local:          Run a single test locally"
5
+	@echo "* tests-single-local-docker:   Run a single test locally, using docker-compose"
6
+	@echo "* tests-all-local:             Run all tests locally"
7
+	@echo "* tests-all-local-docker:      Run all tests locally, using docker-compose"
8
+	@echo "* setup-local-docker:          Setup local docker-compose"
9
+	@echo ""
10
+	@echo "Options for testing:"
11
+	@echo "  TEST_TARGET          Set when running tests-single-*, to select the"
12
+	@echo "                       test. If you set it to ALL it will run all "
13
+	@echo "                       tests, but some of them are broken: use "
14
+	@echo "                       tests-all-* instead to run only the ones that "
15
+	@echo "                       run on GitHub CI"
16
+	@echo "  ONLY_TEST            Limit tests to only those that contain this, or"
17
+	@echo "                       the index of the test (1-based)"
18
+	@echo "  VERBOSE_PLATFORMIO   If you want the full PIO output, set any value"
19
+	@echo "  GIT_RESET_HARD       Used by CI: reset all local changes. WARNING:"
20
+	@echo "                       THIS WILL UNDO ANY CHANGES YOU'VE MADE!"
21
+.PHONY: help
22
+
23
+tests-single-ci:
24
+	export GIT_RESET_HARD=true
25
+	$(MAKE) tests-single-local TEST_TARGET=$(TEST_TARGET)
26
+.PHONY: tests-single-ci
27
+
28
+tests-single-local:
29
+	@if ! test -n "$(TEST_TARGET)" ; then echo "***ERROR*** Set TEST_TARGET=<your-module> or use make tests-all-local" ; return 1; fi
30
+	chmod +x buildroot/bin/*
31
+	chmod +x buildroot/tests/*
32
+	export PATH=./buildroot/bin/:./buildroot/tests/:${PATH} \
33
+	  && export VERBOSE_PLATFORMIO=$(VERBOSE_PLATFORMIO) \
34
+	  && run_tests . $(TEST_TARGET) "$(ONLY_TEST)"
35
+.PHONY: tests-single-local
36
+
37
+tests-single-local-docker:
38
+	@if ! test -n "$(TEST_TARGET)" ; then echo "***ERROR*** Set TEST_TARGET=<your-module> or use make tests-all-local-docker" ; return 1; fi
39
+	docker-compose run --rm marlin $(MAKE) tests-single-local TEST_TARGET=$(TEST_TARGET) VERBOSE_PLATFORMIO=$(VERBOSE_PLATFORMIO) GIT_RESET_HARD=$(GIT_RESET_HARD) ONLY_TEST="$(ONLY_TEST)"
40
+.PHONY: tests-single-local-docker
41
+
42
+tests-all-local:
43
+	chmod +x buildroot/bin/*
44
+	chmod +x buildroot/tests/*
45
+	export PATH=./buildroot/bin/:./buildroot/tests/:${PATH} \
46
+	  && export VERBOSE_PLATFORMIO=$(VERBOSE_PLATFORMIO) \
47
+	  && for TEST_TARGET in $$(./get_test_targets.py) ; do echo "Running tests for $$TEST_TARGET" ; run_tests . $$TEST_TARGET ; done
48
+.PHONY: tests-all-local
49
+
50
+tests-all-local-docker:
51
+	docker-compose run --rm marlin $(MAKE) tests-all-local VERBOSE_PLATFORMIO=$(VERBOSE_PLATFORMIO) GIT_RESET_HARD=$(GIT_RESET_HARD)
52
+.PHONY: tests-all-local-docker
53
+
54
+setup-local-docker:
55
+	docker-compose build
56
+.PHONY: setup-local-docker

+ 5
- 0
README.md View File

110
 - This branch is for fixing bugs and integrating any new features for the duration of the Marlin 2.0.x life-cycle.
110
 - This branch is for fixing bugs and integrating any new features for the duration of the Marlin 2.0.x life-cycle.
111
 - Follow the [Coding Standards](https://marlinfw.org/docs/development/coding_standards.html) to gain points with the maintainers.
111
 - Follow the [Coding Standards](https://marlinfw.org/docs/development/coding_standards.html) to gain points with the maintainers.
112
 - Please submit Feature Requests and Bug Reports to the [Issue Queue](https://github.com/MarlinFirmware/Marlin/issues/new/choose). Support resources are also listed there.
112
 - Please submit Feature Requests and Bug Reports to the [Issue Queue](https://github.com/MarlinFirmware/Marlin/issues/new/choose). Support resources are also listed there.
113
+- Whenever you add new features, be sure to add tests to `buildroot/tests` and then run your tests locally, if possible.
114
+  - It's optional: Running all the tests on Windows might take a long time, and they will run anyway on GitHub.
115
+  - If you're running the tests on Linux (or on WSL with the code on a Linux volume) the speed is much faster.
116
+  - You can use `make tests-all-local` or `make tests-single-local TEST_TARGET=...`.
117
+  - If you prefer Docker you can use `make tests-all-local-docker` or `make tests-all-local-docker TEST_TARGET=...`.
113
 
118
 
114
 ### [RepRap.org Wiki Page](https://reprap.org/wiki/Marlin)
119
 ### [RepRap.org Wiki Page](https://reprap.org/wiki/Marlin)
115
 
120
 

+ 177
- 116
buildroot/share/git/mftest View File

7
 #
7
 #
8
 
8
 
9
 MFINFO=$(mfinfo) || exit 1
9
 MFINFO=$(mfinfo) || exit 1
10
-[[ -d Marlin/src ]] || { echo "Please 'cd' up to repo root." ; exit 1 ; }
10
+[[ -d Marlin/src ]] || { echo "Please 'cd' to the Marlin repo root." ; exit 1 ; }
11
+
12
+perror() { echo -e "$0: \033[0;31m$1 -- $2\033[0m" ; }
13
+errout() { echo -e "\033[0;31m$1\033[0m" ; }
14
+bugout() { ((DEBUG)) && echo -e "\033[0;32m$1\033[0m" ; }
15
+
16
+usage() {
17
+  echo "
18
+Usage: mftest [-t|--env=<env>] [-n|--num=<num>] [-m|--make] [-y|--build=<Y|n>]
19
+       mftest [-a|--autobuild]
20
+       mftest [-r|--rebuild]
21
+       mftest [-u|--autoupload] [-n|--num=<num>]
22
+
23
+OPTIONS
24
+  -t --env         The environment of the test to apply / run. (As named in platformio.ini.)
25
+  -n --num         The index of the test to run. (In *-tests file order.)
26
+  -m --make        Use the make / Docker method for the build.
27
+  -y --build       Skip 'Do you want to build this test?' and assume YES.
28
+  -h --help        Print this help.
29
+  -a --autobuild   PIO Build using the MOTHERBOARD environment.
30
+  -u --autoupload  PIO Upload using the MOTHERBOARD environment.
31
+  -v --verbose     Extra output for debugging.
32
+
33
+env shortcuts: tree due esp lin lpc|lpc8 lpc9 m128 m256|mega stm|f1 f4 f7 s6 teensy|t31|t32 t35|t36 t40|t41
34
+
35
+"
36
+}
11
 
37
 
12
 TESTPATH=buildroot/tests
38
 TESTPATH=buildroot/tests
13
 
39
 
22
 ISEXEC='^exec_'
48
 ISEXEC='^exec_'
23
 ISCONT='\\ *$'
49
 ISCONT='\\ *$'
24
 
50
 
25
-# Get the environment and test number from the command
26
-TESTENV=${1:-'-'}
27
-CHOICE=${2:-0}
28
-AUTOENV=0
51
+# Get environment, test number, etc. from the command
52
+TESTENV='-'
53
+CHOICE=0
54
+DEBUG=0
55
+
56
+while getopts 'abhmruvyn:t:-:' OFLAG; do
57
+  case "${OFLAG}" in
58
+    a) AUTO_BUILD=1 ; bugout "Auto-Build target..." ;;
59
+    h) EXIT_USAGE=1 ;;
60
+    m) USE_MAKE=1 ; bugout "Using make with Docker..." ;;
61
+    n) case "$OPTARG" in
62
+         *[!0-9]*) perror "option requires a number" $OFLAG ; EXIT_USAGE=1 ;;
63
+                *) CHOICE="$OPTARG" ; bugout "Got a number: $CHOICE" ;;
64
+       esac
65
+       ;;
66
+    r) REBUILD=1         ; bugout "Rebuilding previous..."    ;;
67
+    t) TESTENV="$OPTARG" ; bugout "Got a target: $TESTENV" ;;
68
+    u) AUTO_BUILD=2      ; bugout "Auto-Upload target..."  ;;
69
+    v) DEBUG=1           ; bugout "Debug ON" ;;
70
+    y) BUILD_YES='Y'     ; bugout "Build will initiate..."    ;;
71
+    -) IFS="=" read -r ONAM OVAL <<< "$OPTARG"
72
+       case "$ONAM" in
73
+         help) [[ -z "$OVAL" ]] || perror "option can't take value $OVAL" $ONAM ; EXIT_USAGE=1 ;;
74
+    autobuild) AUTO_BUILD=1 ; bugout "Auto-Build target..."  ;;
75
+   autoupload) AUTO_BUILD=2 ; bugout "Auto-Upload target..." ;;
76
+          env) case "$OVAL" in
77
+                 '') perror "option requires a value" $ONAM ; EXIT_USAGE=1 ;;
78
+                  *) TESTENV="$OVAL" ; bugout "Got a target: $TESTENV" ;;
79
+               esac
80
+               ;;
81
+          num) case "$OVAL" in
82
+                 [0-9]+) CHOICE="$OVAL" ; bugout "Got a number: $CHOICE" ;;
83
+                      *) perror "option requires a value" $ONAM ; EXIT_USAGE=1 ;;
84
+               esac
85
+               ;;
86
+      rebuild) REBUILD=1      ; bugout "Rebuilding previous..."    ;;
87
+         make) USE_MAKE=1     ; bugout "Using make with Docker..." ;;
88
+debug|verbose) DEBUG=1        ; bugout "Debug ON" ;;
89
+        build) case "$OVAL" in
90
+                 ''|y|yes) BUILD_YES='Y' ;;
91
+                     n|no) BUILD_YES='N' ;;
92
+                        *) perror "option value must be y, n, yes, or no" $ONAM ; EXIT_USAGE=1 ;;
93
+               esac
94
+               bugout "Build will initiate? ($BUILD_YES)"
95
+               ;;
96
+            *) perror "Unknown flag" "$OPTARG" ; EXIT_USAGE=1 ;;
97
+       esac
98
+       ;;
99
+  esac
100
+done
101
+
102
+((EXIT_USAGE)) && { usage ; exit 1 ; }
103
+
104
+if ((REBUILD)); then
105
+  bugout "Rebuilding previous..."
106
+  # Build with the last-built env
107
+  [[ -f "$STATE_FILE" ]] || { errout "No previous (-r) build state found." ; exit 1 ; }
108
+  read TESTENV <"$STATE_FILE"
109
+  pio run -d . -e $TESTENV
110
+  exit
111
+fi
29
 
112
 
30
-# Allow shorthand for test name
31
 case $TESTENV in
113
 case $TESTENV in
32
-    tree) pio run -d . -e include_tree ; exit 1 ;;
33
-     due) TESTENV='DUE' ;;
34
-     esp) TESTENV='esp32' ;;
35
-    lin*) TESTENV='linux_native' ;;
36
- lpc?(8)) TESTENV='LPC1768' ;;
37
-    lpc9) TESTENV='LPC1769' ;;
38
-    m128) TESTENV='mega1280' ;;
39
-    m256) TESTENV='mega2560' ;;
40
-    mega) TESTENV='mega2560' ;;
41
-     stm) TESTENV='STM32F103RE' ;;
42
-      f1) TESTENV='STM32F103RE' ;;
43
-      f4) TESTENV='STM32F4' ;;
44
-      f7) TESTENV='STM32F7' ;;
45
-      s6) TESTENV='FYSETC_S6' ;;
46
-  teensy) TESTENV='teensy31' ;;
47
-     t31) TESTENV='teensy31' ;;
48
-     t32) TESTENV='teensy31' ;;
49
-     t35) TESTENV='teensy35' ;;
50
-     t36) TESTENV='teensy35' ;;
51
-     t40) TESTENV='teensy41' ;;
52
-     t41) TESTENV='teensy41' ;;
53
-
54
--h|--help)  echo -e "$(basename $0) : Marlin Firmware test, build, and upload\n"
55
-            echo "Usage: $(basename $0) ................. Select env and test to apply / run"
56
-            echo "       $(basename $0) [-y] env ........ Select a test for env to apply / run"
57
-            echo "       $(basename $0) [-y] env test ... Apply / run the specified env test"
58
-            echo "       $(basename $0) -b [variant] .... Auto-build the specified variant"
59
-            echo "       $(basename $0) -u [variant] .... Auto-build and upload the specified variant"
60
-            echo
61
-            echo "env shortcuts: tree due esp lin lpc|lpc8 lpc9 m128 m256|mega stm|f1 f4 f7 s6 teensy|t31|t32 t35|t36 t40|t41"
62
-            exit
63
-            ;;
64
-
65
-          # Build with the last-built env
66
-      -r) [[ -f "$STATE_FILE" ]] || { echo "No previous (-r) build state found." ; exit 1 ; }
67
-          read TESTENV <"$STATE_FILE"
68
-          pio run -d . -e $TESTENV
69
-          exit
70
-          ;;
71
-
72
-   -[bu]) MB=$( grep -E "^\s*#define MOTHERBOARD" Marlin/Configuration.h | awk '{ print $3 }' | $SED 's/BOARD_//' )
73
-          [[ -z $MB ]] && { echo "Error - Can't read MOTHERBOARD setting." ; exit 1 ; }
74
-          BLINE=$( grep -E "define\s+BOARD_$MB\b" Marlin/src/core/boards.h )
75
-          BNUM=$( $SED -E 's/^.+BOARD_[^ ]+ +([0-9]+).+$/\1/' <<<"$BLINE" )
76
-          BDESC=$( $SED -E 's/^.+\/\/ *(.+)$/\1/' <<<"$BLINE" )
77
-          [[ -z $BNUM ]] && { echo "Error - Can't find $MB in boards list." ; exit 1 ; }
78
-          readarray -t ENVS <<< $( grep -EA1 "MB\(.*\b$MB\b.*\)" Marlin/src/pins/pins.h | grep -E '#include.+//.+env:.+' | grep -oE 'env:[^ ]+' | $SED -E 's/env://' )
79
-          [[ -z $ENVS ]] && { echo "Error - Can't find target(s) for $MB ($BNUM)." ; exit 1 ; }
80
-          ECOUNT=${#ENVS[*]}
81
-
82
-          if [[ $ECOUNT == 1 ]]; then
83
-            TARGET=$ENVS
84
-          else
85
-            if [[ $CHOICE == 0 ]]; then
86
-              #
87
-              # List env names and numbers. Get selection.
88
-              #
89
-              echo "Available targets for \"$BDESC\" | $MB ($BNUM):"
90
-
91
-              IND=0 ; for ENV in "${ENVS[@]}"; do let IND++ ; echo " $IND) $ENV" ; done
92
-
93
-              if [[ $ECOUNT > 1 ]]; then
94
-                for (( ; ; ))
95
-                do
96
-                  read -p "Select a target for '$MB' (1-$ECOUNT) : " CHOICE
97
-                  [[ -z "$CHOICE" ]] && { echo '(canceled)' ; exit 1 ; }
98
-                  [[ $CHOICE =~ $ISNUM ]] && ((CHOICE >= 1 && CHOICE <= ECOUNT)) && break
99
-                  echo ">>> Invalid environment choice '$CHOICE'."
100
-                done
101
-                echo
102
-              fi
103
-            else
104
-              echo "Detected \"$BDESC\" | $MB ($BNUM)."
105
-              [[ $CHOICE > $ECOUNT ]] && { echo "Environment selection out of range." ; exit 1 ; }
106
-            fi
107
-            TARGET="${ENVS[$CHOICE-1]}"
108
-            echo "Selected $TARGET"
109
-          fi
110
-
111
-          echo "$TARGET" >"$STATE_FILE"
112
-
113
-          if [[ $TESTENV == "-u" ]]; then
114
-            echo "Build/Uploading environment $TARGET for board $MB ($BNUM)..." ; echo
115
-            pio run -t upload -e $TARGET
116
-          else
117
-            echo "Building environment $TARGET for board $MB ($BNUM)..." ; echo
118
-            pio run -e $TARGET
119
-          fi
120
-          exit
121
-          ;;
122
-
123
-          # The -y flag may come first
124
-      -y) TESTENV=${2:-'-'} ; CHOICE=${3:-0} ;;
125
-
126
-  -[a-z]) echo "Unknown flag $TESTENV" ; exit 1 ;;
127
-       -) ;;
114
+   tree) pio run -d . -e include_tree ; exit 1 ;;
115
+    due) TESTENV='DUE' ;;
116
+    esp) TESTENV='esp32' ;;
117
+   lin*) TESTENV='linux_native' ;;
118
+lpc?(8)) TESTENV='LPC1768' ;;
119
+   lpc9) TESTENV='LPC1769' ;;
120
+   m128) TESTENV='mega1280' ;;
121
+   m256) TESTENV='mega2560' ;;
122
+   mega) TESTENV='mega2560' ;;
123
+    stm) TESTENV='STM32F103RE' ;;
124
+     f1) TESTENV='STM32F103RE' ;;
125
+     f4) TESTENV='STM32F4' ;;
126
+     f7) TESTENV='STM32F7' ;;
127
+     s6) TESTENV='FYSETC_S6' ;;
128
+ teensy) TESTENV='teensy31' ;;
129
+    t31) TESTENV='teensy31' ;;
130
+    t32) TESTENV='teensy31' ;;
131
+    t35) TESTENV='teensy35' ;;
132
+    t36) TESTENV='teensy35' ;;
133
+    t40) TESTENV='teensy41' ;;
134
+    t41) TESTENV='teensy41' ;;
128
 esac
135
 esac
129
 
136
 
137
+if ((AUTO_BUILD)); then
138
+  #
139
+  # List environments that apply to the current MOTHERBOARD.
140
+  #
141
+  echo ; echo -n "Auto " ; ((AUTO_BUILD == 2)) && echo "Upload..." || echo "Build..."
142
+  MB=$( grep -E "^\s*#define MOTHERBOARD" Marlin/Configuration.h | awk '{ print $3 }' | $SED 's/BOARD_//' )
143
+  [[ -z $MB ]] && { echo "Error - Can't read MOTHERBOARD setting." ; exit 1 ; }
144
+  BLINE=$( grep -E "define\s+BOARD_$MB\b" Marlin/src/core/boards.h )
145
+  BNUM=$( $SED -E 's/^.+BOARD_[^ ]+ +([0-9]+).+$/\1/' <<<"$BLINE" )
146
+  BDESC=$( $SED -E 's/^.+\/\/ *(.+)$/\1/' <<<"$BLINE" )
147
+  [[ -z $BNUM ]] && { echo "Error - Can't find $MB in boards list." ; exit 1 ; }
148
+  ENVS=( $( grep -EA1 "MB\(.*\b$MB\b.*\)" Marlin/src/pins/pins.h | grep -E '#include.+//.+env:[^ ]+' | grep -oE 'env:[^ ]+' | $SED -E 's/env://' ) )
149
+  [[ -z $ENVS ]] && { errout "Error - Can't find target(s) for $MB ($BNUM)." ; exit 1 ; }
150
+  ECOUNT=${#ENVS[*]}
151
+
152
+  if [[ $ECOUNT == 1 ]]; then
153
+    TARGET=$ENVS
154
+  else
155
+    if [[ $CHOICE == 0 ]]; then
156
+      # List env names and numbers. Get selection.
157
+      echo "Available targets for \"$BDESC\" | $MB ($BNUM):"
158
+
159
+      IND=0 ; for ENV in "${ENVS[@]}"; do let IND++ ; echo " $IND) $ENV" ; done
160
+
161
+      if [[ $ECOUNT > 1 ]]; then
162
+        for (( ; ; ))
163
+        do
164
+          read -p "Select a target for '$MB' (1-$ECOUNT) : " CHOICE
165
+          [[ -z "$CHOICE" ]] && { echo '(canceled)' ; exit 1 ; }
166
+          [[ $CHOICE =~ $ISNUM ]] && ((CHOICE >= 1 && CHOICE <= ECOUNT)) && break
167
+          errout ">>> Invalid environment choice '$CHOICE'."
168
+        done
169
+        echo
170
+      fi
171
+    else
172
+      echo "Detected \"$BDESC\" | $MB ($BNUM)."
173
+      [[ $CHOICE > $ECOUNT ]] && { echo "Environment selection out of range." ; exit 1 ; }
174
+    fi
175
+    TARGET="${ENVS[$CHOICE-1]}"
176
+    echo "Selected $TARGET"
177
+  fi
178
+
179
+  echo "$TARGET" >"$STATE_FILE"
180
+
181
+  if ((AUTO_BUILD == 2)); then
182
+    echo "Uploading environment $TARGET for board $MB ($BNUM)..." ; echo
183
+    pio run -t upload -e $TARGET
184
+  else
185
+    echo "Building environment $TARGET for board $MB ($BNUM)..." ; echo
186
+    pio run -e $TARGET
187
+  fi
188
+  exit
189
+fi
190
+
130
 #
191
 #
131
 # List available tests and ask for selection
192
 # List available tests and ask for selection
132
 #
193
 #
148
   for (( ; ; ))
209
   for (( ; ; ))
149
   do
210
   do
150
     read -p "Select a test to apply (1-$IND) : " NAMEIND
211
     read -p "Select a test to apply (1-$IND) : " NAMEIND
151
-    [[ -z "$NAMEIND" ]] && { echo '(canceled)' ; exit 1 ; }
212
+    [[ -z "$NAMEIND" ]] && { errout "(canceled)" ; exit 1 ; }
152
     [[ $NAMEIND =~ $ISNUM ]] && ((NAMEIND >= 1 && NAMEIND <= IND)) && { TESTENV=${NAMES[$NAMEIND-1]} ; echo ; break ; }
213
     [[ $NAMEIND =~ $ISNUM ]] && ((NAMEIND >= 1 && NAMEIND <= IND)) && { TESTENV=${NAMES[$NAMEIND-1]} ; echo ; break ; }
153
-    echo "Invalid selection."
214
+    errout "Invalid selection."
154
   done
215
   done
155
 fi
216
 fi
156
 
217
 
157
 # Get the contents of the test file
218
 # Get the contents of the test file
158
-OUT=$( cat $TESTPATH/$TESTENV-tests 2>/dev/null ) || { echo "Can't find test '$TESTENV'." ; exit 1 ; }
219
+OUT=$( cat $TESTPATH/$TESTENV-tests 2>/dev/null ) || { errout "Can't find test '$TESTENV'." ; exit 1 ; }
159
 
220
 
160
 # Count up the number of tests
221
 # Count up the number of tests
161
 TESTCOUNT=$( awk "/$ISEXEC/{a++}END{print a}" <<<"$OUT" )
222
 TESTCOUNT=$( awk "/$ISEXEC/{a++}END{print a}" <<<"$OUT" )
162
 
223
 
163
 # User entered a number?
224
 # User entered a number?
164
-(( CHOICE && CHOICE > TESTCOUNT )) && { echo "Invalid test selection '$CHOICE' (1-$TESTCOUNT)." ; exit 1 ; }
225
+(( CHOICE && CHOICE > TESTCOUNT )) && { errout "Invalid test selection '$CHOICE' (1-$TESTCOUNT)." ; exit 1 ; }
165
 
226
 
166
 if [[ $CHOICE == 0 ]]; then
227
 if [[ $CHOICE == 0 ]]; then
167
   #
228
   #
172
     while IFS= read -r LINE
233
     while IFS= read -r LINE
173
     do
234
     do
174
       if [[ $LINE =~ $ISEXEC ]]; then
235
       if [[ $LINE =~ $ISEXEC ]]; then
175
-        DESC=$( "$SED" -E 's/^.+"(.*)".*$/\1/g' <<<"$LINE" )
236
+        DESC=$( "$SED" -E 's/^exec_test \$1 \$2 "([^"]+)".*$/\1/g' <<<"$LINE" )
176
         (( ++IND < 10 )) && echo -n " "
237
         (( ++IND < 10 )) && echo -n " "
177
         echo " $IND) $DESC"
238
         echo " $IND) $DESC"
178
       fi
239
       fi
183
     for (( ; ; ))
244
     for (( ; ; ))
184
     do
245
     do
185
       read -p "Select a '$TESTENV' test (1-$TESTCOUNT) : " CHOICE
246
       read -p "Select a '$TESTENV' test (1-$TESTCOUNT) : " CHOICE
186
-      [[ -z "$CHOICE" ]] && { echo '(canceled)' ; exit 1 ; }
247
+      [[ -z "$CHOICE" ]] && { errout "(canceled)" ; exit 1 ; }
187
       [[ $CHOICE =~ $ISNUM ]] && ((CHOICE >= 1 && CHOICE <= TESTCOUNT)) && break
248
       [[ $CHOICE =~ $ISNUM ]] && ((CHOICE >= 1 && CHOICE <= TESTCOUNT)) && break
188
-      echo ">>> Invalid test selection '$CHOICE'."
249
+      errout ">>> Invalid test selection '$CHOICE'."
189
     done
250
     done
190
   fi
251
   fi
191
 fi
252
 fi
193
 #
254
 #
194
 # Run the specified test lines
255
 # Run the specified test lines
195
 #
256
 #
257
+echo -ne "\033[0;33m"
196
 echo "$OUT" | {
258
 echo "$OUT" | {
197
   IND=0
259
   IND=0
198
   GOTX=0
260
   GOTX=0
210
         }
272
         }
211
         ((IND == CHOICE)) && {
273
         ((IND == CHOICE)) && {
212
           GOTX=1
274
           GOTX=1
213
-          [[ $CMD == "" ]] && CMD="$LINE" || CMD=$( echo -e "$CMD$LINE" | $SED -e 's/\\//g' )
214
-          [[ $LINE =~ $ISCONT ]] || { echo $CMD ; eval "$CMD" ; CMD="" ; }
275
+          [[ $CMD == "" ]] && CMD="$LINE" || CMD=$( echo -e "$CMD$LINE" | $SED -e 's/\\//g' | $SED -E 's/ +/ /g' )
276
+          [[ $LINE =~ $ISCONT ]] || { echo "$CMD" ; eval "$CMD" ; CMD="" ; }
215
         }
277
         }
216
       fi
278
       fi
217
     fi
279
     fi
218
   done
280
   done
219
 }
281
 }
282
+echo -ne "\033[0m"
220
 
283
 
221
 # Make clear it's a TEST
284
 # Make clear it's a TEST
222
 opt_set CUSTOM_MACHINE_NAME "\"$TESTENV-tests ($CHOICE)\""
285
 opt_set CUSTOM_MACHINE_NAME "\"$TESTENV-tests ($CHOICE)\""
223
 
286
 
224
-# Get a -y parameter the lazy way
225
-[[ "$2" == "-y" || "$3" == "-y" ]] && BUILD_YES='Y'
226
-
227
 # Build the test too?
287
 # Build the test too?
228
-if [[ $BUILD_YES != 'Y' ]]; then
288
+if [[ -z "$BUILD_YES" ]]; then
229
   echo
289
   echo
230
   read -p "Build $TESTENV test #$CHOICE (y/N) ? " BUILD_YES
290
   read -p "Build $TESTENV test #$CHOICE (y/N) ? " BUILD_YES
231
 fi
291
 fi
232
 
292
 
233
 [[ $BUILD_YES == 'Y' || $BUILD_YES == 'Yes' ]] && {
293
 [[ $BUILD_YES == 'Y' || $BUILD_YES == 'Yes' ]] && {
234
-  pio run -d . -e $TESTENV
294
+  ((USE_MAKE)) && make tests-single-local TEST_TARGET=$TESTENV ONLY_TEST=$CHOICE
295
+  ((USE_MAKE)) || pio run -d . -e $TESTENV
235
   echo "$TESTENV" >"$STATE_FILE"
296
   echo "$TESTENV" >"$STATE_FILE"
236
 }
297
 }

+ 1
- 1
buildroot/tests/ARMED-tests View File

13
 use_example_configs ArmEd
13
 use_example_configs ArmEd
14
 opt_set X_DRIVER_TYPE TMC2130
14
 opt_set X_DRIVER_TYPE TMC2130
15
 opt_set Y_DRIVER_TYPE TMC2208
15
 opt_set Y_DRIVER_TYPE TMC2208
16
-exec_test $1 $2 "ArmEd Example Configuration with mixed TMC Drivers"
16
+exec_test $1 $2 "ArmEd Example Configuration with mixed TMC Drivers" "$3"
17
 
17
 
18
 # clean up
18
 # clean up
19
 restore_configs
19
 restore_configs

+ 1
- 1
buildroot/tests/BIGTREE_BTT002-tests View File

14
 opt_set SERIAL_PORT 1
14
 opt_set SERIAL_PORT 1
15
 opt_set X_DRIVER_TYPE TMC2209
15
 opt_set X_DRIVER_TYPE TMC2209
16
 opt_set Y_DRIVER_TYPE TMC2130
16
 opt_set Y_DRIVER_TYPE TMC2130
17
-exec_test $1 $2 "BigTreeTech BTT002 Default Configuration plus TMC steppers"
17
+exec_test $1 $2 "BigTreeTech BTT002 Default Configuration plus TMC steppers" "$3"
18
 
18
 
19
 # clean up
19
 # clean up
20
 restore_configs
20
 restore_configs

+ 2
- 2
buildroot/tests/BIGTREE_GTR_V1_0-tests View File

37
 opt_enable FIL_RUNOUT4_PULL
37
 opt_enable FIL_RUNOUT4_PULL
38
 opt_set FIL_RUNOUT8_STATE HIGH
38
 opt_set FIL_RUNOUT8_STATE HIGH
39
 opt_enable FIL_RUNOUT8_PULL
39
 opt_enable FIL_RUNOUT8_PULL
40
-exec_test $1 $2 "BigTreeTech GTR 8 Extruders with Auto-Fan, Mixed TMC Drivers, and Runout Sensors with distinct states"
40
+exec_test $1 $2 "BigTreeTech GTR 8 Extruders with Auto-Fan, Mixed TMC Drivers, and Runout Sensors with distinct states" "$3"
41
 
41
 
42
 restore_configs
42
 restore_configs
43
 opt_set MOTHERBOARD BOARD_BTT_GTR_V1_0
43
 opt_set MOTHERBOARD BOARD_BTT_GTR_V1_0
53
 opt_set DEFAULT_Ki_LIST "{ 1.08 }"
53
 opt_set DEFAULT_Ki_LIST "{ 1.08 }"
54
 opt_set DEFAULT_Kd_LIST "{ 114.0, 112.0, 110.0, 108.0 }"
54
 opt_set DEFAULT_Kd_LIST "{ 114.0, 112.0, 110.0, 108.0 }"
55
 opt_enable TOOLCHANGE_FILAMENT_SWAP TOOLCHANGE_MIGRATION_FEATURE TOOLCHANGE_FS_INIT_BEFORE_SWAP TOOLCHANGE_FS_PRIME_FIRST_USED PID_PARAMS_PER_HOTEND
55
 opt_enable TOOLCHANGE_FILAMENT_SWAP TOOLCHANGE_MIGRATION_FEATURE TOOLCHANGE_FS_INIT_BEFORE_SWAP TOOLCHANGE_FS_PRIME_FIRST_USED PID_PARAMS_PER_HOTEND
56
-exec_test $1 $2 "BigTreeTech GTR 6 Extruders Triple Z"
56
+exec_test $1 $2 "BigTreeTech GTR 6 Extruders Triple Z" "$3"
57
 
57
 
58
 # clean up
58
 # clean up
59
 restore_configs
59
 restore_configs

+ 2
- 2
buildroot/tests/BIGTREE_SKR_PRO-tests View File

12
 restore_configs
12
 restore_configs
13
 opt_set MOTHERBOARD BOARD_BTT_SKR_PRO_V1_1
13
 opt_set MOTHERBOARD BOARD_BTT_SKR_PRO_V1_1
14
 opt_set SERIAL_PORT 1
14
 opt_set SERIAL_PORT 1
15
-exec_test $1 $2 "BigTreeTech SKR Pro Default Configuration"
15
+exec_test $1 $2 "BigTreeTech SKR Pro Default Configuration" "$3"
16
 
16
 
17
 restore_configs
17
 restore_configs
18
 opt_set MOTHERBOARD BOARD_BTT_SKR_PRO_V1_1
18
 opt_set MOTHERBOARD BOARD_BTT_SKR_PRO_V1_1
26
 opt_set X_DRIVER_TYPE TMC2209
26
 opt_set X_DRIVER_TYPE TMC2209
27
 opt_set Y_DRIVER_TYPE TMC2130
27
 opt_set Y_DRIVER_TYPE TMC2130
28
 opt_enable BLTOUCH EEPROM_SETTINGS AUTO_BED_LEVELING_3POINT Z_SAFE_HOMING
28
 opt_enable BLTOUCH EEPROM_SETTINGS AUTO_BED_LEVELING_3POINT Z_SAFE_HOMING
29
-exec_test $1 $2 "BigTreeTech SKR Pro 3 Extruders, Auto-Fan, BLTOUCH, mixed TMC drivers"
29
+exec_test $1 $2 "BigTreeTech SKR Pro 3 Extruders, Auto-Fan, BLTOUCH, mixed TMC drivers" "$3"
30
 
30
 
31
 # clean up
31
 # clean up
32
 restore_configs
32
 restore_configs

+ 3
- 3
buildroot/tests/DUE-tests View File

33
 opt_set TEMP_SENSOR_CHAMBER 3
33
 opt_set TEMP_SENSOR_CHAMBER 3
34
 opt_add TEMP_CHAMBER_PIN 6
34
 opt_add TEMP_CHAMBER_PIN 6
35
 opt_set HEATER_CHAMBER_PIN 45
35
 opt_set HEATER_CHAMBER_PIN 45
36
-exec_test $1 $2 "RAMPS4DUE_EFB with ABL (Bilinear), ExtUI, S-Curve, many options."
36
+exec_test $1 $2 "RAMPS4DUE_EFB with ABL (Bilinear), ExtUI, S-Curve, many options." "$3"
37
 
37
 
38
 #
38
 #
39
 # RADDS with BLTouch, ABL(B), 3 x Z auto-align
39
 # RADDS with BLTouch, ABL(B), 3 x Z auto-align
51
 opt_add Z3_MAX_PIN 3
51
 opt_add Z3_MAX_PIN 3
52
 pins_set ramps/RAMPS X_MAX_PIN -1
52
 pins_set ramps/RAMPS X_MAX_PIN -1
53
 pins_set ramps/RAMPS Y_MAX_PIN -1
53
 pins_set ramps/RAMPS Y_MAX_PIN -1
54
-exec_test $1 $2 "RADDS with ABL (Bilinear), Triple Z Axis, Z_STEPPER_AUTO_ALIGN"
54
+exec_test $1 $2 "RADDS with ABL (Bilinear), Triple Z Axis, Z_STEPPER_AUTO_ALIGN" "$3"
55
 
55
 
56
 #
56
 #
57
 # Test SWITCHING_EXTRUDER
57
 # Test SWITCHING_EXTRUDER
62
 opt_set EXTRUDERS 2
62
 opt_set EXTRUDERS 2
63
 opt_set NUM_SERVOS 1
63
 opt_set NUM_SERVOS 1
64
 opt_enable SWITCHING_EXTRUDER ULTIMAKERCONTROLLER BEEP_ON_FEEDRATE_CHANGE POWER_LOSS_RECOVERY
64
 opt_enable SWITCHING_EXTRUDER ULTIMAKERCONTROLLER BEEP_ON_FEEDRATE_CHANGE POWER_LOSS_RECOVERY
65
-exec_test $1 $2 "RAMPS4DUE_EEF with SWITCHING_EXTRUDER, POWER_LOSS_RECOVERY"
65
+exec_test $1 $2 "RAMPS4DUE_EEF with SWITCHING_EXTRUDER, POWER_LOSS_RECOVERY" "$3"

+ 2
- 2
buildroot/tests/DUE_archim-tests View File

10
 # Test Archim 1
10
 # Test Archim 1
11
 #
11
 #
12
 use_example_configs UltiMachine/Archim1
12
 use_example_configs UltiMachine/Archim1
13
-exec_test $1 $2 "Archim 1 base configuration"
13
+exec_test $1 $2 "Archim 1 base configuration" "$3"
14
 
14
 
15
 #
15
 #
16
 # Test Archim 2
16
 # Test Archim 2
17
 #
17
 #
18
 use_example_configs UltiMachine/Archim2
18
 use_example_configs UltiMachine/Archim2
19
-exec_test $1 $2 "Archim 2 base configuration"
19
+exec_test $1 $2 "Archim 2 base configuration" "$3"
20
 
20
 
21
 restore_configs
21
 restore_configs

+ 1
- 1
buildroot/tests/FLYF407ZG-tests View File

12
 opt_set SERIAL_PORT -1
12
 opt_set SERIAL_PORT -1
13
 opt_set X_DRIVER_TYPE TMC2208
13
 opt_set X_DRIVER_TYPE TMC2208
14
 opt_set Y_DRIVER_TYPE TMC2130
14
 opt_set Y_DRIVER_TYPE TMC2130
15
-exec_test $1 $2 "FLYF407ZG Default Config with mixed TMC Drivers"
15
+exec_test $1 $2 "FLYF407ZG Default Config with mixed TMC Drivers" "$3"
16
 
16
 
17
 # cleanup
17
 # cleanup
18
 restore_configs
18
 restore_configs

+ 1
- 1
buildroot/tests/FYSETC_F6_13-tests View File

12
 restore_configs
12
 restore_configs
13
 opt_set MOTHERBOARD BOARD_FYSETC_F6_13
13
 opt_set MOTHERBOARD BOARD_FYSETC_F6_13
14
 opt_enable DGUS_LCD_UI_FYSETC
14
 opt_enable DGUS_LCD_UI_FYSETC
15
-exec_test $1 $2 "FYSETC F6 1.3 with DGUS"
15
+exec_test $1 $2 "FYSETC F6 1.3 with DGUS" "$3"
16
 
16
 
17
 # clean up
17
 # clean up
18
 restore_configs
18
 restore_configs

+ 1
- 1
buildroot/tests/FYSETC_S6-tests View File

11
 use_example_configs FYSETC/S6
11
 use_example_configs FYSETC/S6
12
 opt_set Y_DRIVER_TYPE TMC2209
12
 opt_set Y_DRIVER_TYPE TMC2209
13
 opt_set Z_DRIVER_TYPE TMC2130
13
 opt_set Z_DRIVER_TYPE TMC2130
14
-exec_test $1 $2 "FYSETC S6 Example"
14
+exec_test $1 $2 "FYSETC S6 Example" "$3"
15
 
15
 
16
 # cleanup
16
 # cleanup
17
 restore_configs
17
 restore_configs

+ 1
- 1
buildroot/tests/LERDGEX-tests View File

12
 restore_configs
12
 restore_configs
13
 opt_set MOTHERBOARD BOARD_LERDGE_X
13
 opt_set MOTHERBOARD BOARD_LERDGE_X
14
 opt_set SERIAL_PORT 1
14
 opt_set SERIAL_PORT 1
15
-exec_test $1 $2 "LERDGE X with Default Configuration"
15
+exec_test $1 $2 "LERDGE X with Default Configuration" "$3"
16
 
16
 
17
 # clean up
17
 # clean up
18
 restore_configs
18
 restore_configs

+ 3
- 3
buildroot/tests/LPC1768-tests View File

17
 opt_set MOTHERBOARD BOARD_RAMPS_14_RE_ARM_EFB
17
 opt_set MOTHERBOARD BOARD_RAMPS_14_RE_ARM_EFB
18
 opt_enable VIKI2 SDSUPPORT SDCARD_READONLY SERIAL_PORT_2 NEOPIXEL_LED
18
 opt_enable VIKI2 SDSUPPORT SDCARD_READONLY SERIAL_PORT_2 NEOPIXEL_LED
19
 opt_set NEOPIXEL_PIN P1_16
19
 opt_set NEOPIXEL_PIN P1_16
20
-exec_test $1 $2 "ReARM EFB VIKI2, SDSUPPORT, 2 Serial ports (USB CDC + UART0), NeoPixel"
20
+exec_test $1 $2 "ReARM EFB VIKI2, SDSUPPORT, 2 Serial ports (USB CDC + UART0), NeoPixel" "$3"
21
 
21
 
22
 #restore_configs
22
 #restore_configs
23
 #use_example_configs Mks/Sbase
23
 #use_example_configs Mks/Sbase
30
 opt_set NUM_SERVOS 2
30
 opt_set NUM_SERVOS 2
31
 opt_set SERVO_DELAY "{ 300, 300 }"
31
 opt_set SERVO_DELAY "{ 300, 300 }"
32
 opt_enable SWITCHING_NOZZLE SWITCHING_NOZZLE_E1_SERVO_NR ULTIMAKERCONTROLLER
32
 opt_enable SWITCHING_NOZZLE SWITCHING_NOZZLE_E1_SERVO_NR ULTIMAKERCONTROLLER
33
-exec_test $1 $2 "MKS SBASE with SWITCHING_NOZZLE"
33
+exec_test $1 $2 "MKS SBASE with SWITCHING_NOZZLE" "$3"
34
 
34
 
35
 restore_configs
35
 restore_configs
36
 opt_set MOTHERBOARD BOARD_RAMPS_14_RE_ARM_EEB
36
 opt_set MOTHERBOARD BOARD_RAMPS_14_RE_ARM_EEB
47
            LCD_INFO_MENU ARC_SUPPORT BEZIER_CURVE_SUPPORT EXTENDED_CAPABILITIES_REPORT AUTO_REPORT_TEMPERATURES SDCARD_SORT_ALPHA EMERGENCY_PARSER
47
            LCD_INFO_MENU ARC_SUPPORT BEZIER_CURVE_SUPPORT EXTENDED_CAPABILITIES_REPORT AUTO_REPORT_TEMPERATURES SDCARD_SORT_ALPHA EMERGENCY_PARSER
48
 opt_set GRID_MAX_POINTS_X 16
48
 opt_set GRID_MAX_POINTS_X 16
49
 opt_set NOZZLE_TO_PROBE_OFFSET "{ 0, 0, 0 }"
49
 opt_set NOZZLE_TO_PROBE_OFFSET "{ 0, 0, 0 }"
50
-exec_test $1 $2 "Re-ARM with NOZZLE_AS_PROBE and many features."
50
+exec_test $1 $2 "Re-ARM with NOZZLE_AS_PROBE and many features." "$3"
51
 
51
 
52
 # clean up
52
 # clean up
53
 restore_configs
53
 restore_configs

+ 4
- 4
buildroot/tests/LPC1769-tests View File

10
 # Build with the default configurations
10
 # Build with the default configurations
11
 #
11
 #
12
 use_example_configs Azteeg/X5GT
12
 use_example_configs Azteeg/X5GT
13
-exec_test $1 $2 "Azteeg X5GT Example Configuration"
13
+exec_test $1 $2 "Azteeg X5GT Example Configuration" "$3"
14
 
14
 
15
 restore_configs
15
 restore_configs
16
 opt_set MOTHERBOARD BOARD_SMOOTHIEBOARD
16
 opt_set MOTHERBOARD BOARD_SMOOTHIEBOARD
25
            LCD_INFO_MENU ARC_SUPPORT BEZIER_CURVE_SUPPORT EXTENDED_CAPABILITIES_REPORT AUTO_REPORT_TEMPERATURES SDCARD_SORT_ALPHA EMERGENCY_PARSER
25
            LCD_INFO_MENU ARC_SUPPORT BEZIER_CURVE_SUPPORT EXTENDED_CAPABILITIES_REPORT AUTO_REPORT_TEMPERATURES SDCARD_SORT_ALPHA EMERGENCY_PARSER
26
 opt_disable SD_PROCEDURE_DEPTH
26
 opt_disable SD_PROCEDURE_DEPTH
27
 opt_set GRID_MAX_POINTS_X 16
27
 opt_set GRID_MAX_POINTS_X 16
28
-exec_test $1 $2 "Smoothieboard with many features"
28
+exec_test $1 $2 "Smoothieboard with many features" "$3"
29
 
29
 
30
 restore_configs
30
 restore_configs
31
 opt_set MOTHERBOARD BOARD_SMOOTHIEBOARD
31
 opt_set MOTHERBOARD BOARD_SMOOTHIEBOARD
39
            Z_SAFE_HOMING ADVANCED_PAUSE_FEATURE PARK_HEAD_ON_PAUSE \
39
            Z_SAFE_HOMING ADVANCED_PAUSE_FEATURE PARK_HEAD_ON_PAUSE \
40
            LCD_INFO_MENU ARC_SUPPORT BEZIER_CURVE_SUPPORT EXTENDED_CAPABILITIES_REPORT AUTO_REPORT_TEMPERATURES SDCARD_SORT_ALPHA EMERGENCY_PARSER
40
            LCD_INFO_MENU ARC_SUPPORT BEZIER_CURVE_SUPPORT EXTENDED_CAPABILITIES_REPORT AUTO_REPORT_TEMPERATURES SDCARD_SORT_ALPHA EMERGENCY_PARSER
41
 opt_set GRID_MAX_POINTS_X 16
41
 opt_set GRID_MAX_POINTS_X 16
42
-exec_test $1 $2 "Smoothieboard with TFTGLCD_PANEL_SPI"
42
+exec_test $1 $2 "Smoothieboard with TFTGLCD_PANEL_SPI" "$3"
43
 
43
 
44
 #restore_configs
44
 #restore_configs
45
 #opt_set MOTHERBOARD BOARD_AZTEEG_X5_MINI_WIFI
45
 #opt_set MOTHERBOARD BOARD_AZTEEG_X5_MINI_WIFI
67
            SENSORLESS_PROBING Z_SAFE_HOMING X_STALL_SENSITIVITY Y_STALL_SENSITIVITY Z_STALL_SENSITIVITY TMC_DEBUG \
67
            SENSORLESS_PROBING Z_SAFE_HOMING X_STALL_SENSITIVITY Y_STALL_SENSITIVITY Z_STALL_SENSITIVITY TMC_DEBUG \
68
            EXPERIMENTAL_I2CBUS
68
            EXPERIMENTAL_I2CBUS
69
 opt_disable PSU_CONTROL
69
 opt_disable PSU_CONTROL
70
-exec_test $1 $2 "Cohesion3D Remix DELTA + ABL Bilinear + EEPROM + SENSORLESS_PROBING"
70
+exec_test $1 $2 "Cohesion3D Remix DELTA + ABL Bilinear + EEPROM + SENSORLESS_PROBING" "$3"
71
 
71
 
72
 # clean up
72
 # clean up
73
 restore_configs
73
 restore_configs

+ 1
- 1
buildroot/tests/NUCLEO_F767ZI-tests View File

15
 opt_enable BLTOUCH Z_SAFE_HOMING SPEAKER
15
 opt_enable BLTOUCH Z_SAFE_HOMING SPEAKER
16
 opt_set X_DRIVER_TYPE TMC2209
16
 opt_set X_DRIVER_TYPE TMC2209
17
 opt_set Y_DRIVER_TYPE TMC2208
17
 opt_set Y_DRIVER_TYPE TMC2208
18
-exec_test $1 $2 "Mixed timer usage"
18
+exec_test $1 $2 "Mixed timer usage" "$3"
19
 
19
 
20
 # clean up
20
 # clean up
21
 restore_configs
21
 restore_configs

+ 1
- 1
buildroot/tests/SAMD51_grandcentral_m4-tests View File

33
            MOVE_Z_WHEN_IDLE BABYSTEP_ZPROBE_OFFSET BABYSTEP_ZPROBE_GFX_OVERLAY \
33
            MOVE_Z_WHEN_IDLE BABYSTEP_ZPROBE_OFFSET BABYSTEP_ZPROBE_GFX_OVERLAY \
34
            LIN_ADVANCE ADVANCED_PAUSE_FEATURE PARK_HEAD_ON_PAUSE MONITOR_DRIVER_STATUS SENSORLESS_HOMING \
34
            LIN_ADVANCE ADVANCED_PAUSE_FEATURE PARK_HEAD_ON_PAUSE MONITOR_DRIVER_STATUS SENSORLESS_HOMING \
35
            SQUARE_WAVE_STEPPING TMC_DEBUG EXPERIMENTAL_SCURVE
35
            SQUARE_WAVE_STEPPING TMC_DEBUG EXPERIMENTAL_SCURVE
36
-exec_test $1 $2 "Build Grand Central M4 Default Configuration"
36
+exec_test $1 $2 "Build Grand Central M4 Default Configuration" "$3"
37
 
37
 
38
 # clean up
38
 # clean up
39
 restore_configs
39
 restore_configs

+ 1
- 1
buildroot/tests/STM32F070CB_malyan-tests View File

9
 restore_configs
9
 restore_configs
10
 opt_set MOTHERBOARD BOARD_MALYAN_M200_V2
10
 opt_set MOTHERBOARD BOARD_MALYAN_M200_V2
11
 opt_set SERIAL_PORT -1
11
 opt_set SERIAL_PORT -1
12
-exec_test $1 $2 "Malyan M200 v2 Default Config"
12
+exec_test $1 $2 "Malyan M200 v2 Default Config" "$3"
13
 
13
 
14
 # cleanup
14
 # cleanup
15
 restore_configs
15
 restore_configs

+ 1
- 1
buildroot/tests/STM32F070RB_malyan-tests View File

9
 restore_configs
9
 restore_configs
10
 opt_set MOTHERBOARD BOARD_MALYAN_M200_V2
10
 opt_set MOTHERBOARD BOARD_MALYAN_M200_V2
11
 opt_set SERIAL_PORT -1
11
 opt_set SERIAL_PORT -1
12
-exec_test $1 $2 "Malyan M200 v2 Default Config"
12
+exec_test $1 $2 "Malyan M200 v2 Default Config" "$3"
13
 
13
 
14
 # cleanup
14
 # cleanup
15
 restore_configs
15
 restore_configs

+ 1
- 1
buildroot/tests/STM32F103CB_malyan-tests View File

7
 set -e
7
 set -e
8
 
8
 
9
 use_example_configs Malyan/M200
9
 use_example_configs Malyan/M200
10
-exec_test $1 $2 "Malyan M200"
10
+exec_test $1 $2 "Malyan M200" "$3"
11
 
11
 
12
 # cleanup
12
 # cleanup
13
 restore_configs
13
 restore_configs

+ 1
- 1
buildroot/tests/STM32F103RC_btt-tests View File

22
 opt_set Z_SLAVE_ADDRESS 2
22
 opt_set Z_SLAVE_ADDRESS 2
23
 opt_set E0_SLAVE_ADDRESS 3
23
 opt_set E0_SLAVE_ADDRESS 3
24
 
24
 
25
-exec_test $1 $2 "BigTreeTech SKR Mini E3 1.0 - Basic Config with TMC2209 HW Serial"
25
+exec_test $1 $2 "BigTreeTech SKR Mini E3 1.0 - Basic Config with TMC2209 HW Serial" "$3"
26
 
26
 
27
 # clean up
27
 # clean up
28
 restore_configs
28
 restore_configs

+ 1
- 1
buildroot/tests/STM32F103RC_btt_USB-tests View File

13
 opt_set MOTHERBOARD BOARD_BTT_SKR_MINI_V1_1
13
 opt_set MOTHERBOARD BOARD_BTT_SKR_MINI_V1_1
14
 opt_set SERIAL_PORT 1
14
 opt_set SERIAL_PORT 1
15
 opt_set SERIAL_PORT_2 -1
15
 opt_set SERIAL_PORT_2 -1
16
-exec_test $1 $2 "BigTreeTech SKR Mini v1.1 - Basic Configuration"
16
+exec_test $1 $2 "BigTreeTech SKR Mini v1.1 - Basic Configuration" "$3"
17
 
17
 
18
 # clean up
18
 # clean up
19
 restore_configs
19
 restore_configs

+ 1
- 1
buildroot/tests/STM32F103RC_fysetc-tests View File

10
 # Build with the default configurations
10
 # Build with the default configurations
11
 #
11
 #
12
 use_example_configs "Creality/Ender-3/FYSETC Cheetah 1.2/base"
12
 use_example_configs "Creality/Ender-3/FYSETC Cheetah 1.2/base"
13
-exec_test $1 $2 "Cheetah 1.2 Configuration"
13
+exec_test $1 $2 "Cheetah 1.2 Configuration" "$3"
14
 
14
 
15
 # clean up
15
 # clean up
16
 restore_configs
16
 restore_configs

+ 1
- 1
buildroot/tests/STM32F103RC_meeb-tests View File

17
 opt_set Y_DRIVER_TYPE TMC2208
17
 opt_set Y_DRIVER_TYPE TMC2208
18
 opt_set Z_DRIVER_TYPE TMC2208
18
 opt_set Z_DRIVER_TYPE TMC2208
19
 opt_set E0_DRIVER_TYPE TMC2208
19
 opt_set E0_DRIVER_TYPE TMC2208
20
-exec_test $1 $2 "MEEB_3DP - Basic Config with TMC2208 SW Serial"
20
+exec_test $1 $2 "MEEB_3DP - Basic Config with TMC2208 SW Serial" "$3"
21
 
21
 
22
 # clean up
22
 # clean up
23
 restore_configs
23
 restore_configs

+ 1
- 1
buildroot/tests/STM32F103RE-tests View File

16
 opt_enable EEPROM_SETTINGS EEPROM_CHITCHAT REPRAP_DISCOUNT_SMART_CONTROLLER SDSUPPORT \
16
 opt_enable EEPROM_SETTINGS EEPROM_CHITCHAT REPRAP_DISCOUNT_SMART_CONTROLLER SDSUPPORT \
17
            PAREN_COMMENTS GCODE_MOTION_MODES SINGLENOZZLE TOOLCHANGE_FILAMENT_SWAP TOOLCHANGE_PARK \
17
            PAREN_COMMENTS GCODE_MOTION_MODES SINGLENOZZLE TOOLCHANGE_FILAMENT_SWAP TOOLCHANGE_PARK \
18
            BAUD_RATE_GCODE GCODE_MACROS NOZZLE_PARK_FEATURE NOZZLE_CLEAN_FEATURE
18
            BAUD_RATE_GCODE GCODE_MACROS NOZZLE_PARK_FEATURE NOZZLE_CLEAN_FEATURE
19
-exec_test $1 $2 "STM32F1R EEPROM_SETTINGS EEPROM_CHITCHAT REPRAP_DISCOUNT_SMART_CONTROLLER SDSUPPORT PAREN_COMMENTS GCODE_MOTION_MODES"
19
+exec_test $1 $2 "STM32F1R EEPROM_SETTINGS EEPROM_CHITCHAT REPRAP_DISCOUNT_SMART_CONTROLLER SDSUPPORT PAREN_COMMENTS GCODE_MOTION_MODES" "$3"
20
 
20
 
21
 # cleanup
21
 # cleanup
22
 restore_configs
22
 restore_configs

+ 1
- 1
buildroot/tests/STM32F103RET6_creality-tests View File

11
 #
11
 #
12
 use_example_configs "Creality/Ender-3 V2"
12
 use_example_configs "Creality/Ender-3 V2"
13
 opt_enable MARLIN_DEV_MODE
13
 opt_enable MARLIN_DEV_MODE
14
-exec_test $1 $2 "Ender 3 v2"
14
+exec_test $1 $2 "Ender 3 v2" "$3"
15
 
15
 
16
 restore_configs
16
 restore_configs

+ 1
- 1
buildroot/tests/STM32F103RE_btt-tests View File

15
 opt_set SERIAL_PORT_2 -1
15
 opt_set SERIAL_PORT_2 -1
16
 opt_set X_DRIVER_TYPE TMC2209
16
 opt_set X_DRIVER_TYPE TMC2209
17
 opt_set Y_DRIVER_TYPE TMC2130
17
 opt_set Y_DRIVER_TYPE TMC2130
18
-exec_test $1 $2 "BigTreeTech SKR E3 DIP v1.0 - Basic Config with mixed TMC Drivers"
18
+exec_test $1 $2 "BigTreeTech SKR E3 DIP v1.0 - Basic Config with mixed TMC Drivers" "$3"
19
 
19
 
20
 # clean up
20
 # clean up
21
 restore_configs
21
 restore_configs

+ 1
- 1
buildroot/tests/STM32F103RE_btt_USB-tests View File

13
 opt_set MOTHERBOARD BOARD_BTT_SKR_E3_DIP
13
 opt_set MOTHERBOARD BOARD_BTT_SKR_E3_DIP
14
 opt_set SERIAL_PORT 1
14
 opt_set SERIAL_PORT 1
15
 opt_set SERIAL_PORT_2 -1
15
 opt_set SERIAL_PORT_2 -1
16
-exec_test $1 $2 "BigTreeTech SKR E3 DIP v1.0 - Basic Configuration"
16
+exec_test $1 $2 "BigTreeTech SKR E3 DIP v1.0 - Basic Configuration" "$3"
17
 
17
 
18
 # clean up
18
 # clean up
19
 restore_configs
19
 restore_configs

+ 1
- 1
buildroot/tests/STM32F103VE_longer-tests View File

8
 
8
 
9
 use_example_configs Alfawise/U20
9
 use_example_configs Alfawise/U20
10
 opt_enable BAUD_RATE_GCODE
10
 opt_enable BAUD_RATE_GCODE
11
-exec_test $1 $2 "Full-featured U20 config"
11
+exec_test $1 $2 "Full-featured U20 config" "$3"
12
 
12
 
13
 # cleanup
13
 # cleanup
14
 restore_configs
14
 restore_configs

+ 1
- 1
buildroot/tests/STM32F4-tests View File

10
 # Build with the default configurations
10
 # Build with the default configurations
11
 #
11
 #
12
 use_example_configs STM32/STM32F4
12
 use_example_configs STM32/STM32F4
13
-exec_test $1 $2 "STM32F4 Default Configuration"
13
+exec_test $1 $2 "STM32F4 Default Configuration" "$3"
14
 
14
 
15
 # clean up
15
 # clean up
16
 restore_configs
16
 restore_configs

+ 1
- 1
buildroot/tests/STM32F401VE_STEVAL-tests View File

10
 restore_configs
10
 restore_configs
11
 opt_set MOTHERBOARD BOARD_STEVAL_3DP001V1
11
 opt_set MOTHERBOARD BOARD_STEVAL_3DP001V1
12
 opt_set SERIAL_PORT -1
12
 opt_set SERIAL_PORT -1
13
-exec_test $1 $2 "STM32F401VE_STEVAL Default Config"
13
+exec_test $1 $2 "STM32F401VE_STEVAL Default Config" "$3"
14
 
14
 
15
 # cleanup
15
 # cleanup
16
 restore_configs
16
 restore_configs

+ 1
- 1
buildroot/tests/STM32F407VE_black-tests View File

9
 restore_configs
9
 restore_configs
10
 use_example_configs STM32/Black_STM32F407VET6
10
 use_example_configs STM32/Black_STM32F407VET6
11
 opt_enable BAUD_RATE_GCODE
11
 opt_enable BAUD_RATE_GCODE
12
-exec_test $1 $2 "Full-featured Sample Black STM32F407VET6 config"
12
+exec_test $1 $2 "Full-featured Sample Black STM32F407VET6 config" "$3"
13
 
13
 
14
 # cleanup
14
 # cleanup
15
 restore_configs
15
 restore_configs

+ 1
- 1
buildroot/tests/STM32F7-tests View File

12
 restore_configs
12
 restore_configs
13
 opt_set MOTHERBOARD BOARD_REMRAM_V1
13
 opt_set MOTHERBOARD BOARD_REMRAM_V1
14
 opt_set SERIAL_PORT 1
14
 opt_set SERIAL_PORT 1
15
-exec_test $1 $2 "Default Configuration"
15
+exec_test $1 $2 "Default Configuration" "$3"
16
 
16
 
17
 # clean up
17
 # clean up
18
 restore_configs
18
 restore_configs

+ 1
- 1
buildroot/tests/at90usb1286_cdc-tests View File

11
 #
11
 #
12
 restore_configs
12
 restore_configs
13
 opt_set MOTHERBOARD BOARD_BRAINWAVE_PRO
13
 opt_set MOTHERBOARD BOARD_BRAINWAVE_PRO
14
-exec_test $1 $2 "Default Configuration"
14
+exec_test $1 $2 "Default Configuration" "$3"
15
 
15
 
16
 # clean up
16
 # clean up
17
 restore_configs
17
 restore_configs

+ 2
- 2
buildroot/tests/at90usb1286_dfu-tests View File

11
 #
11
 #
12
 restore_configs
12
 restore_configs
13
 opt_set MOTHERBOARD BOARD_PRINTRBOARD
13
 opt_set MOTHERBOARD BOARD_PRINTRBOARD
14
-exec_test $1 $2 "Printrboard Configuration"
14
+exec_test $1 $2 "Printrboard Configuration" "$3"
15
 
15
 
16
 restore_configs
16
 restore_configs
17
 opt_set MOTHERBOARD BOARD_PRINTRBOARD_REVF
17
 opt_set MOTHERBOARD BOARD_PRINTRBOARD_REVF
18
 opt_enable MINIPANEL
18
 opt_enable MINIPANEL
19
-exec_test $1 $2 "Printrboard RevF with MiniPanel and Stepper DAC (in pins file)"
19
+exec_test $1 $2 "Printrboard RevF with MiniPanel and Stepper DAC (in pins file)" "$3"
20
 
20
 
21
 # clean up
21
 # clean up
22
 restore_configs
22
 restore_configs

+ 2
- 2
buildroot/tests/esp32-tests View File

15
 opt_add WIFI_SSID "\"ssid\""
15
 opt_add WIFI_SSID "\"ssid\""
16
 opt_add WIFI_PWD "\"password\""
16
 opt_add WIFI_PWD "\"password\""
17
 opt_set TX_BUFFER_SIZE 64
17
 opt_set TX_BUFFER_SIZE 64
18
-exec_test $1 $2 "ESP32 with WIFISUPPORT and WEBSUPPORT"
18
+exec_test $1 $2 "ESP32 with WIFISUPPORT and WEBSUPPORT" "$3"
19
 
19
 
20
 #
20
 #
21
 # Build with TMC drivers using hardware serial
21
 # Build with TMC drivers using hardware serial
35
 opt_set Z_SLAVE_ADDRESS 2
35
 opt_set Z_SLAVE_ADDRESS 2
36
 opt_set E0_SLAVE_ADDRESS 3
36
 opt_set E0_SLAVE_ADDRESS 3
37
 opt_enable HOTEND_IDLE_TIMEOUT
37
 opt_enable HOTEND_IDLE_TIMEOUT
38
-exec_test $1 $2 "ESP32, TMC HW Serial, Hotend Idle"
38
+exec_test $1 $2 "ESP32, TMC HW Serial, Hotend Idle" "$3"
39
 
39
 
40
 # cleanup
40
 # cleanup
41
 restore_configs
41
 restore_configs

+ 1
- 1
buildroot/tests/jgaurora_a5s_a1-tests View File

10
 # Build with the default configurations
10
 # Build with the default configurations
11
 #
11
 #
12
 use_example_configs JGAurora/A5S
12
 use_example_configs JGAurora/A5S
13
-exec_test $1 $2 "JGAurora/A5S Configuration"
13
+exec_test $1 $2 "JGAurora/A5S Configuration" "$3"
14
 
14
 
15
 # clean up
15
 # clean up
16
 restore_configs
16
 restore_configs

+ 1
- 1
buildroot/tests/linux_native-tests View File

13
 opt_set MOTHERBOARD BOARD_LINUX_RAMPS
13
 opt_set MOTHERBOARD BOARD_LINUX_RAMPS
14
 opt_set TEMP_SENSOR_BED 1
14
 opt_set TEMP_SENSOR_BED 1
15
 opt_enable PIDTEMPBED EEPROM_SETTINGS BAUD_RATE_GCODE
15
 opt_enable PIDTEMPBED EEPROM_SETTINGS BAUD_RATE_GCODE
16
-exec_test $1 $2 "Linux with EEPROM"
16
+exec_test $1 $2 "Linux with EEPROM" "$3"
17
 
17
 
18
 # cleanup
18
 # cleanup
19
 restore_configs
19
 restore_configs

+ 1
- 1
buildroot/tests/malyan_M300-tests View File

10
 use_example_configs "delta/Malyan M300"
10
 use_example_configs "delta/Malyan M300"
11
 opt_disable AUTO_BED_LEVELING_3POINT
11
 opt_disable AUTO_BED_LEVELING_3POINT
12
 opt_set LCD_SERIAL_PORT 1
12
 opt_set LCD_SERIAL_PORT 1
13
-exec_test $1 $2 "Malyan M300 (delta)"
13
+exec_test $1 $2 "Malyan M300 (delta)" "$3"
14
 
14
 
15
 # cleanup
15
 # cleanup
16
 restore_configs
16
 restore_configs

+ 4
- 4
buildroot/tests/mega1280-tests View File

27
 opt_set POWER_MONITOR_VOLTAGE_PIN 15
27
 opt_set POWER_MONITOR_VOLTAGE_PIN 15
28
 opt_set CLOSED_LOOP_ENABLE_PIN 44
28
 opt_set CLOSED_LOOP_ENABLE_PIN 44
29
 opt_set CLOSED_LOOP_MOVE_COMPLETE_PIN 45
29
 opt_set CLOSED_LOOP_MOVE_COMPLETE_PIN 45
30
-exec_test $1 $2 "Spindle, MESH_BED_LEVELING, closed loop, Power Monitor, and LCD"
30
+exec_test $1 $2 "Spindle, MESH_BED_LEVELING, closed loop, Power Monitor, and LCD" "$3"
31
 
31
 
32
 #
32
 #
33
 # Test DUAL_X_CARRIAGE
33
 # Test DUAL_X_CARRIAGE
39
 opt_set TEMP_SENSOR_1 1
39
 opt_set TEMP_SENSOR_1 1
40
 opt_enable USE_XMAX_PLUG DUAL_X_CARRIAGE REPRAPWORLD_KEYPAD
40
 opt_enable USE_XMAX_PLUG DUAL_X_CARRIAGE REPRAPWORLD_KEYPAD
41
 opt_set REPRAPWORLD_KEYPAD_MOVE_STEP 10.0
41
 opt_set REPRAPWORLD_KEYPAD_MOVE_STEP 10.0
42
-exec_test $1 $2 "TT Oscar | DUAL_X_CARRIAGE"
42
+exec_test $1 $2 "TT Oscar | DUAL_X_CARRIAGE" "$3"
43
 
43
 
44
 #
44
 #
45
 # Delta Config (generic) + Probeless
45
 # Delta Config (generic) + Probeless
46
 #
46
 #
47
 use_example_configs delta/generic
47
 use_example_configs delta/generic
48
 opt_enable REPRAP_DISCOUNT_SMART_CONTROLLER DELTA_AUTO_CALIBRATION DELTA_CALIBRATION_MENU
48
 opt_enable REPRAP_DISCOUNT_SMART_CONTROLLER DELTA_AUTO_CALIBRATION DELTA_CALIBRATION_MENU
49
-exec_test $1 $2 "RAMPS | DELTA | RRD LCD | DELTA_AUTO_CALIBRATION | DELTA_CALIBRATION_MENU"
49
+exec_test $1 $2 "RAMPS | DELTA | RRD LCD | DELTA_AUTO_CALIBRATION | DELTA_CALIBRATION_MENU" "$3"
50
 
50
 
51
 #
51
 #
52
 # Delta Config (generic) + ABL bilinear + BLTOUCH
52
 # Delta Config (generic) + ABL bilinear + BLTOUCH
53
 use_example_configs delta/generic
53
 use_example_configs delta/generic
54
 opt_set LCD_LANGUAGE cz
54
 opt_set LCD_LANGUAGE cz
55
 opt_enable REPRAP_DISCOUNT_SMART_CONTROLLER DELTA_CALIBRATION_MENU AUTO_BED_LEVELING_BILINEAR BLTOUCH
55
 opt_enable REPRAP_DISCOUNT_SMART_CONTROLLER DELTA_CALIBRATION_MENU AUTO_BED_LEVELING_BILINEAR BLTOUCH
56
-exec_test $1 $2 "DELTA | RRD LCD | ABL Bilinear | BLTOUCH"
56
+exec_test $1 $2 "DELTA | RRD LCD | ABL Bilinear | BLTOUCH" "$3"
57
 
57
 
58
 # clean up
58
 # clean up
59
 restore_configs
59
 restore_configs

+ 10
- 10
buildroot/tests/mega2560-tests View File

32
            MULTI_NOZZLE_DUPLICATION CLASSIC_JERK LIN_ADVANCE EXTRA_LIN_ADVANCE_K QUICK_HOME \
32
            MULTI_NOZZLE_DUPLICATION CLASSIC_JERK LIN_ADVANCE EXTRA_LIN_ADVANCE_K QUICK_HOME \
33
            LCD_SET_PROGRESS_MANUALLY PRINT_PROGRESS_SHOW_DECIMALS SHOW_REMAINING_TIME \
33
            LCD_SET_PROGRESS_MANUALLY PRINT_PROGRESS_SHOW_DECIMALS SHOW_REMAINING_TIME \
34
            BABYSTEPPING BABYSTEP_XY NANODLP_Z_SYNC I2C_POSITION_ENCODERS M114_DETAIL
34
            BABYSTEPPING BABYSTEP_XY NANODLP_Z_SYNC I2C_POSITION_ENCODERS M114_DETAIL
35
-exec_test $1 $2 "Azteeg X3 Pro | EXTRUDERS 5 | RRDFGSC | UBL | LIN_ADVANCE ..."
35
+exec_test $1 $2 "Azteeg X3 Pro | EXTRUDERS 5 | RRDFGSC | UBL | LIN_ADVANCE ..." "$3"
36
 
36
 
37
 #
37
 #
38
 # Add a Sled Z Probe, use UBL Cartesian moves, use Japanese language
38
 # Add a Sled Z Probe, use UBL Cartesian moves, use Japanese language
58
 opt_set LCD_LANGUAGE jp_kana
58
 opt_set LCD_LANGUAGE jp_kana
59
 opt_disable SEGMENT_LEVELED_MOVES
59
 opt_disable SEGMENT_LEVELED_MOVES
60
 opt_enable BABYSTEPPING BABYSTEP_XY BABYSTEP_ZPROBE_OFFSET DOUBLECLICK_FOR_Z_BABYSTEPPING BABYSTEP_HOTEND_Z_OFFSET BABYSTEP_DISPLAY_TOTAL M114_DETAIL
60
 opt_enable BABYSTEPPING BABYSTEP_XY BABYSTEP_ZPROBE_OFFSET DOUBLECLICK_FOR_Z_BABYSTEPPING BABYSTEP_HOTEND_Z_OFFSET BABYSTEP_DISPLAY_TOTAL M114_DETAIL
61
-exec_test $1 $2 "Azteeg X3 Pro | EXTRUDERS 5 | RRDFGSC | UBL | LIN_ADVANCE | Sled Probe | Skew | JP-Kana | Babystep offsets ..."
61
+exec_test $1 $2 "Azteeg X3 Pro | EXTRUDERS 5 | RRDFGSC | UBL | LIN_ADVANCE | Sled Probe | Skew | JP-Kana | Babystep offsets ..." "$3"
62
 
62
 
63
 #
63
 #
64
 # Test a Servo Probe
64
 # Test a Servo Probe
73
            NO_VOLUMETRICS EXTENDED_CAPABILITIES_REPORT AUTO_REPORT_TEMPERATURES AUTOTEMP G38_PROBE_TARGET JOYSTICK \
73
            NO_VOLUMETRICS EXTENDED_CAPABILITIES_REPORT AUTO_REPORT_TEMPERATURES AUTOTEMP G38_PROBE_TARGET JOYSTICK \
74
            PRUSA_MMU2 MMU2_MENUS PRUSA_MMU2_S_MODE DIRECT_STEPPING DETECT_BROKEN_ENDSTOP \
74
            PRUSA_MMU2 MMU2_MENUS PRUSA_MMU2_S_MODE DIRECT_STEPPING DETECT_BROKEN_ENDSTOP \
75
            FILAMENT_RUNOUT_SENSOR NOZZLE_PARK_FEATURE ADVANCED_PAUSE_FEATURE Z_SAFE_HOMING
75
            FILAMENT_RUNOUT_SENSOR NOZZLE_PARK_FEATURE ADVANCED_PAUSE_FEATURE Z_SAFE_HOMING
76
-exec_test $1 $2 "RAMPS | ZONESTAR + Chinese | MMU2 | Servo | 3-Point + Debug | G38 ..."
76
+exec_test $1 $2 "RAMPS | ZONESTAR + Chinese | MMU2 | Servo | 3-Point + Debug | G38 ..." "$3"
77
 
77
 
78
 #
78
 #
79
 # 5 runout sensors with distinct states
79
 # 5 runout sensors with distinct states
110
 opt_add M100_FREE_MEMORY_CORRUPTOR
110
 opt_add M100_FREE_MEMORY_CORRUPTOR
111
 opt_set PWM_MOTOR_CURRENT "{ 1300, 1300, 1250 }"
111
 opt_set PWM_MOTOR_CURRENT "{ 1300, 1300, 1250 }"
112
 opt_set I2C_SLAVE_ADDRESS 63
112
 opt_set I2C_SLAVE_ADDRESS 63
113
-exec_test $1 $2 "MEGACONTROLLER | Minipanel | M100 | PWM_MOTOR_CURRENT | PRINTCOUNTER | Advanced Pause ..."
113
+exec_test $1 $2 "MEGACONTROLLER | Minipanel | M100 | PWM_MOTOR_CURRENT | PRINTCOUNTER | Advanced Pause ..." "$3"
114
 
114
 
115
 #
115
 #
116
 # Mixing Extruder with 5 steppers, Greek
116
 # Mixing Extruder with 5 steppers, Greek
122
            USE_CONTROLLER_FAN CONTROLLER_FAN_EDITABLE CONTROLLER_FAN_IGNORE_Z
122
            USE_CONTROLLER_FAN CONTROLLER_FAN_EDITABLE CONTROLLER_FAN_IGNORE_Z
123
 opt_set MIXING_STEPPERS 5
123
 opt_set MIXING_STEPPERS 5
124
 opt_set LCD_LANGUAGE ru
124
 opt_set LCD_LANGUAGE ru
125
-exec_test $1 $2 "Azteeg X3 | Mixing Extruder (x5) | Gradient Mix | Greek"
125
+exec_test $1 $2 "Azteeg X3 | Mixing Extruder (x5) | Gradient Mix | Greek" "$3"
126
 
126
 
127
 #
127
 #
128
 # Test SPEAKER with BOARD_BQ_ZUM_MEGA_3D and BQ_LCD_SMART_CONTROLLER
128
 # Test SPEAKER with BOARD_BQ_ZUM_MEGA_3D and BQ_LCD_SMART_CONTROLLER
163
 opt_set FAN_KICKSTART_TIME 100
163
 opt_set FAN_KICKSTART_TIME 100
164
 opt_set XY_FREQUENCY_LIMIT 15
164
 opt_set XY_FREQUENCY_LIMIT 15
165
 opt_add FILWIDTH_PIN 5
165
 opt_add FILWIDTH_PIN 5
166
-exec_test $1 $2 "Mightyboard Rev. E | CoreXY, Gradient Mix | Endstop Int. | Home Y > X | FW Retract ..."
166
+exec_test $1 $2 "Mightyboard Rev. E | CoreXY, Gradient Mix | Endstop Int. | Home Y > X | FW Retract ..." "$3"
167
 
167
 
168
 ######## Other Standard LCD/Panels ##############
168
 ######## Other Standard LCD/Panels ##############
169
 #
169
 #
286
 opt_add L6470_CHAIN_MOSI_PIN 40
286
 opt_add L6470_CHAIN_MOSI_PIN 40
287
 opt_add L6470_CHAIN_SS_PIN   42
287
 opt_add L6470_CHAIN_SS_PIN   42
288
 opt_add "ENABLE_RESET_L64XX_CHIPS(V) NOOP"
288
 opt_add "ENABLE_RESET_L64XX_CHIPS(V) NOOP"
289
-exec_test $1 $2 "DELTA, RAMPS, L6470, UBL, Allen Key, EEPROM, OLED_PANEL_TINYBOY2..."
289
+exec_test $1 $2 "DELTA, RAMPS, L6470, UBL, Allen Key, EEPROM, OLED_PANEL_TINYBOY2..." "$3"
290
 
290
 
291
 #
291
 #
292
 # Delta Config (FLSUN AC because it's complex)
292
 # Delta Config (FLSUN AC because it's complex)
293
 #
293
 #
294
 use_example_configs delta/FLSUN/auto_calibrate
294
 use_example_configs delta/FLSUN/auto_calibrate
295
-exec_test $1 $2 "RAMPS 1.3 | DELTA | FLSUN AC Config"
295
+exec_test $1 $2 "RAMPS 1.3 | DELTA | FLSUN AC Config" "$3"
296
 
296
 
297
 #
297
 #
298
 # Makibox Config  need to check board type for Teensy++ 2.0
298
 # Makibox Config  need to check board type for Teensy++ 2.0
315
            MARLIN_BRICKOUT MARLIN_INVADERS MARLIN_SNAKE \
315
            MARLIN_BRICKOUT MARLIN_INVADERS MARLIN_SNAKE \
316
            MONITOR_DRIVER_STATUS STEALTHCHOP_XY STEALTHCHOP_Z STEALTHCHOP_E HYBRID_THRESHOLD \
316
            MONITOR_DRIVER_STATUS STEALTHCHOP_XY STEALTHCHOP_Z STEALTHCHOP_E HYBRID_THRESHOLD \
317
            USE_ZMIN_PLUG SENSORLESS_HOMING TMC_DEBUG M114_DETAIL
317
            USE_ZMIN_PLUG SENSORLESS_HOMING TMC_DEBUG M114_DETAIL
318
-exec_test $1 $2 "RAMPS | Mixed TMC | Sensorless | RRDFGSC | Games"
318
+exec_test $1 $2 "RAMPS | Mixed TMC | Sensorless | RRDFGSC | Games" "$3"
319
 
319
 
320
 #
320
 #
321
 # SCARA with Mixed TMC
321
 # SCARA with Mixed TMC
330
 opt_set Y_DRIVER_TYPE TMC2130
330
 opt_set Y_DRIVER_TYPE TMC2130
331
 opt_set Z_DRIVER_TYPE TMC2130_STANDALONE
331
 opt_set Z_DRIVER_TYPE TMC2130_STANDALONE
332
 opt_set E0_DRIVER_TYPE TMC2660
332
 opt_set E0_DRIVER_TYPE TMC2660
333
-exec_test $1 $2 "RAMPS | SCARA | Mixed TMC | EEPROM"
333
+exec_test $1 $2 "RAMPS | SCARA | Mixed TMC | EEPROM" "$3"
334
 
334
 
335
 #
335
 #
336
 # tvrrug Config need to check board type for sanguino atmega644p
336
 # tvrrug Config need to check board type for sanguino atmega644p

+ 1
- 1
buildroot/tests/mks_robin-tests View File

8
 set -e
8
 set -e
9
 
9
 
10
 use_example_configs Mks/Robin
10
 use_example_configs Mks/Robin
11
-exec_test $1 $2 "MKS Robin config (FSMC Color UI)"
11
+exec_test $1 $2 "MKS Robin config (FSMC Color UI)" "$3"
12
 
12
 
13
 # cleanup
13
 # cleanup
14
 restore_configs
14
 restore_configs

+ 1
- 1
buildroot/tests/mks_robin_lite-tests View File

11
 opt_set SERIAL_PORT 1
11
 opt_set SERIAL_PORT 1
12
 opt_enable EEPROM_SETTINGS
12
 opt_enable EEPROM_SETTINGS
13
 opt_enable SDSUPPORT
13
 opt_enable SDSUPPORT
14
-exec_test $1 $2 "Default Configuration with Fallback SD EEPROM"
14
+exec_test $1 $2 "Default Configuration with Fallback SD EEPROM" "$3"
15
 
15
 
16
 # cleanup
16
 # cleanup
17
 restore_configs
17
 restore_configs

+ 1
- 1
buildroot/tests/mks_robin_mini-tests View File

11
 opt_set MOTHERBOARD BOARD_MKS_ROBIN_MINI
11
 opt_set MOTHERBOARD BOARD_MKS_ROBIN_MINI
12
 opt_set EXTRUDERS 1
12
 opt_set EXTRUDERS 1
13
 opt_set TEMP_SENSOR_1 0
13
 opt_set TEMP_SENSOR_1 0
14
-exec_test $1 $2 "MKS Robin mini"
14
+exec_test $1 $2 "MKS Robin mini" "$3"
15
 
15
 
16
 # cleanup
16
 # cleanup
17
 restore_configs
17
 restore_configs

+ 6
- 6
buildroot/tests/mks_robin_nano35-tests View File

12
 #
12
 #
13
 use_example_configs Mks/Robin
13
 use_example_configs Mks/Robin
14
 opt_set MOTHERBOARD BOARD_MKS_ROBIN_NANO
14
 opt_set MOTHERBOARD BOARD_MKS_ROBIN_NANO
15
-exec_test $1 $2 "MKS Robin nano v1.2 Emulated DOGM FSMC"
15
+exec_test $1 $2 "MKS Robin nano v1.2 Emulated DOGM FSMC" "$3"
16
 
16
 
17
 #
17
 #
18
 # MKS Robin v2 nano Emulated DOGM SPI
18
 # MKS Robin v2 nano Emulated DOGM SPI
22
 opt_set MOTHERBOARD BOARD_MKS_ROBIN_NANO_V2
22
 opt_set MOTHERBOARD BOARD_MKS_ROBIN_NANO_V2
23
 opt_disable TFT_INTERFACE_FSMC
23
 opt_disable TFT_INTERFACE_FSMC
24
 opt_enable TFT_INTERFACE_SPI
24
 opt_enable TFT_INTERFACE_SPI
25
-exec_test $1 $2 "MKS Robin v2 nano Emulated DOGM SPI"
25
+exec_test $1 $2 "MKS Robin v2 nano Emulated DOGM SPI" "$3"
26
 
26
 
27
 #
27
 #
28
 # MKS Robin nano v1.2 LVGL FSMC
28
 # MKS Robin nano v1.2 LVGL FSMC
31
 opt_set MOTHERBOARD BOARD_MKS_ROBIN_NANO
31
 opt_set MOTHERBOARD BOARD_MKS_ROBIN_NANO
32
 opt_disable TFT_CLASSIC_UI TFT_COLOR_UI TOUCH_SCREEN TFT_RES_320x240
32
 opt_disable TFT_CLASSIC_UI TFT_COLOR_UI TOUCH_SCREEN TFT_RES_320x240
33
 opt_enable TFT_LVGL_UI TFT_RES_480x320
33
 opt_enable TFT_LVGL_UI TFT_RES_480x320
34
-exec_test $1 $2 "MKS Robin nano v1.2 LVGL FSMC"
34
+exec_test $1 $2 "MKS Robin nano v1.2 LVGL FSMC" "$3"
35
 
35
 
36
 #
36
 #
37
 # MKS Robin v2 nano LVGL SPI
37
 # MKS Robin v2 nano LVGL SPI
41
 opt_set MOTHERBOARD BOARD_MKS_ROBIN_NANO_V2
41
 opt_set MOTHERBOARD BOARD_MKS_ROBIN_NANO_V2
42
 opt_disable TFT_INTERFACE_FSMC TFT_COLOR_UI TOUCH_SCREEN TFT_RES_320x240
42
 opt_disable TFT_INTERFACE_FSMC TFT_COLOR_UI TOUCH_SCREEN TFT_RES_320x240
43
 opt_enable TFT_INTERFACE_SPI TFT_LVGL_UI TFT_RES_480x320
43
 opt_enable TFT_INTERFACE_SPI TFT_LVGL_UI TFT_RES_480x320
44
-exec_test $1 $2 "MKS Robin v2 nano LVGL SPI"
44
+exec_test $1 $2 "MKS Robin v2 nano LVGL SPI" "$3"
45
 
45
 
46
 #
46
 #
47
 # MKS Robin v2 nano New Color UI 480x320 SPI
47
 # MKS Robin v2 nano New Color UI 480x320 SPI
51
 opt_set MOTHERBOARD BOARD_MKS_ROBIN_NANO_V2
51
 opt_set MOTHERBOARD BOARD_MKS_ROBIN_NANO_V2
52
 opt_disable TFT_INTERFACE_FSMC TFT_RES_320x240
52
 opt_disable TFT_INTERFACE_FSMC TFT_RES_320x240
53
 opt_enable TFT_INTERFACE_SPI TFT_RES_480x320
53
 opt_enable TFT_INTERFACE_SPI TFT_RES_480x320
54
-exec_test $1 $2 "MKS Robin v2 nano New Color UI 480x320 SPI"
54
+exec_test $1 $2 "MKS Robin v2 nano New Color UI 480x320 SPI" "$3"
55
 
55
 
56
 #
56
 #
57
 # MKS Robin v2 nano LVGL SPI + TMC
57
 # MKS Robin v2 nano LVGL SPI + TMC
63
 opt_enable TFT_INTERFACE_SPI TFT_LVGL_UI TFT_RES_480x320
63
 opt_enable TFT_INTERFACE_SPI TFT_LVGL_UI TFT_RES_480x320
64
 opt_set X_DRIVER_TYPE TMC2209
64
 opt_set X_DRIVER_TYPE TMC2209
65
 opt_set Y_DRIVER_TYPE TMC2209
65
 opt_set Y_DRIVER_TYPE TMC2209
66
-exec_test $1 $2 "MKS Robin v2 nano LVGL SPI + TMC"
66
+exec_test $1 $2 "MKS Robin v2 nano LVGL SPI + TMC" "$3"
67
 
67
 
68
 # cleanup
68
 # cleanup
69
 restore_configs
69
 restore_configs

+ 1
- 1
buildroot/tests/mks_robin_pro-tests View File

15
 opt_set Y_DRIVER_TYPE TMC2130
15
 opt_set Y_DRIVER_TYPE TMC2130
16
 opt_set TEMP_SENSOR_BED 1
16
 opt_set TEMP_SENSOR_BED 1
17
 opt_disable THERMAL_PROTECTION_HOTENDS
17
 opt_disable THERMAL_PROTECTION_HOTENDS
18
-exec_test $1 $2 "MKS Robin Pro, TMC Drivers, no thermal protection"
18
+exec_test $1 $2 "MKS Robin Pro, TMC Drivers, no thermal protection" "$3"
19
 
19
 
20
 # cleanup
20
 # cleanup
21
 restore_configs
21
 restore_configs

+ 1
- 1
buildroot/tests/mks_robin_stm32-tests View File

7
 set -e
7
 set -e
8
 
8
 
9
 use_example_configs Mks/Robin
9
 use_example_configs Mks/Robin
10
-exec_test $1 $2 "MKS Robin base configuration"
10
+exec_test $1 $2 "MKS Robin base configuration" "$3"
11
 
11
 
12
 # cleanup
12
 # cleanup
13
 restore_configs
13
 restore_configs

+ 3
- 3
buildroot/tests/rambo-tests View File

42
            SLOW_PWM_HEATERS THERMAL_PROTECTION_CHAMBER LIN_ADVANCE EXTRA_LIN_ADVANCE_K \
42
            SLOW_PWM_HEATERS THERMAL_PROTECTION_CHAMBER LIN_ADVANCE EXTRA_LIN_ADVANCE_K \
43
            HOST_ACTION_COMMANDS HOST_PROMPT_SUPPORT PINS_DEBUGGING MAX7219_DEBUG M114_DETAIL
43
            HOST_ACTION_COMMANDS HOST_PROMPT_SUPPORT PINS_DEBUGGING MAX7219_DEBUG M114_DETAIL
44
 opt_add DEBUG_POWER_LOSS_RECOVERY
44
 opt_add DEBUG_POWER_LOSS_RECOVERY
45
-exec_test $1 $2 "RAMBO | EXTRUDERS 2 | CHAR LCD + SD | FIX Probe | ABL-Linear | Advanced Pause | PLR | LEDs ..."
45
+exec_test $1 $2 "RAMBO | EXTRUDERS 2 | CHAR LCD + SD | FIX Probe | ABL-Linear | Advanced Pause | PLR | LEDs ..." "$3"
46
 
46
 
47
 #
47
 #
48
 # Full size Rambo Dual Endstop CNC
48
 # Full size Rambo Dual Endstop CNC
58
            S_CURVE_ACCELERATION X_DUAL_STEPPER_DRIVERS X_DUAL_ENDSTOPS Y_DUAL_STEPPER_DRIVERS Y_DUAL_ENDSTOPS \
58
            S_CURVE_ACCELERATION X_DUAL_STEPPER_DRIVERS X_DUAL_ENDSTOPS Y_DUAL_STEPPER_DRIVERS Y_DUAL_ENDSTOPS \
59
            ADAPTIVE_STEP_SMOOTHING CNC_COORDINATE_SYSTEMS GCODE_MOTION_MODES
59
            ADAPTIVE_STEP_SMOOTHING CNC_COORDINATE_SYSTEMS GCODE_MOTION_MODES
60
 opt_disable MIN_SOFTWARE_ENDSTOP_Z MAX_SOFTWARE_ENDSTOPS
60
 opt_disable MIN_SOFTWARE_ENDSTOP_Z MAX_SOFTWARE_ENDSTOPS
61
-exec_test $1 $2 "Rambo CNC Configuration"
61
+exec_test $1 $2 "Rambo CNC Configuration" "$3"
62
 
62
 
63
 #
63
 #
64
 # Rambo heated bed only
64
 # Rambo heated bed only
79
 opt_set Y_DRIVER_TYPE TMC2130
79
 opt_set Y_DRIVER_TYPE TMC2130
80
 opt_set Z_DRIVER_TYPE TMC2130
80
 opt_set Z_DRIVER_TYPE TMC2130
81
 opt_set E0_DRIVER_TYPE TMC2130
81
 opt_set E0_DRIVER_TYPE TMC2130
82
-exec_test $1 $2 "Einsy RAMBo with TMC2130"
82
+exec_test $1 $2 "Einsy RAMBo with TMC2130" "$3"
83
 
83
 
84
 # clean up
84
 # clean up
85
 restore_configs
85
 restore_configs

+ 3
- 3
buildroot/tests/rumba32-tests View File

15
 opt_set TEMP_SENSOR_BED 1
15
 opt_set TEMP_SENSOR_BED 1
16
 opt_disable THERMAL_PROTECTION_BED
16
 opt_disable THERMAL_PROTECTION_BED
17
 opt_set X_DRIVER_TYPE TMC2130
17
 opt_set X_DRIVER_TYPE TMC2130
18
-exec_test $1 $2 "RUMBA32 V1.0 with TMC2130, PID Bed, and bed thermal protection disabled"
18
+exec_test $1 $2 "RUMBA32 V1.0 with TMC2130, PID Bed, and bed thermal protection disabled" "$3"
19
 
19
 
20
 # Build examples
20
 # Build examples
21
 restore_configs
21
 restore_configs
25
 opt_set TEMP_SENSOR_BED 1
25
 opt_set TEMP_SENSOR_BED 1
26
 opt_set X_DRIVER_TYPE TMC2130
26
 opt_set X_DRIVER_TYPE TMC2130
27
 opt_set Y_DRIVER_TYPE TMC2208
27
 opt_set Y_DRIVER_TYPE TMC2208
28
-exec_test $1 $2 "RUMBA32 V1.1 with TMC2130, TMC2208, PID Bed, EEPROM settings, and graphic LCD controller"
28
+exec_test $1 $2 "RUMBA32 V1.1 with TMC2130, TMC2208, PID Bed, EEPROM settings, and graphic LCD controller" "$3"
29
 
29
 
30
 # Build examples
30
 # Build examples
31
 restore_configs
31
 restore_configs
33
 opt_set SERIAL_PORT -1
33
 opt_set SERIAL_PORT -1
34
 opt_set X_DRIVER_TYPE TMC2130
34
 opt_set X_DRIVER_TYPE TMC2130
35
 opt_set Y_DRIVER_TYPE TMC2208
35
 opt_set Y_DRIVER_TYPE TMC2208
36
-exec_test $1 $2 "RUMBA32 MKS Default Config with Mixed TMC Drivers"
36
+exec_test $1 $2 "RUMBA32 MKS Default Config with Mixed TMC Drivers" "$3"
37
 
37
 
38
 # cleanup
38
 # cleanup
39
 restore_configs
39
 restore_configs

+ 42
- 6
buildroot/tests/run_tests View File

10
 
10
 
11
 exec_test () {
11
 exec_test () {
12
   printf "\n\033[0;32m[Test $2] \033[0m$3...\n"
12
   printf "\n\033[0;32m[Test $2] \033[0m$3...\n"
13
-  if platformio run --project-dir $1 -e $2 --silent; then
13
+  # Check to see if we should skip tests
14
+  if [[ -n "$4" ]] ; then
15
+    if [[ ! "$3" =~ $4 ]] ; then
16
+      printf "\033[1;33mSkipped\033[0m\n"
17
+      return 0
18
+    fi
19
+  fi
20
+  if [[ -z "$VERBOSE_PLATFORMIO" ]] ; then
21
+    silent="--silent"
22
+  else
23
+    silent=""
24
+  fi
25
+  if platformio run --project-dir $1 -e $2 $silent; then
14
     printf "\033[0;32mPassed\033[0m\n"
26
     printf "\033[0;32mPassed\033[0m\n"
15
     return 0
27
     return 0
16
   else
28
   else
17
-    git reset --hard HEAD
29
+    if [[ -n $GIT_RESET_HARD ]]; then
30
+      git reset --hard HEAD
31
+    else
32
+      restore_configs
33
+    fi
18
     printf "\033[0;31mFailed!\033[0m\n"
34
     printf "\033[0;31mFailed!\033[0m\n"
19
     return 1
35
     return 1
20
   fi
36
   fi
30
     testenv=$(basename $f | cut -d"-" -f1)
46
     testenv=$(basename $f | cut -d"-" -f1)
31
     printf "Running \033[0;32m$f\033[0m Tests\n"
47
     printf "Running \033[0;32m$f\033[0m Tests\n"
32
     exec_test $1 "$testenv --target clean" "Setup Build Environment"
48
     exec_test $1 "$testenv --target clean" "Setup Build Environment"
33
-    $f $1 $testenv
34
-    git reset --hard HEAD
49
+    if [[ $GIT_RESET_HARD == "true" ]]; then
50
+      git reset --hard HEAD
51
+    else
52
+      restore_configs
53
+    fi
35
   done
54
   done
36
 else
55
 else
37
   exec_test $1 "$2 --target clean" "Setup Build Environment"
56
   exec_test $1 "$2 --target clean" "Setup Build Environment"
38
-  $2-tests $1 $2
39
-  git reset --hard HEAD
57
+  test_name="$3"
58
+  # If the test name is 1 or 2 digits, treat it as an index
59
+  if [[ "$test_name" =~ ^[0-9][0-9]?$ ]] ; then
60
+    # Find the test name that corresponds to that index
61
+    test_name="$(cat buildroot/tests/$2-tests | grep -e '^exec_test' | sed -n "$3p" | sed "s/.*\$1 \$2 \"\([^\"]*\).*/\1/g")"
62
+    if [[ -z "$test_name" ]] ; then
63
+      # Fail if none matches
64
+      printf "\033[0;31mCould not find test \033[0m#$3\033[0;31m in \033[0mbuildroot/tests/$2-tests\n"
65
+      exit 1
66
+    else
67
+      printf "\033[0;32mMatching test \033[0m#$3\033[0;32m: '\033[0m$test_name\033[0;32m'\n"
68
+    fi
69
+  fi
70
+  $2-tests $1 $2 "$test_name"
71
+  if [[ $GIT_RESET_HARD == "true" ]]; then
72
+    git reset --hard HEAD
73
+  else
74
+    restore_configs
75
+  fi
40
 fi
76
 fi
41
 printf "\033[0;32mAll tests completed successfully\033[0m\n"
77
 printf "\033[0;32mAll tests completed successfully\033[0m\n"

+ 1
- 1
buildroot/tests/sanguino1284p-tests View File

11
 #
11
 #
12
 restore_configs
12
 restore_configs
13
 opt_set MOTHERBOARD BOARD_SANGUINOLOLU_12
13
 opt_set MOTHERBOARD BOARD_SANGUINOLOLU_12
14
-exec_test $1 $2 "Default Configuration"
14
+exec_test $1 $2 "Default Configuration" "$3"
15
 
15
 
16
 # clean up
16
 # clean up
17
 restore_configs
17
 restore_configs

+ 1
- 1
buildroot/tests/sanguino644p-tests View File

11
 #
11
 #
12
 restore_configs
12
 restore_configs
13
 opt_set MOTHERBOARD BOARD_SANGUINOLOLU_12
13
 opt_set MOTHERBOARD BOARD_SANGUINOLOLU_12
14
-exec_test $1 $2 "Default Configuration"
14
+exec_test $1 $2 "Default Configuration" "$3"
15
 
15
 
16
 # clean up
16
 # clean up
17
 restore_configs
17
 restore_configs

+ 2
- 2
buildroot/tests/teensy31-tests View File

8
 
8
 
9
 restore_configs
9
 restore_configs
10
 opt_set MOTHERBOARD BOARD_TEENSY31_32
10
 opt_set MOTHERBOARD BOARD_TEENSY31_32
11
-exec_test $1 $2 "Teensy3.1 with default config"
11
+exec_test $1 $2 "Teensy3.1 with default config" "$3"
12
 
12
 
13
 #
13
 #
14
 # Test many features together
14
 # Test many features together
27
            HOST_ACTION_COMMANDS HOST_PROMPT_SUPPORT
27
            HOST_ACTION_COMMANDS HOST_PROMPT_SUPPORT
28
 opt_set I2C_SLAVE_ADDRESS 63
28
 opt_set I2C_SLAVE_ADDRESS 63
29
 opt_set GRID_MAX_POINTS_X 16
29
 opt_set GRID_MAX_POINTS_X 16
30
-exec_test $1 $2 "Teensy3.1 with many features"
30
+exec_test $1 $2 "Teensy3.1 with many features" "$3"

+ 8
- 8
buildroot/tests/teensy35-tests View File

8
 
8
 
9
 restore_configs
9
 restore_configs
10
 opt_set MOTHERBOARD BOARD_TEENSY35_36
10
 opt_set MOTHERBOARD BOARD_TEENSY35_36
11
-exec_test $1 $2 "Teensy3.5 with default config"
11
+exec_test $1 $2 "Teensy3.5 with default config" "$3"
12
 
12
 
13
 #
13
 #
14
 # Test as many features together as possible
14
 # Test as many features together as possible
29
            HOST_ACTION_COMMANDS HOST_PROMPT_SUPPORT
29
            HOST_ACTION_COMMANDS HOST_PROMPT_SUPPORT
30
 opt_set I2C_SLAVE_ADDRESS 63
30
 opt_set I2C_SLAVE_ADDRESS 63
31
 opt_set GRID_MAX_POINTS_X 16
31
 opt_set GRID_MAX_POINTS_X 16
32
-exec_test $1 $2 "Teensy3.5 with many features"
32
+exec_test $1 $2 "Teensy3.5 with many features" "$3"
33
 
33
 
34
 #
34
 #
35
 # Test a Sled Z Probe with Linear leveling
35
 # Test a Sled Z Probe with Linear leveling
37
 restore_configs
37
 restore_configs
38
 opt_set MOTHERBOARD BOARD_TEENSY35_36
38
 opt_set MOTHERBOARD BOARD_TEENSY35_36
39
 opt_enable EEPROM_SETTINGS Z_PROBE_SLED Z_SAFE_HOMING AUTO_BED_LEVELING_LINEAR DEBUG_LEVELING_FEATURE GCODE_MACROS
39
 opt_enable EEPROM_SETTINGS Z_PROBE_SLED Z_SAFE_HOMING AUTO_BED_LEVELING_LINEAR DEBUG_LEVELING_FEATURE GCODE_MACROS
40
-exec_test $1 $2 "Sled Z Probe with Linear leveling"
40
+exec_test $1 $2 "Sled Z Probe with Linear leveling" "$3"
41
 
41
 
42
 #
42
 #
43
 # Test a Servo Probe
43
 # Test a Servo Probe
63
 opt_set EXTRUDERS 2
63
 opt_set EXTRUDERS 2
64
 opt_set TEMP_SENSOR_1 1
64
 opt_set TEMP_SENSOR_1 1
65
 opt_enable MAGNETIC_PARKING_EXTRUDER ULTIMAKERCONTROLLER
65
 opt_enable MAGNETIC_PARKING_EXTRUDER ULTIMAKERCONTROLLER
66
-exec_test $1 $2 "MAGNETIC_PARKING_EXTRUDER with LCD"
66
+exec_test $1 $2 "MAGNETIC_PARKING_EXTRUDER with LCD" "$3"
67
 
67
 
68
 #
68
 #
69
 # Mixing Extruder
69
 # Mixing Extruder
72
 opt_set MOTHERBOARD BOARD_TEENSY35_36
72
 opt_set MOTHERBOARD BOARD_TEENSY35_36
73
 opt_enable MIXING_EXTRUDER DIRECT_MIXING_IN_G1 GRADIENT_MIX GRADIENT_VTOOL REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
73
 opt_enable MIXING_EXTRUDER DIRECT_MIXING_IN_G1 GRADIENT_MIX GRADIENT_VTOOL REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
74
 opt_set MIXING_STEPPERS 2
74
 opt_set MIXING_STEPPERS 2
75
-exec_test $1 $2 "Mixing Extruder"
75
+exec_test $1 $2 "Mixing Extruder" "$3"
76
 
76
 
77
 #
77
 #
78
 # Test SWITCHING_EXTRUDER
78
 # Test SWITCHING_EXTRUDER
97
 opt_add X_CS_PIN 46
97
 opt_add X_CS_PIN 46
98
 opt_add Y_CS_PIN 47
98
 opt_add Y_CS_PIN 47
99
 opt_enable USE_ZMIN_PLUG MONITOR_DRIVER_STATUS SENSORLESS_HOMING
99
 opt_enable USE_ZMIN_PLUG MONITOR_DRIVER_STATUS SENSORLESS_HOMING
100
-exec_test $1 $2 "Teensy 3.5/3.6 COREXY"
100
+exec_test $1 $2 "Teensy 3.5/3.6 COREXY" "$3"
101
 
101
 
102
 #
102
 #
103
 # Enable COREXZ
103
 # Enable COREXZ
105
 restore_configs
105
 restore_configs
106
 opt_set MOTHERBOARD BOARD_TEENSY35_36
106
 opt_set MOTHERBOARD BOARD_TEENSY35_36
107
 opt_enable COREXZ
107
 opt_enable COREXZ
108
-exec_test $1 $2 "Teensy 3.5/3.6 COREXZ"
108
+exec_test $1 $2 "Teensy 3.5/3.6 COREXZ" "$3"
109
 
109
 
110
 #
110
 #
111
 # Enable Dual Z with Dual Z endstops
111
 # Enable Dual Z with Dual Z endstops
116
 opt_enable Z_MULTI_ENDSTOPS USE_XMAX_PLUG
116
 opt_enable Z_MULTI_ENDSTOPS USE_XMAX_PLUG
117
 pins_set ramps/RAMPS X_MAX_PIN -1
117
 pins_set ramps/RAMPS X_MAX_PIN -1
118
 opt_add Z2_MAX_PIN 2
118
 opt_add Z2_MAX_PIN 2
119
-exec_test $1 $2 "Dual Z with Dual Z endstops"
119
+exec_test $1 $2 "Dual Z with Dual Z endstops" "$3"
120
 
120
 
121
 # Clean up
121
 # Clean up
122
 restore_configs
122
 restore_configs

+ 8
- 8
buildroot/tests/teensy41-tests View File

8
 
8
 
9
 restore_configs
9
 restore_configs
10
 opt_set MOTHERBOARD BOARD_TEENSY41
10
 opt_set MOTHERBOARD BOARD_TEENSY41
11
-exec_test $1 $2 "Teensy4.1 with default config"
11
+exec_test $1 $2 "Teensy4.1 with default config" "$3"
12
 
12
 
13
 #
13
 #
14
 # Test as many features together as possible
14
 # Test as many features together as possible
30
 opt_add EXTUI_EXAMPLE
30
 opt_add EXTUI_EXAMPLE
31
 opt_set I2C_SLAVE_ADDRESS 63
31
 opt_set I2C_SLAVE_ADDRESS 63
32
 opt_set GRID_MAX_POINTS_X 16
32
 opt_set GRID_MAX_POINTS_X 16
33
-exec_test $1 $2 "Teensy4.1 with many features"
33
+exec_test $1 $2 "Teensy4.1 with many features" "$3"
34
 
34
 
35
 #
35
 #
36
 # Test a Sled Z Probe with Linear leveling
36
 # Test a Sled Z Probe with Linear leveling
38
 restore_configs
38
 restore_configs
39
 opt_set MOTHERBOARD BOARD_TEENSY41
39
 opt_set MOTHERBOARD BOARD_TEENSY41
40
 opt_enable EEPROM_SETTINGS Z_PROBE_SLED Z_SAFE_HOMING AUTO_BED_LEVELING_LINEAR DEBUG_LEVELING_FEATURE GCODE_MACROS
40
 opt_enable EEPROM_SETTINGS Z_PROBE_SLED Z_SAFE_HOMING AUTO_BED_LEVELING_LINEAR DEBUG_LEVELING_FEATURE GCODE_MACROS
41
-exec_test $1 $2 "Sled Z Probe with Linear leveling"
41
+exec_test $1 $2 "Sled Z Probe with Linear leveling" "$3"
42
 
42
 
43
 #
43
 #
44
 # Test a Servo Probe
44
 # Test a Servo Probe
65
 opt_set TEMP_SENSOR_1 1
65
 opt_set TEMP_SENSOR_1 1
66
 opt_set SERIAL_PORT_2 -2
66
 opt_set SERIAL_PORT_2 -2
67
 opt_enable EEPROM_SETTINGS MAGNETIC_PARKING_EXTRUDER
67
 opt_enable EEPROM_SETTINGS MAGNETIC_PARKING_EXTRUDER
68
-exec_test $1 $2 "Ethernet, EEPROM, Magnetic Parking Extruder, No LCD"
68
+exec_test $1 $2 "Ethernet, EEPROM, Magnetic Parking Extruder, No LCD" "$3"
69
 
69
 
70
 #
70
 #
71
 # Mixing Extruder
71
 # Mixing Extruder
74
 opt_set MOTHERBOARD BOARD_TEENSY41
74
 opt_set MOTHERBOARD BOARD_TEENSY41
75
 opt_enable MIXING_EXTRUDER DIRECT_MIXING_IN_G1 GRADIENT_MIX GRADIENT_VTOOL
75
 opt_enable MIXING_EXTRUDER DIRECT_MIXING_IN_G1 GRADIENT_MIX GRADIENT_VTOOL
76
 opt_set MIXING_STEPPERS 2
76
 opt_set MIXING_STEPPERS 2
77
-exec_test $1 $2 "Mixing Extruder"
77
+exec_test $1 $2 "Mixing Extruder" "$3"
78
 
78
 
79
 #
79
 #
80
 # Test SWITCHING_EXTRUDER
80
 # Test SWITCHING_EXTRUDER
99
 opt_add X_CS_PIN 46
99
 opt_add X_CS_PIN 46
100
 opt_add Y_CS_PIN 47
100
 opt_add Y_CS_PIN 47
101
 opt_enable USE_ZMIN_PLUG MONITOR_DRIVER_STATUS SENSORLESS_HOMING
101
 opt_enable USE_ZMIN_PLUG MONITOR_DRIVER_STATUS SENSORLESS_HOMING
102
-exec_test $1 $2 "Teensy 4.0/4.1 COREXY"
102
+exec_test $1 $2 "Teensy 4.0/4.1 COREXY" "$3"
103
 
103
 
104
 #
104
 #
105
 # Enable COREXZ
105
 # Enable COREXZ
107
 restore_configs
107
 restore_configs
108
 opt_set MOTHERBOARD BOARD_TEENSY41
108
 opt_set MOTHERBOARD BOARD_TEENSY41
109
 opt_enable COREXZ
109
 opt_enable COREXZ
110
-exec_test $1 $2 "Teensy 4.0/4.1 COREXZ"
110
+exec_test $1 $2 "Teensy 4.0/4.1 COREXZ" "$3"
111
 
111
 
112
 #
112
 #
113
 # Enable Dual Z with Dual Z endstops
113
 # Enable Dual Z with Dual Z endstops
118
 opt_set NUM_Z_STEPPER_DRIVERS 2
118
 opt_set NUM_Z_STEPPER_DRIVERS 2
119
 pins_set ramps/RAMPS X_MAX_PIN -1
119
 pins_set ramps/RAMPS X_MAX_PIN -1
120
 opt_add Z2_MAX_PIN 2
120
 opt_add Z2_MAX_PIN 2
121
-exec_test $1 $2 "Dual Z with Dual Z endstops"
121
+exec_test $1 $2 "Dual Z with Dual Z endstops" "$3"
122
 
122
 
123
 # Clean up
123
 # Clean up
124
 restore_configs
124
 restore_configs

+ 19
- 0
docker-compose.yml View File

1
+version: "3.8"
2
+services:
3
+  # The main image: this doesn't run any particular command, but is mainly used
4
+  # for running tests locally
5
+  marlin:
6
+    image: marlin-dev
7
+    build:
8
+      dockerfile: Dockerfile
9
+      context: docker
10
+    working_dir: /code
11
+    volumes:
12
+    - .:/code
13
+    - platformio-cache:/root/.platformio
14
+
15
+volumes:
16
+  # This volume holds installed libraries for PlatformIO. If this is deleted you
17
+  # will have to download all the dependencies again, which can be a very slow
18
+  # process
19
+  platformio-cache:

+ 7
- 0
docker/Dockerfile View File

1
+FROM python:3.9.0-buster
2
+
3
+RUN pip install -U https://github.com/platformio/platformio-core/archive/develop.zip
4
+RUN platformio update
5
+# To get the test platforms
6
+RUN pip install PyYaml
7
+#ENV PATH /code/buildroot/bin/:/code/buildroot/tests/:${PATH}

+ 12
- 0
get_test_targets.py View File

1
+#!/usr/bin/env python
2
+"""
3
+Extract the builds used in Github CI, so that we can run them locally
4
+"""
5
+import yaml
6
+
7
+
8
+with open('.github/workflows/test-builds.yml') as f:
9
+	github_configuration = yaml.safe_load(f)
10
+test_platforms = github_configuration\
11
+	['jobs']['test_builds']['strategy']['matrix']['test-platform']
12
+print(' '.join(test_platforms))

Loading…
Cancel
Save