#!/usr/bin/env bash PATH=${PATH}:. source /usr/lib/mts-io-sysfs/mts-io-sysfs-inc.sh yesno() { if [ $# -ne 1 ]; then echo "yesno question" exit 99 fi local question=${1} while : do echo -n "${question}? [y/n] " read line local line=$(echo ${line} | tr A-Z a-z) case "${line}" in y) return 0 ;; n) return 1 ;; *) ;; esac done } store_assert() { if [ $# -ne 2 ]; then log_error "store_assert name value" exit 99 fi local name=${1} local value=${2} local old_value="$(cat ${SYSFS_PLATFORM_DIR}/${name})" store ${name} "${value}" local new_value="$(cat ${SYSFS_PLATFORM_DIR}/${name})" if [ "${new_value}" != "${value}" ]; then log_error "${name}: '${new_value}' != '${value}'" exit 1 fi } show_assert() { if [ $# -ne 2 ]; then log_error "show_assert name value" exit 99 fi local name=${1} local expected_value=${2} log_info "checking if ${name} is '${expected_value}'" local actual_value="$(show ${name})" if [ "${expected_value}" != "${actual_value}" ]; then log_error "${name}: '${expected_value}' != '${actual_value}'" exit 1 fi } show_assert_in_set() { if [ $# -lt 2 ]; then log_error "show_assert_in_set name value0 [value1 ...]" exit 99 fi local name=${1} shift log_info "checking if ${name} is in set [$*]" local actual_value="$(show ${name})" for value in "$@"; do if [ "${value}" = "${actual_value}" ]; then log_info "${name} is '${actual_value}'" return fi done log_info "${name} is '${actual_value}'" exit 1 } VERBOSE=true echo none > /sys/devices/platform/leds-gpio/leds/status/trigger modprobe -r mts-io modprobe mts-io sleep 3 show_assert_in_set board-temperature {30..40} store board-temperature 1000 show_assert_in_set board-temperature {30..40} #for ((i = 0; i < 1000; i++)); do # show_assert_in_set board-temperature {30..40} #done show_assert radio-reset 1 log_info "resetting radio..." store radio-reset 0 sleep 2 show_assert radio-reset 1 log_info "radio reset" show_assert eth0-enabled 1 store_assert eth0-enabled 0 sleep 2 if ! yesno "Are the ethernet LEDs off"; then exit 1 fi store_assert eth0-enabled 1 sleep 2 if ! yesno "Are the ethernet LEDs on"; then exit 1 fi show_assert extserial-dcd 0 store_assert extserial-dcd 1 store_assert extserial-dcd 0 show_assert extserial-dsr 0 store_assert extserial-dsr 1 store_assert extserial-dsr 0 show_assert extserial-ri 0 store_assert extserial-ri 1 store_assert extserial-ri 0 show_assert extserial-dtr 0 store extserial-dtr 1 show_assert extserial-dtr 0 show_assert led-sig1 0 store_assert led-sig1 1 store_assert led-sig1 0 show_assert led-sdk-c 0 store_assert led-sdk-c 1 store_assert led-sdk-c 0 show_assert led-sig2 0 store_assert led-sig2 1 store_assert led-sig2 0 show_assert led-sdk-d 0 store_assert led-sdk-d 1 store_assert led-sdk-d 0 show_assert led-sig3 0 store_assert led-sig3 1 store_assert led-sig3 0 show_assert led-sdk-e 0 store_assert led-sdk-e 1 store_assert led-sdk-e 0 show_assert led-cd 0 store_assert led-cd 1 store_assert led-cd 0 show_assert led-sdk-b 0 store_assert led-sdk-b 1 store_assert led-sdk-b 0 if [ "${MTS_IO_CONTROLS_STATUS_LED}" = "true" ]; then show_assert led-status 0 store_assert led-status 1 store_assert led-status 0 show_assert led-sdk-a 0 store_assert led-sdk-a 1 store_assert led-sdk-a 0 fi show_assert reset 0 store reset 1 show_assert reset 0 show_assert reset-monitor "-1 10 12" exit 0