From a3eeb7419f8380ddaec4d2047b3ac85966ba590a Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Thu, 14 Sep 2023 23:40:08 +0200 Subject: [PATCH] ls: Verify the output of ls --dired --- tests/ls/dired.sh | 48 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/tests/ls/dired.sh b/tests/ls/dired.sh index 150fff206..81304aa19 100755 --- a/tests/ls/dired.sh +++ b/tests/ls/dired.sh @@ -32,4 +32,52 @@ EOF compare exp out || fail=1 +touch dir/a1 || framework_failure_ +touch dir/a2 || framework_failure_ + +mkdir -p dir/dir2 || framework_failure_ + +LC_MESSAGES=C ls -l --dired dir > out || fail=1 + +dired_values=$(grep "//DIRED//" out| cut -d' ' -f2-) + +expected_files="a1 a2 dir2" + +# Count the number of items in dired_values +dired_count=0 +for item in $dired_values; do + dired_count=$((dired_count + 1)) +done + +# Count the number of items in expected_files +expected_count=0 +for item in $expected_files; do + expected_count=$((expected_count + 1)) +done + +# Verify the size of expected_files and the number of filenames from dired_values +if [ $expected_count -ne $((dired_count / 2)) ]; then + echo "Mismatch in number of files! Expected: $expected_count, Found: $((dired_count / 2))" + fail=1 +fi + +# Split the values into pairs and extract the filenames +index=1 +i=0 +for value in $dired_values; do + if [ $((i % 2)) -eq 0 ]; then + start="$value" + else + end="$value" + extracted_filename=$(cat out | head -c "$end" | tail -c +"$((start + 1))") + expected_file=$(echo $expected_files | awk -v var="$index" '{print $var}') + if [ "$extracted_filename" != "$expected_file" ]; then + echo "Mismatch! Expected: $expected_file, Found: $extracted_filename" + fail=1 + fi + index=$((index + 1)) + fi + i=$((i + 1)) +done + Exit $fail -- 2.39.2