1*4882a593Smuzhiyun#!/bin/bash 2*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0 3*4882a593Smuzhiyun 4*4882a593Smuzhiyuntest_write_result() { 5*4882a593Smuzhiyun file=$1 6*4882a593Smuzhiyun content=$2 7*4882a593Smuzhiyun orig_content=$3 8*4882a593Smuzhiyun expect_reason=$4 9*4882a593Smuzhiyun expected=$5 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun echo "$content" > "$file" 12*4882a593Smuzhiyun if [ $? -ne "$expected" ] 13*4882a593Smuzhiyun then 14*4882a593Smuzhiyun echo "writing $content to $file doesn't return $expected" 15*4882a593Smuzhiyun echo "expected because: $expect_reason" 16*4882a593Smuzhiyun echo "$orig_content" > "$file" 17*4882a593Smuzhiyun exit 1 18*4882a593Smuzhiyun fi 19*4882a593Smuzhiyun} 20*4882a593Smuzhiyun 21*4882a593Smuzhiyuntest_write_succ() { 22*4882a593Smuzhiyun test_write_result "$1" "$2" "$3" "$4" 0 23*4882a593Smuzhiyun} 24*4882a593Smuzhiyun 25*4882a593Smuzhiyuntest_write_fail() { 26*4882a593Smuzhiyun test_write_result "$1" "$2" "$3" "$4" 1 27*4882a593Smuzhiyun} 28*4882a593Smuzhiyun 29*4882a593Smuzhiyuntest_content() { 30*4882a593Smuzhiyun file=$1 31*4882a593Smuzhiyun orig_content=$2 32*4882a593Smuzhiyun expected=$3 33*4882a593Smuzhiyun expect_reason=$4 34*4882a593Smuzhiyun 35*4882a593Smuzhiyun content=$(cat "$file") 36*4882a593Smuzhiyun if [ "$content" != "$expected" ] 37*4882a593Smuzhiyun then 38*4882a593Smuzhiyun echo "reading $file expected $expected but $content" 39*4882a593Smuzhiyun echo "expected because: $expect_reason" 40*4882a593Smuzhiyun echo "$orig_content" > "$file" 41*4882a593Smuzhiyun exit 1 42*4882a593Smuzhiyun fi 43*4882a593Smuzhiyun} 44*4882a593Smuzhiyun 45*4882a593Smuzhiyunsource ./_chk_dependency.sh 46*4882a593Smuzhiyun 47*4882a593Smuzhiyun# Test attrs file 48*4882a593Smuzhiyun# =============== 49*4882a593Smuzhiyun 50*4882a593Smuzhiyunfile="$DBGFS/attrs" 51*4882a593Smuzhiyunorig_content=$(cat "$file") 52*4882a593Smuzhiyun 53*4882a593Smuzhiyuntest_write_succ "$file" "1 2 3 4 5" "$orig_content" "valid input" 54*4882a593Smuzhiyuntest_write_fail "$file" "1 2 3 4" "$orig_content" "no enough fields" 55*4882a593Smuzhiyuntest_write_fail "$file" "1 2 3 5 4" "$orig_content" \ 56*4882a593Smuzhiyun "min_nr_regions > max_nr_regions" 57*4882a593Smuzhiyuntest_content "$file" "$orig_content" "1 2 3 4 5" "successfully written" 58*4882a593Smuzhiyunecho "$orig_content" > "$file" 59*4882a593Smuzhiyun 60*4882a593Smuzhiyun# Test schemes file 61*4882a593Smuzhiyun# ================= 62*4882a593Smuzhiyun 63*4882a593Smuzhiyunfile="$DBGFS/schemes" 64*4882a593Smuzhiyunorig_content=$(cat "$file") 65*4882a593Smuzhiyun 66*4882a593Smuzhiyuntest_write_succ "$file" "1 2 3 4 5 6 4 0 0 0 1 2 3 1 100 3 2 1" \ 67*4882a593Smuzhiyun "$orig_content" "valid input" 68*4882a593Smuzhiyuntest_write_fail "$file" "1 2 69*4882a593Smuzhiyun3 4 5 6 3 0 0 0 1 2 3 1 100 3 2 1" "$orig_content" "multi lines" 70*4882a593Smuzhiyuntest_write_succ "$file" "" "$orig_content" "disabling" 71*4882a593Smuzhiyunecho "$orig_content" > "$file" 72*4882a593Smuzhiyun 73*4882a593Smuzhiyun# Test target_ids file 74*4882a593Smuzhiyun# ==================== 75*4882a593Smuzhiyun 76*4882a593Smuzhiyunfile="$DBGFS/target_ids" 77*4882a593Smuzhiyunorig_content=$(cat "$file") 78*4882a593Smuzhiyun 79*4882a593Smuzhiyuntest_write_succ "$file" "1 2 3 4" "$orig_content" "valid input" 80*4882a593Smuzhiyuntest_write_succ "$file" "1 2 abc 4" "$orig_content" "still valid input" 81*4882a593Smuzhiyuntest_content "$file" "$orig_content" "1 2" "non-integer was there" 82*4882a593Smuzhiyuntest_write_succ "$file" "abc 2 3" "$orig_content" "the file allows wrong input" 83*4882a593Smuzhiyuntest_content "$file" "$orig_content" "" "wrong input written" 84*4882a593Smuzhiyuntest_write_succ "$file" "" "$orig_content" "empty input" 85*4882a593Smuzhiyuntest_content "$file" "$orig_content" "" "empty input written" 86*4882a593Smuzhiyunecho "$orig_content" > "$file" 87*4882a593Smuzhiyun 88*4882a593Smuzhiyunecho "PASS" 89