|
| 1 | +#!/bin/bash |
| 2 | + |
| 3 | +target=$1 |
| 4 | +chunk_idex=$2 |
| 5 | +chunks_num=$3 |
| 6 | + |
| 7 | +SCRIPTS_DIR="./.github/scripts" |
| 8 | +COUNT_SKETCHES="${SCRIPTS_DIR}/sketch_utils.sh count" |
| 9 | + |
| 10 | +source ${SCRIPTS_DIR}/install-arduino-ide.sh |
| 11 | + |
| 12 | +if [ "$chunks_num" -le 0 ]; then |
| 13 | + echo "ERROR: Chunks count must be positive number" |
| 14 | + return 1 |
| 15 | +fi |
| 16 | +if [ "$chunk_idex" -ge "$chunks_num" ] && [ "$chunks_num" -ge 2 ]; then |
| 17 | + echo "ERROR: Chunk index must be less than chunks count" |
| 18 | + return 1 |
| 19 | +fi |
| 20 | + |
| 21 | +set +e |
| 22 | +${COUNT_SKETCHES} $PWD/tests $target |
| 23 | +sketchcount=$? |
| 24 | +set -e |
| 25 | +sketches=$(cat sketches.txt) |
| 26 | +rm -rf sketches.txt |
| 27 | + |
| 28 | +chunk_size=$(( $sketchcount / $chunks_num )) |
| 29 | +all_chunks=$(( $chunks_num * $chunk_size )) |
| 30 | +if [ "$all_chunks" -lt "$sketchcount" ]; then |
| 31 | + chunk_size=$(( $chunk_size + 1 )) |
| 32 | +fi |
| 33 | + |
| 34 | +start_index=0 |
| 35 | +end_index=0 |
| 36 | +if [ "$chunk_idex" -ge "$chunks_num" ]; then |
| 37 | + start_index=$chunk_idex |
| 38 | + end_index=$sketchcount |
| 39 | +else |
| 40 | + start_index=$(( $chunk_idex * $chunk_size )) |
| 41 | + if [ "$sketchcount" -le "$start_index" ]; then |
| 42 | + echo "Skipping job" |
| 43 | + return 0 |
| 44 | + fi |
| 45 | + |
| 46 | + end_index=$(( $(( $chunk_idex + 1 )) * $chunk_size )) |
| 47 | + if [ "$end_index" -gt "$sketchcount" ]; then |
| 48 | + end_index=$sketchcount |
| 49 | + fi |
| 50 | +fi |
| 51 | + |
| 52 | +start_num=$(( $start_index + 1 )) |
| 53 | +sketchnum=0 |
| 54 | + |
| 55 | +for sketch in $sketches; do |
| 56 | + sketchdir=$(dirname $sketch) |
| 57 | + sketchdirname=$(basename $sketchdir) |
| 58 | + sketchname=$(basename $sketch) |
| 59 | + sketchnum=$(($sketchnum + 1)) |
| 60 | + if [ "$sketchnum" -le "$start_index" ] \ |
| 61 | + || [ "$sketchnum" -gt "$end_index" ]; then |
| 62 | + continue |
| 63 | + fi |
| 64 | + echo "" |
| 65 | + echo "Test for Sketch Index $(($sketchnum - 1)) - $sketchdirname" |
| 66 | + pytest tests -k test_$sketchdirname |
| 67 | + result=$? |
| 68 | + if [ $result -ne 0 ]; then |
| 69 | + return $result |
| 70 | + fi |
| 71 | +done |
0 commit comments